Mojo | ||
---|---|---|
Desarrollador(es) | ||
Modular Inc. Sitio web oficial | ||
Información general | ||
Extensiones comunes |
.mojo , .🔥 (El emoji del fuego / carácter Unicode U+1F525) | |
Paradigma | Multiparadigma: orientado a objetos, imperativo, funcional, reflexivo, Inteligencia Artificial | |
Apareció en | 2023 | |
Diseñado por | Chris Lattner | |
Última versión estable | 0.2.1 (64d14e85) (2 de mayo de 2023 (1 año, 7 meses y 16 días)) | |
Sistema de tipos | Fuertemente tipado, dinámico | |
Influido por | Python, Rust, Swift | |
Sistema operativo | Multiplataforma | |
Licencia | GPLv3 | |
Mojo es un lenguaje de programación desarrollado por Modular Inc.[1][2][3] Se hizo accesible a través del navegador en mayo de 2023[1][4] y localmente en Linux en septiembre de 2023. El lenguaje es capaz de ejecutar algunos programas en Python.[5] Los desarrolladores tienen varios objetivos para mejorar Mojo.[1][4]
En el año 2022, Chris Lattner, el arquitecto original del lenguaje de programación Swift, y Tim Davis, un reconocido ingeniero en Machine Learning en Google, fundan la compañía Modular Inc.[6]
En septiembre de 2022, se lanzó internamente una versión inicial de Mojo por parte de Modular Inc.[7], con características avanzadas de compilación impulsadas por MLIR (Multi-Level Intermediate Representation).[8][1][9]
Su sistema de tipos es híbrido (algo entre estático y dinámico), ya que el desarrollador puede optar por la escritura de tipos estáticos de alto rendimiento al elegir la palabra clave fn o def para definir su función.
El Motor de Inferencia Modular compañero incluye un compilador y un tiempo de ejecución.[10]
El lenguaje de programación Mojo tiene como objetivo ser completamente compatible con el ecosistema del Proyecto Jupyter. Aún no es completamente compatible a nivel de código fuente con Python 3.x, proporcionando solo un subconjunto de su sintaxis, como la falta de argumentos en las funciones, la palabra clave global, comprensiones de listas y diccionarios, y soporte para clases. Además, Mojo también agrega características que permiten la programación de bajo nivel con alto rendimiento: fn para crear funciones con tipos y struct para alternativas optimizadas en memoria a las clases. Un struct en Mojo es similar a una clase en Python: ambos admiten métodos, campos, sobrecarga de operadores y decoradores para la meta-programación. Mojo puede llamar a código existente de Python 3.x reutilizando el tiempo de ejecución de CPython. Modular planea agregar integración para importar de manera transparente módulos C/C++ de Clang y generar una interfaz de función externa entre C/C++ y Mojo.
Mojo tiene un borrow checker, una influencia de Rust, y en ese sentido es diferente de Python.
Programa Hola mundo:
print('Hola mundo!')