El mundo de la tecnología está siempre en movimiento. El chico más nuevo de la cuadra es el lenguaje de programación Mojo. Toma el relevo para mejorar la velocidad de ejecución de los proyectos basados en Python, ofreciendo a los desarrolladores velocidades similares a las de C.
Python es uno de los principales lenguajes de programación. Es un lenguaje de programación versátil y fácil de aprender que ofrece a los nuevos aprendices una puerta de entrada a la programación/informática.
Además, es un lenguaje de programación excelente en manos de desarrolladores competentes que pueden utilizarlo para crear aplicaciones complejas. Sin embargo, uno de los inconvenientes más significativos de Python es su velocidad de ejecución. Y ahí es donde entra Mojo.
Este artículo cubre Mojo y cómo se relaciona con el ecosistema Python. Comencemos.
¿Qué es Mojo?
Mojo es un lenguaje de programación moderno de alto nivel. Ofrece un diseño intuitivo para ayudar a los desarrolladores a crear aplicaciones rápidamente. Además, pretende tender un puente entre la producción y la investigación permitiendo a los usuarios utilizar funciones de metaprogramación y programación de sistemas con la sintaxis y el ecosistema de Python.
Toma prestado en gran medida de Rust y proporciona rápidas velocidades de ejecución al ecosistema Python. Técnicamente, Mojo es un superconjunto de Python, que le da acceso.
El equipo detrás de Mojo es de Modular, una empresa de infraestructura de IA. Y eso también significa que es un lenguaje de programación para desarrolladores de IA. Junto con el lenguaje de programación Mojo, también presentaron Interference Engine, que permite a los desarrolladores mejorar su flujo de trabajo, escalar los productos de IA y reducir la latencia de la inferencia (hablaremos de ello más adelante).
Según el director general de Modular, Chris Lattner, Mojo es 35.000 veces más rápido que Python. También está detrás del desarrollo del lenguaje de programación swift. Las ganancias de velocidad se consiguen gracias a cómo Mojo utiliza la cadena de herramientas del compilador LLVM y la infraestructura del compilador MILR (“Multi-level Intermediate Representation Overview”).
Los objetivos de los lenguajes de programación Mojo incluyen
- Trabajar con total compatibilidad con el ecosistema Python.
- Permitir a los desarrolladores desplegar subconjuntos de código en los aceleradores.
- Control de bajo nivel para garantizar un rendimiento predecible.
- Garantizar la no fragmentación del ecosistema.
Para probar Mojo, tendrá que utilizarlo a través de su entorno alojado en la nube, el Mojo Playground. Le pedirá que inicie sesión, ¡y podrá obtener un entorno de trabajo!

¿Por qué necesitamos Mojo?
La idea central de Mojo es unificar la infraestructura ML/AI proporcionando un lenguaje de programación que funcione en toda la pila. Además, garantiza la facilidad de uso al eliminar la necesidad de escribir código MLIR.
Según Modular, Mojo ofrecerá un modelo de programación escalable e innovador. De este modo, a los usuarios del campo de la IA les resultará fácil trabajar con aceleradores y sistemas heterogéneos.
Técnicamente, Mojo es un lenguaje de programación que admite la metaprogramación en tiempo de compilación. También admite otras características, como el almacenamiento en caché durante el flujo de compilación, técnicas de compilación adaptativa, etc. Estas características no están presentes en otros lenguajes de programación.
Si desea leer más sobre la filosofía de Mojo, consulte Modular Docs – Why Mojo🔥
Características del lenguaje de programación Mojo
En esta sección, veremos las características clave del lenguaje de programación Mojo.
#1. Compatibilidad total con Python
Mojo pretende trabajar con el ecosistema de Python y no contra él. Esto es evidente por el hecho de que Mojo utiliza las mismas funciones, bibliotecas y características que ofrece Python. Por lo tanto, puede utilizar cualquier librería Python que desee dentro de Mojo.
Para importar, necesitará utilizar el siguiente código:
from PythonInterface import Python
Una vez hecho esto, puede utilizar Python.import_module()
para importar cualquier biblioteca Python.
Por ejemplo, para importar numpy, necesitará utilizar la siguiente línea de código.
let np = Python.import_module("numpy")
En Python, tendrá que hacer “import numpy as np”
Como ya está importado, ahora puede utilizarlo para crear matrices, hacer cálculos, etc.
array = np.array([1, 2, 3])
print(array)
Del mismo modo, puede importar matplotlib.pyplot o crear un gráfico en Mojo.
Así es como se ve cuando ejecuto el código en Mojo Playground.

