Mojo (lenguaje de programación)
# Mojo (lenguaje de programación)

Mojo es un lenguaje de programación desarrollado por Modular Inc. Se hizo accesible a través del navegador en mayo de 2023 y localmente en Linux en septiembre de 2023. El lenguaje es capaz de ejecutar algunos programas en Python. Los desarrolladores tienen varios objetivos para mejorar Mojo.

## Origen, diseño y desarrollo

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.

En septiembre de 2022, se lanzó internamente una versión inicial de Mojo por parte de Modular Inc., con características avanzadas de compilación impulsadas por MLIR (Multi-Level Intermediate Representation).

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.

## Comparación con Python

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

Programa Hola mundo:

