Mojo (langage de programmation)

langage de programmation

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[1],[2],[3].

Mojo (langage de programmation)
Date de première version Voir et modifier les données sur Wikidata
Influencé par Python
Rust
CVoir et modifier les données sur Wikidata
Site web www.modular.com/mojoVoir et modifier les données sur Wikidata
Extension de fichier mojo et 🔥Voir et modifier les données sur Wikidata

Conçu pour être un sur-ensemble du langage de programmation Python[4], le langage de programmation Mojo est appelé par certains « Python++ »[5],[6],[7],[8],[9].

Mojo a été rendu disponible dans les navigateurs via les notebooks Jupyter en mai 2023 [3], localement sur Linux en septembre 2023 et sur macOS le 19 octobre 2023[10]. Une extension officielle de Visual Studio Code est également disponible[11].

Conception et développement d'origine

modifier

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[12].

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)[2],[3].

En septembre 2022, une première version de Mojo a été publiée en interne par Modular Inc.[13] avec des fonctionnalités de compilation avancées optimisées par MLIR, le framework de compilateur Multi-Level Intermediate Representation[3].

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[14].

Le moteur d'inférence modulaire qui l'accompagne comprend un compilateur et un moteur d'exécution[15].

Avancement du langage de programmation

modifier

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.

Références

modifier
  1. (en) « Mojo 🔥: Programming language for all of AI », sur modular.com (consulté le )
  2. a et b (en) « Modular Docs - Why Mojo🔥 », sur docs.modular.com (consulté le )
  3. a b c et d (en) Paul Krill, « Mojo language marries Python and MLIR for AI development », sur InfoWorld, (consulté le )
  4. Welcome to Mojo 🔥, Modular,‎ (lire en ligne)
  5. « Mojo🔥 programming manual », docs.modular.com, Modular,‎ (consulté le ) : « Mojo is a programming language that is as easy to use as Python but with the performance of C++ and Rust. Furthermore, Mojo provides the ability to leverage the entire Python library ecosystem. »
  6. (en) « Modular: Mojo🔥 - It’s finally here! », sur www.modular.com (consulté le )
  7. (en) Jeremy Howard, « Mojo may be the biggest programming language advance in decades », sur fast.ai, (consulté le )
  8. (en) « Like Python++ for AI developers - Stack Overflow », sur stackoverflow.blog, (consulté le )
  9. (en) « Mojo🔥SDK has been released for Linux », sur DEV Community,‎ (consulté le )
  10. « https://twitter.com/Modular_AI/status/1715024755093287042 », sur X (formerly Twitter) (consulté le )
  11. (en-US) « Mojo 🔥 - Visual Studio Marketplace », sur marketplace.visualstudio.com (consulté le )
  12. Claburn, « Modular finds its Mojo, a Python superset with C-level speed », The Register, (consulté le )
  13. (en) « Modular Docs - Mojo🔥 changelog », sur docs.modular.com (consulté le )
  14. (en) « Modular Docs - Mojo🔥 programming manual », docs.modular.com (consulté le )
  15. (en) « Modular Docs - Modular AI Engine », sur docs.modular.com (consulté le )