Mojo (lenguaje de programación)

De Wikipedia, la enciclopedia libre
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 (11 meses y 17 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]

  1. a b c d Krill, Paul (4 de mayo de 2023). «Mojo language marries Python and MLIR for AI development». InfoWorld (en inglés). 
  2. Claburn, Thomas (5 de mayo de 2023). «Modular reveals Mojo, Python superset with C-level speed». The Register (en inglés). 
  3. Pandey, Mohit (3 de mayo de 2023). «This New Programming Language is Likely to Replace Python». Analytics India Magazine. 
  4. a b Yegulalp, Serdar (7 de junio de 2023). «A first look at the Mojo language». InfoWorld (en inglés). 
  5. 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. 
  6. 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. 
  7. «Mojo🔥 changelog». 
  8. Lattner, Chris; Pienaar, Jacques (2019), MLIR Primer: A Compiler Infrastructure for the End of Moore's Law, consultado el 30 de septiembre de 2022 .
  9. 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». arXiv:2002.11054  [cs.PL]. 
  10. «Modular Inference Engine».