Mojo es un lenguaje de programación propietario en desarrollo basado en Python [ 6 ] [ 7 ] [ 8 ] disponible para Linux y macOS . [ 9 ] [ 10 ] Mojo tiene como objetivo combinar la usabilidad de un lenguaje de programación de alto nivel , específicamente Python , con el rendimiento de un lenguaje de programación de sistema como C++ , Rust y Zig . [ 11 ] [ 12 ] Modular, la empresa detrás de Mojo, ha declarado su intención de liberar el código fuente del lenguaje Mojo [ 13 ] , comprometiéndose a hacerlo en "otoño de 2026" [ 14 ] . En mayo de 2026, Modular lanzó la primera beta de Mojo 1.0 y un sitio web para el lenguaje. [ 15 ] A junio de 2026 El compilador Mojo es de código cerrado, pero cuenta con una biblioteca estándar de código abierto .
Mojo se basa en el marco de software del compilador Multi-Level Intermediate Representation ( MLIR ) , en lugar de directamente en el marco de compilador de nivel inferior LLVM como muchos lenguajes como Julia , Swift , C++ y Rust. [ 16 ] [ 17 ] MLIR es un marco de compilador más reciente que permite a Mojo explotar pasos de compilación de nivel superior no disponibles en LLVM por sí solo, y permite a Mojo compilar y dirigirse a más que solo unidades centrales de procesamiento (CPU), incluyendo la producción de código que puede ejecutarse en unidades de procesamiento gráfico (GPU), unidades de procesamiento tensorial (TPU), circuitos integrados específicos de aplicaciones (ASIC) y otros aceleradores. También puede a menudo utilizar de manera más efectiva ciertos tipos de optimizaciones de CPU directamente, como instrucción única, datos múltiples (SIMD) con una intervención mínima por parte de un desarrollador, como sucede en muchos otros lenguajes. [ 18 ] [ 19 ] Según Jeremy Howard de fast.ai, Mojo puede considerarse como " azúcar sintáctico para MLIR" y por esa razón Mojo está bien optimizado para aplicaciones como la inteligencia artificial (IA). [ 20 ]
Historia del origen y desarrollo
El lenguaje de programación Mojo fue creado por Modular Inc., fundada por Chris Lattner , el arquitecto original del lenguaje de programación Swift y LLVM , y Tim Davis, un antiguo empleado de Google . [ 21 ] La intención detrás de Mojo es cerrar la brecha entre la facilidad de uso de Python y el rápido rendimiento requerido para las aplicaciones de IA de vanguardia. [ 22 ]
Según los registros de cambios públicos, el desarrollo de Mojo se remonta a 2022. [ 23 ] En mayo de 2023, la primera versión públicamente comprobable se puso a disposición en línea a través de un entorno de pruebas alojado. [ 24 ] Para septiembre de 2023, Mojo estaba disponible para su descarga local para Linux [ 25 ] y para octubre de 2023 también estaba disponible para su descarga en macOS de Apple . [ 26 ] El SDK incluía un controlador de línea de comandos, una extensión de Visual Studio Code y un kernel de Jupyter . [ 10 ]
En marzo de 2024, Modular liberó el código fuente de la biblioteca estándar Mojo y comenzó a aceptar contribuciones de la comunidad bajo la licencia Apache 2.0. [ 27 ] [ 28 ]
En diciembre de 2025, Modular publicó una hoja de ruta hacia el lanzamiento de la versión 1.0, indicando que Mojo 1.0 estabilizaría las características principales del lenguaje y que características adicionales, como una instrucción de coincidencia y enumeraciones, se añadirían en versiones 1.x. [ 29 ] El 7 de mayo de 2026, Modular lanzó Mojo 1.0.0 beta 1 y el sitio web del lenguaje, mojolang.org. [ 15 ] [ 30 ]
Características
Mojo se creó para facilitar la transición desde Python. El lenguaje tiene una sintaxis similar a la de Python, con tipado estático inferido, [ 31 ] y permite a los usuarios importar módulos de Python . [ 32 ] [ 33 ] Utiliza LLVM y MLIR como backend de compilación. [ 8 ] [ 34 ] [ 35 ] Los programas Mojo pueden importar y llamar módulos de Python a través del entorno de ejecución CPython, y las funciones de Mojo pueden llamarse desde Python a través de enlaces compatibles con C. [ 15 ] El lenguaje no es compatible con Python 3. No admite el sistema de clases de Python; en su lugar, proporciona tipos de struct , alternativas optimizadas en memoria a las clases que admiten métodos , campos , sobrecarga de operadores y decoradores . [ 36 ] [ 15 ] Se admiten comprensiones de listas, conjuntos y diccionarios al estilo de Python. [ 37 ]
El lenguaje también proporciona un verificador de préstamos , influenciado por Rust . [ 38 ] Los argumentos de las funciones se pasan como referencias inmutables por defecto (la convención read ). Las funciones pueden declarar los argumentos como referencias mutables ( mut ) o tomar posesión de ellos, y la posesión se puede transferir con el operador ^ . [ 15 ] [ 39 ]
Si bien la biblioteca estándar de Mojo es de código abierto bajo la licencia Apache 2.0, el compilador no lo es; Modular se ha comprometido a liberarlo como código abierto en otoño de 2026. [ 13 ] [ 14 ]
Mojo admite la programación de GPU a través de un paquete gpu en su biblioteca estándar. [ 15 ] Un estudio de 2025 realizado por investigadores del Laboratorio Nacional de Oak Ridge, presentado en el taller SC25 WACCPD, encontró que los kernels de GPU de Mojo son ampliamente competitivos con CUDA y HIP para cargas de trabajo limitadas por memoria en aceleradores Nvidia y AMD, aunque se observaron brechas de rendimiento para operaciones atómicas y cargas de trabajo limitadas por cómputo matemático rápido en GPU AMD. [ 40 ]
Ejemplos de programación
Las funciones en Mojo se declaran con `def` . Las versiones anteriores también proporcionaban la palabra clave `fn` para funciones más estrictas y con tipado estático; `fn` quedó obsoleto en 2026 en favor del uso de `def` para todas las funciones. [ 41 ] [ 42 ] Las funciones pueden declarar parámetros tipados y tipos de retorno:
def add ( x : Int , y : Int ) -> Int : """Una suma tipada.""" return x + yLas variables pueden declararse explícitamente con var , lo que proporciona un ámbito a nivel de bloque, o implícitamente mediante asignación, lo que proporciona un ámbito a nivel de función que coincide con el comportamiento de Python: [ 43 ]
def main (): var total = add ( 1 , 2 ) # declarado explícitamente doubled = total * 2 # declarado implícitamente print ( doubled )Mojo originalmente incluía una palabra clave let para enlaces inmutables; [ 36 ] fue eliminada del lenguaje en 2024. [ 44 ]
Las estructuras son la alternativa de Mojo a las clases de Python, definidas en tiempo de compilación. El decorador @fieldwise_init sintetiza un constructor a partir de los campos declarados, y los rasgos como Copyable declaran comportamientos compatibles: [ 15 ]
@fieldwise_init struct Point ( Copyable , Movable ): var x : Int var y : Intdef magnitud_cuadrada ( self ) -> Int : return self . x * self . x + self . y * self . ydef main ( ): p = Point ( 3 , 4 ) print ( p.magnitude_squared ( )) # 25Los programas Mojo pueden importar y usar módulos de Python a través del entorno de ejecución CPython: [ 33 ]
from std.python import Pythondef main ( ) raises : math = Python.import_module ( " math " ) print ( math.sqrt ( 2.0 ) )Véase también
Referencias
- ↑ Sullivan, Mark (19 de marzo de 2024). "Cómo Modular simplificó la infraestructura de software de IA" . Fast Company . Recuperado el 19 de agosto de 2024 .
- ↑ "Registro de cambios de Mojo" . Modular. 7 de mayo de 2026. Consultado el 7 de mayo de 2026 .
- ↑ "Modular: Licencia comunitaria" .
- ↑ "Bienvenido a la biblioteca estándar de Mojo" .
- ↑
- ↑ "Manual de programación de Mojo" . docs.modular.com . Modular. 2023. Consultado el 26 de septiembre de 2023. Mojo
es un lenguaje de programación tan fácil de usar como Python, pero con el rendimiento de C++ y Rust. Además, Mojo permite aprovechar todo el ecosistema de bibliotecas de Python.
- ↑ "Por qué Mojo: un lenguaje para la tecnología de compiladores de próxima generación" . docs.modular.com . Modular. 2023. Consultado el 26 de septiembre de 2023.
Si bien muchos otros proyectos ahora usan MLIR, Mojo es el primer lenguaje importante diseñado expresamente para MLIR, lo que hace que Mojo sea excepcionalmente potente al escribir código a nivel de sistema para cargas de trabajo de IA.
- 1 2 Krill, Paul (4 de mayo de 2023). "El lenguaje Mojo combina Python y MLIR para el desarrollo de IA" . InfoWorld .
- ↑ Deutscher, Maria (7 de septiembre de 2023). "Modular lanza al mercado su lenguaje de programación Mojo optimizado para IA" . Silicon Angle . Consultado el 11 de septiembre de 2023 .
- 1 2 Krzaczyński, Robert (9 de noviembre de 2023). "Mojo Language SDK disponible: controlador Mojo, extensión VS Code y núcleo Jupyter" . InfoQ .
- ↑ "Mojo: lenguaje de programación para toda la IA" . Modular.com . Consultado el 28 de febrero de 2024 .
- ↑ Krzaczyński, Robert (19 de julio de 2023). "Introducción al lenguaje de programación Mojo" . InfoQ .
- 1 2 Equipo Modular (28 de marzo de 2024). "Modular: El próximo gran paso en Mojo🔥 Código abierto" . Modular. Archivado del original el 9 de octubre de 2024. Recuperado el 9 de noviembre de 2024 .
- 1 2 "Preguntas frecuentes de Mojo" . Archivado del original el 09/05/2026 . Consultado el 09/05/2026 .
- 1 2 3 4 5 6 7 Yegulalp, Serdar (20 de mayo de 2026). "Primer vistazo: Mojo 1.0 mezcla Python y Rust" . InfoWorld .
- ↑ Krill, Paul (4 de mayo de 2023). "El lenguaje Mojo combina Python y MLIR para el desarrollo de IA" . InfoWorld . Consultado el 28 de mayo de 2024 .
- ↑ "¿Debería Julia usar MLIR en el futuro?" . Julia Programming Language . 2024-02-20 . Consultado el 2024-05-28 .
- ↑ "Documentación modular: ¿Por qué Mojo?" . docs.modular.com . Consultado el 28 de mayo de 2024 .
- ↑ "Mojo - Un lenguaje de programación de sistemas para computación heterogénea" (PDF) . Archivado del original (PDF) el 28 de mayo de 2024.
- ↑ Howard, Jeremy (04/05/2023). "fast.ai - Mojo podría ser el mayor avance en lenguajes de programación en décadas" . fast.ai. Consultado el 28/05/2024 .
- ↑ Claburn, Thomas (5 de mayo de 2023). "Modular encuentra su Mojo, un superconjunto de Python con velocidad de nivel C" . The Register . Consultado el 8 de agosto de 2023 .
- ↑ Thomason, James (21 de mayo de 2024). "Mojo Rising: El resurgimiento de los lenguajes de programación centrados en la IA" . VentureBeat .
- ↑ "Registro de cambios de Mojo" . 13 de febrero de 2025.
- ↑ "Una plataforma unificada y extensible para potenciar tu IA" . Modular.com . Consultado el 14 de abril de 2024 .
- ↑ "Mojo - ¡Por fin está aquí!" . Modular.com . Consultado el 14 de abril de 2024 .
- ↑ "Mojo ya está disponible para Mac" . Modular.com . Consultado el 14 de abril de 2024 .
- ↑ "Modular libera como código abierto los componentes principales de su lenguaje de programación Mojo AI" . SiliconANGLE . 28 de marzo de 2024. Consultado el 28 de mayo de 2024 .
- ↑ "mojo/stdlib/README.md en nightly · modularml/mojo" . GitHub . Consultado el 28 de mayo de 2024 .
- ↑ "Modular: El camino hacia Mojo 1.0" . Modular. 5 de diciembre de 2025. Consultado el 12 de junio de 2026 .
- ↑ "Lanzamientos de Mojo" . Modular . Consultado el 12 de junio de 2026 .
- ↑ "Documentación modular - Manual de programación de Mojo" . docs.modular.com . Consultado el 19 de octubre de 2023 .
- ↑ "Documentación modular - Manual de programación de Mojo" . docs.modular.com . Consultado el 31 de octubre de 2023 .
- 1 2 Yegulalp, Serdar (12 de noviembre de 2025). "Revisitando Mojo: ¿Un Python más rápido?" . InfoWorld .
- ↑ Lattner, Chris; Pienaar, Jacques (2019). MLIR Primer: Una infraestructura de compiladores para el fin de la Ley de Moore (Informe técnico) . Recuperado el 30 de septiembre de 2022 .
- ^ Lattner, Chris; Amini, Mehdi; Bondhugula, Uday; Cohen, Alberto; Davis, Andy; Pienaar, Jacques; Acertijo, Río; Shpeisman, Tatiana; Vasilache, Nicolás; Zinenko, Oleksandr (29 de febrero de 2020). "MLIR: una infraestructura compiladora para el fin de la ley de Moore". arXiv : 2002.11054 [ cs.PL ].
- 1 2 Yegulalp, Serdar (7 de junio de 2023). "Un primer vistazo al lenguaje Mojo" . InfoWorld .
- ↑ "Notas de la versión 25.4 de Mojo" . GitHub . Modular. 18 de junio de 2025. Consultado el 12 de junio de 2026 .
- ↑ "Documentos modulares: propiedad y préstamo" . Modular . Consultado el 29 de febrero de 2024 .
- ↑ "Propiedad" . mojolang.org . Modular . Consultado el 12 de junio de 2026 .
- ^ Godoy, William F.; Melnichenko, Tatiana; Valero-Lara, Pedro; Elwasif, Wael; Fackler, Philip; Ferreira Da Silva, Rafael; Teranishi, Keita; Vetter, Jeffrey S. (25 de septiembre de 2025). "Mojo: núcleos científicos HPC portátiles de rendimiento basados en MLIR en GPU para el ecosistema Python". arXiv : 2509.21039 [ cs.DC ].
- ↑ "Funciones" . mojolang.org . Modular . Consultado el 12 de junio de 2026 .
- ↑ "Notas de la versión 26.2 de Mojo" . GitHub . Modular. 19 de marzo de 2026. Consultado el 12 de junio de 2026 .
- ↑ "Variables" . mojolang.org . Modular . Consultado el 12 de junio de 2026 .
- ↑ "Notas de la versión 24.1 de Mojo" . GitHub . Modular. 29 de febrero de 2024. Consultado el 12 de junio de 2026 .
Enlaces externos
- Sitio web oficial
- Manual de Mojo
- modular en GitHub
- Todo sobre el lenguaje de programación Mojo
- Mojo podría ser el mayor avance en lenguajes de programación en décadas.
- Mojo: El futuro de la programación de IA
- software de IA
- Lenguajes de programación compilados
- Software multiplataforma
- Lenguajes de programación de alto nivel
- Lenguajes de programación multiparadigma
- Interfaz de portátil
- Lenguajes de programación
- Lenguajes de programación creados en 2023
- Python (lenguaje de programación)
- Implementaciones de Python (lenguaje de programación)
- Software que utiliza la licencia Apache.
- Lenguajes de programación orientados a texto