Le langage, qui ressemble à Python en apparence, intègre des fonctionnalités inspirées de Rust, le rendant plus efficace et uniforme. La mise à jour comprend des améliorations telles qu'une déclaration de variable unifiée utilisant `var`, des fermetures simplifiées et la fusion de types auparavant séparés `Pointer` et `UnsafePointer` en un seul type avec des marqueurs de sécurité explicites via le préfixe `unsafe_`.
Pour la première fois, certaines parties des interfaces de Mojo sont explicitement marquées comme stables. L'un des changements les plus significatifs concerne les définitions de fonctions. Auparavant, Mojo utilisait ∀def` pour les fonctions de type Python et ∀fn` pour les fonctions contrôlées plus strictes. Avec la version 1, Modular a supprimé ∀fn`, le remplaçant par ∀def`. Ce changement introduit des règles plus strictes pour ∀def`, nécessitant un traitement explicite des exceptions via ∀raises` si des exceptions doivent être lancées. Le compilateur traite maintenant ∀def` comme soumis à ces règles plus strictes, ce qui signifie que le code écrit avec ∀fn` pourrait échouer sous les nouvelles normes à moins d'être adapté.
La syntaxe lambda a également été introduite, mais nécessite des parenthèses et des annotations de type. Au lieu de la syntaxe `lambda x: x 2` de Python, Mojo utilise `lambda (x: Int) -> Int: x 2`. Le compilateur a également acquis des capacités de détection d'erreur améliorées. Il peut identifier des références invalides, en particulier dans les scénarios où la gestion de la mémoire pourrait entraîner des pannes ou des vulnérabilités de sécurité. Par exemple, si une liste dépasse l'espace alloué et qu'une référence pointe vers l'ancien emplacement, Mojo le signale pendant la compilation plutôt que pendant l'exécution.
Un exemple de programme illustre cela, montrant comment une référence à un élément de liste devient invalide après l'ajout de nouvelles données, conduisant à un message d'erreur clair. Modulaire vise à résoudre le problème des deux langues communs dans le développement de l'IA, où Python domine en raison de sa facilité d'utilisation, mais manque de performance, s'appuyant souvent sur C, C ++ ou CUDA bibliothèques pour le calcul. Mojo offre la dactylographie statique, un modèle de propriété sans collecte de déchets, et le contrôle matériel direct, le positionnant plus près de C ++ et Rust que Python malgré sa syntaxe familière. Modulaire utilise Mojo comme base pour MAX et ses services cloud.
Fondé en janvier 2022 par Chris Lattner, le développeur original de LLVM et Swift, et Tim Davis, responsable de TensorFlow, XLA et TPU chez Google, Modular s'est basé sur leur travail sur MLIR, qui constitue désormais la base de Mojo. Depuis le 29 juillet 2026, Modular fait partie de Qualcomm, bien que Mojo, MAX et le Modular Cloud restent des produits indépendants. Un exemple de code Mojo montre sa structure: ``python square def (((square)) -> Int: return x * x main def (((): var print value = 42 (((square (((value)) ``` Les annotations de type telles que `x: Int et `-> ` sont nécessaires pour assurer la clarté et l'exactitude du langage.
★
Gardons l’information honnête.
ObjectiveNews est financé par ses lecteurs et sans publicité : nous vous montrons le biais au lieu de le cacher. Soutenez un journalisme indépendant pour 4 €/mois.
Devenir soutien