Si quiere probar el código, cópielo y péguelo desde abajo.
from PythonInterface import Python
let np = Python.import_module("numpy")
array = np.array([1, 2, 3, 4, 5])
print(array)
#2. MILR
MILR significa Representación Intermedia Multinivel. Mojo soporta MILR. Esto, a cambio, permite a los desarrolladores sacar una completa gama de nuevas características avanzadas. Estas características incluyen unidades de hardware AI, hilos y vectores.
MILR mejora el rendimiento debido a la concurrencia, haciendo que Mojo sea más rápido que Python. Además, permite a los desarrolladores aprovechar múltiples núcleos.
#3. Comprobador de propiedad y prestatario
La gestión de memoria de Python es segura. Utiliza un recolector de basura, por lo que los programadores deben asegurarse de que el código no se encontrará con condiciones de carrera.
Mojo, similar a Rust, implementa un modelo estricto de comprobación de propiedad y prestatario. Actualmente, está parcialmente implementado. La idea detrás del uso de este modelo es mejorar la concurrencia y proporcionar una excelente gestión de la memoria.
El modelo de propiedad también garantiza un enfoque a prueba de hilos, lo que es ideal para proporcionar un excelente soporte de concurrencia. De este modo, los programas no se encuentran con condiciones de carrera. Además, el verificador de préstamos garantiza que las variables se comprueben siempre durante el tiempo de ejecución.
#4. Coste cero de abstracción
Mojo ofrece abstracciones de coste cero, lo que permite a los desarrolladores tomar el control total del almacenamiento. Aquí, los programadores pueden hacer valores de asignación en línea a las estructuras.
#5. Autoajuste
Mojo también ofrece autoajuste. Esto asegura la asignación automática de los mejores valores se establece para los parámetros, en función del hardware de destino.
El autoajuste elimina la necesidad de optimizar manualmente su código en función del hardware de destino.
Velocidad: ¿Cómo de rápido es el lenguaje Mojo?
Python es un lenguaje de programación de alto nivel que busca la facilidad de uso y de mantenimiento. Por desgracia, esto lo hace lento en comparación con otras soluciones o lenguajes de programación.
En la prueba de Modular, encontraron que Mojo es 35000x. Utilizaron el algoritmo de Mandelbrot y lo ejecutaron en una instancia de AWS con un procesador Intel Xeon alimentándolo. Probaron PYPY, SCALAR C , y MOJO, junto con Python. Los resultados fueron súper rápidos, y puede ver los resultados a continuación.

Para leer más sobre la velocidad de Mojo, consulte este post en la comunidad Julialang.
Modular Inference Engine – Ejecutar modelos de IA de forma barata
Modular también está desarrollando un Motor de Interferencia Modular que abarata la ejecución de modelos de IA en producción. Mojo soporta el Motor de Interferencia Modular por defecto. Permite a los equipos simplificar su flujo de trabajo. También permite a los desarrolladores reducir la latencia de inferencia, lo que facilita la escalabilidad de los productos de IA.
Además, los desarrolladores no tienen que cambiar su modelo para utilizar el Motor. Una vez cargado, puede sobrecargar los modelos PyTorch y TensorFlow, capaces de ejecutar un alto rendimiento con un amplio soporte de hardware.
¿Reemplazará a Python?
Mojo es nuevo. Parece prometedor. Por tanto, tardará en llegar a su público objetivo, como los científicos de datos o los lenguajes de programación. Y, sí, resuelve problemas particulares para los entusiastas y aprendices de la IA. Sin embargo, existen muchas soluciones similares que mejoran la velocidad del lenguaje Python. Por ejemplo, encontrará Jax, Codon y Julia, un lenguaje orientado a la ciencia de datos.
Por lo tanto, pueden ocurrir dos cosas. Primero, que crezca exponencialmente en cuanto a características, y que la comunidad lo adopte. Otra, que se convierta en un lenguaje de programación ad hoc que utilice las bibliotecas de Python y el Motor de Interferencia Modular.
Entonces, ¿reemplazará Mojo a Python? Sólo el tiempo puede decirlo.
A continuación, eche un vistazo a útiles frases de Python para simplificar tareas comunes.