Mojo (langage de programmation) | |
Date de première version | |
---|---|
Dernière version | 24.6 ()[1] |
Influencé par | Python Rust C |
Site web | www.modular.com/mojo |
Extension de fichier | mojo et 🔥 |
modifier ![]() |
Mojo est un langage de programmation sorti en 2023 et visant à combiner la facilité d'utilisation du langage Python, avec les performances des langages de programmation de bas niveau[2],[3],[4].
Conçu pour être un sur-ensemble du langage de programmation Python[5], le langage de programmation Mojo est appelé par certains « Python++ »[6],[7],[8],[9],[10].
Mojo a été rendu disponible dans les navigateurs via les notebooks Jupyter en mai 2023 [4], localement sur Linux en septembre 2023 et sur macOS le 19 octobre 2023[11]. Une extension officielle de Visual Studio Code est également disponible[12].
En 2022, la société Modular a été fondée par Chris Lattner, l'architecte original du langage de programmation Swift, et Tim Davis, un leader d'opinion apprentissage automatique chez Google[13].
Mojo est développé pour le framework de compilation MLIR, qui fournit un cadre de programmation unifié pour le développement de logiciels, notamment dans le domaine de l'intelligence artificielle (IA)[3],[4].
En septembre 2022, une première version de Mojo a été publiée en interne par Modular Inc.[14] avec des fonctionnalités de compilation avancées optimisées par MLIR, le framework de compilateur Multi-Level Intermediate Representation[4].
Son système de types est hybride (quelque chose entre statique et dynamique), étant donné que le développeur peut opter pour un typage statique hautes performances en choisissant le mot-clé (entre fn et def) pour définir sa fonction[15].
Le moteur d'inférence modulaire qui l'accompagne comprend un compilateur et un moteur d'exécution[16].
Un des buts du langage est de permettre la compatibilité avec Python et de reprendre car Python est déjà très performant. Cependant, les développeurs souhaitent quand même grandement l'améliorer[17].
Le langage de programmation Mojo vise à être entièrement compatible avec l'écosystème Project Jupyter. Il prévoit d'ajouter un vérificateur d'emprunt, une influence de Rust, et d'ajouter une intégration pour importer de manière transparente des modules Clang C/C++ et générer de manière transparente une interface de fonction étrangère entre C/C++ et Mojo. Il peut appeler du code Python 3.x existant en réutilisant l'environnement d'exécution CPython.