Mojo (lenguaje de programación)
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 30 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]
Origen, diseño y desarrollo
[editar]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]
Comparación con Python
[editar]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.
Ejemplo
[editar]Programa Hola mundo:
print('Hola mundo!')
Véase también
[editar]Referencias
[editar]- ↑ a b c d Krill, Paul (4 de mayo de 2023). «Mojo language marries Python and MLIR for AI development». InfoWorld (en inglés).
- ↑ Claburn, Thomas (5 de mayo de 2023). «Modular reveals Mojo, Python superset with C-level speed». The Register (en inglés).
- ↑ Pandey, Mohit (3 de mayo de 2023). «This New Programming Language is Likely to Replace Python». Analytics India Magazine.
- ↑ a b Yegulalp, Serdar (7 de junio de 2023). «A first look at the Mojo language». InfoWorld (en inglés).
- ↑ Deutscher, Maria (7 de septiembre de 2023). «Modular makes its AI-optimized Mojo programming language generally available». Silicon Angle (en inglés). Consultado el 11 de septiembre de 2023.
- ↑ Claburn, Thomas (5 de mayo de 2023). «Modular finds its Mojo, a Python superset with C-level speed». The Register. Consultado el 8 de agosto de 2023.
- ↑ «Mojo🔥 changelog».
- ↑ Lattner, Chris; Pienaar, Jacques (2019), MLIR Primer: A Compiler Infrastructure for the End of Moore's Law, consultado el 30 de septiembre de 2022.
- ↑ Lattner, Chris; Amini, Mehdi; Bondhugula, Uday; Cohen, Albert; Davis, Andy; Pienaar, Jacques; Riddle, River; Shpeisman, Tatiana et ál. (2020-02-29). «MLIR: A Compiler Infrastructure for the End of Moore's Law». .
- ↑ «Modular Inference Engine».