El lenguaje, que se asemeja a Python en apariencia, incorpora características inspiradas en Rust, lo que lo hace más eficiente y uniforme. La actualización incluye mejoras como una declaración de variable unificada usando `var`, cierres simplificados y la fusión de tipos previamente separados `Pointer` y `UnsafePointer` en un solo tipo con marcadores de seguridad explícitos a través del prefijo `unsafe_`.
Por primera vez, partes de las interfaces de Mojo están explícitamente marcadas como estables. Uno de los cambios más significativos involucra las definiciones de funciones. Anteriormente, Mojo usaba ∀def` para funciones similares a Python y ∀fn` para funciones controladas más estrictas. Con la versión 1, Modular ha eliminado ∀fn`, reemplazándolo por ∀def`. Este cambio introduce reglas más estrictas para ∀def`, que requieren un manejo explícito de excepciones a través de ∀raises` si se desean lanzar excepciones. El compilador ahora trata ∀def` como sujeto a estas reglas más estrictas, lo que significa que el código escrito con ∀fn` podría fallar bajo los nuevos estándares a menos que se adapte.
También se ha introducido una nueva sintaxis lambda, descrita como yPython-style pero que requiere paréntesis y anotaciones de tipo. En lugar de Python`s `lambda x: x 2`, Mojo utiliza `lambda (x: Int) -> Int: x 2`. El compilador también ha ganado capacidades mejoradas de detección de errores. Puede identificar referencias no válidas, particularmente en escenarios en los que la gestión de memoria podría conducir a fallas o vulnerabilidades de seguridad. Por ejemplo, si una lista crece más allá de su espacio asignado y una referencia apunta a la antigua ubicación, Mojo señala esto durante la compilación en lugar de en tiempo de ejecución.
Un ejemplo de programa ilustra esto, mostrando cómo una referencia a un elemento de lista se vuelve inválida después de agregar nuevos datos, lo que lleva a un mensaje de error claro. Modular tiene como objetivo abordar el problema de dos idiomas común en el desarrollo de IA, donde Python domina debido a su facilidad de uso pero carece de rendimiento, a menudo confiando en C, C ++ o bibliotecas CUDA para el cálculo. Mojo ofrece tipificación estática, un modelo de propiedad sin recolección de basura y control directo de hardware, posicionándolo más cerca de C ++ y Rust que Python a pesar de su sintaxis familiar. Modular utiliza Mojo como la base para MAX y sus servicios en la nube.
Fundado en enero de 2022 por Chris Lattner, el desarrollador original de LLVM y Swift, y Tim Davis, responsable de TensorFlow, XLA y TPU en Google, Modular se basó en su trabajo en MLIR, que ahora forma la base de Mojo. Desde el 29 de julio de 2026, Modular ha sido parte de Qualcomm, aunque Mojo, MAX y la Nube Modular siguen siendo productos independientes. Un ejemplo de código de Mojo muestra su estructura: ``python defx cuadrado: Int) -> Int: return x * x def main: var print value = 42 ``value () `` Las anotaciones de tipo como `x: Int y `-> ` son necesarias para garantizar la claridad y la corrección en el lenguaje.
★
Mantengamos las noticias honestas.
ObjectiveNews se financia con los lectores y no tiene anuncios: te mostramos el sesgo en lugar de ocultarlo. Apoya el periodismo independiente por 4 €/mes.
Hazte suscriptor