Mojo est un nouveau langage de programmation dédié à l’IA, créé par l’entreprise Modular AI. Va-t-il remplacer Python et s’imposer comme une nouvelle référence ?
Le langage Python est extrêmement populaire dans le monde entier, mais pourrait faire face à un nouveau concurrent de taille.
L’entreprise d’infrastructure IA Modular AI vient de dévoiler Mojo : un langage combinant la syntaxe de Python avec la portabilité et la vitesse de C. Ceci le rend donc idéal aussi bien pour la recherche que pour la production.
Ironiquement, les créateurs de Mojo n’avaient nullement l’intention de créer un nouveau langage de programmation. C’est en tentant d’unifier l’infrastructure ML/AI du monde pour construire leur plateforme qu’ils ont réalisé que la programmation sur le stack entier était trop compliquée.
Ils ont donc décidé de construire un langage regroupant une puissante métaprogrammation compile-time, l’intégration de techniques de compilation adaptatives, ou encore le caching tout au long du flux de compilation.
Dévoilé le 2 mai 2023, Mojo vise à servir de passerelle entre la recherche et la production. Il est à fois plus rapide que C++, plus flexible que Nvidia CUDA et plus sûr que Rust.
Quels sont les points forts de Mojo ?
https://twitter.com/Modular_AI/status/1653436642248781825?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1653436642248781825%7Ctwgr%5Ef9709ea9f2283b9ebfafad091d4902b42e180e1e%7Ctwcon%5Es1_&ref_url=https%3A%2F%2Fanalyticsindiamag.com%2Fthis-new-programming-language-is-likely-to-replace-python%2F
Selon ses créateurs, Mojo est 35000X plus rapide que Python. Un autre avantage est la prise en charge native de multiples composants hardware comme les CPU, GPU, TPU et ASICs custom.
La parallélisation automatique sur de multiples composants simplifie également l’écriture de code efficace et parallèle.
Ce langage se caractérise aussi par une syntaxe de haut niveau et une sémantique comparables à Python. C’est un avantage pour les développeurs maîtrisant déjà ce langage.
On retrouve aussi un système de vérification et d’inférence permettant de détecter les erreurs de compile-time et réduisant les risques d’erreurs runtime.
Enfin, la compilation est statique permettant un temps d’exécution plus rapide et une meilleure optimisation. Le code est compilé avant l’exécution.
Comment ça marche ?
Mojo combine la simplicité d’usage de Python avec les performances de C. Les fonctionnalités de programmation de systèmes de bas niveau et de compilation avancée sont basées sur MLIR : le framework de compilation Multi-Level Intermediate Representation.
Ce langage est pensé comme un superset de Python compatible avec les programmes existants. Les fonctionnalités principales de Python sont prises en charge, notamment async/await, le traitement d’erreurs et les variadiques. En revanche, certains aspects de Python comme les classes manquent à l’appel.
https://twitter.com/Modular_AI/status/1653439606522802176
Le meilleur langage pour l’IA ?
Au cours des dernières années, le langage Julia a souvent été présenté comme un remplaçant de Python. Il en va de même pour Rust.
Selon le Stack Overflow Developer Survey 2022, Rust est le langage de programmation le plus populaire. C’est la septième année consécutive qu’il se hisse en tête du classement.
Son principal point faible est sa syntaxe complexe, rendant l’apprentissage difficile. Malgré ce défaut, Rust est utilisé par Meta, Dropbox, et Google prévoit aussi de l’implémenter.
Selon le même sondage, Julia est dans le top 5 des langages les plus appréciés par les développeurs devant Python. C’était déjà le cas en 2021.
Il y a peu, Elon Musk a déclaré sur Twitter que Python ne permettrait pas de créer une « AGI » (intelligence artificielle générale), contrairement à Rust. Le célèbre businessman avait déjà fait l’éloge de ce langage l’an dernier.
https://twitter.com/Modular_AI/status/1649870472417538049?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1649870472417538049%7Ctwgr%5Ef9709ea9f2283b9ebfafad091d4902b42e180e1e%7Ctwcon%5Es1_&ref_url=https%3A%2F%2Fanalyticsindiamag.com%2Fthis-new-programming-language-is-likely-to-replace-python%2F
À présent, Mojo se dresse en concurrent sérieux tant pour Python que pour ses récents challengers. L’un de ses avantages est d’exploiter tout l’écosystème de bibliothèques Python en plus d’une nouvelle base de code.
Au même titre que les hautes capacités computationnelles de C et C++, ceci permettra aux développeurs d’applications IA en Python de se tourner vers ce nouveau langage.
Les développeurs de Mojo reprochaient aux systèmes de programmation modernes de reposer principalement sur des accélérateurs comme les GPU pour les opérations et de revenir aux CPU uniquement pour les tâches comme le chargement de données, le pré-traitement et l’intégration aux systèmes écrits dans d’autres langages.
Ils souhaitaient proposer toutes ces fonctionnalités dans un seul langage, tout en conservant la syntaxe et l’écosystème Python.
Selon Chris Lattner, CEO de Modular AI, Mojo propose plusieurs avancées techniques par rapport à Switft, Rust, C++ ou Julia puisqu’il est bâti par dessus ces langages.
Mojo pour la programmation
Même si Mojo est initialement conçu comme un modèle de programmation innovant pour les accélérateurs de machine learning, il peut aussi servir à la programmation généraliste. En effet, les CPU modernes ont aussi des tensors et des accélérateurs IA.
Les langages Python et Julia sont utilisés pour la construction de modèle IA, mais pas forcément pour la programmation de système.
Le binding de bas niveau à C et C++ permet de construire des bibliothèques hybrides, mais ceci requiert une maîtrise de ces langages.
Or, Mojo se présente comme un langage Pythonic-C intégrable et rétro-compatbile, permettant de surmonter cette limite.
Malgré ces avantages, de nombreux programmeurs se montrent sceptiques concernant ce nouveau langage sur les forums comme Hacker News. Certains doutent des améliorations de performances promises.
Python seems like it’s becoming the language of the future for its ease of use, utility across many distinct domains, and support through various large language models.
— Andrew Ruiz (@then_there_was) May 2, 2023
The duct tape of programming languages.
Wouldn’t have expected it. https://t.co/Wmf7gKCNHr
D’autres estiment que Mojo va définitivement enterrer les espoirs de voir Julia remplacer Python. Il faudra patienter quelques années pour découvrir quel langage de programmation s’impose parmi les développeurs IA…
Comment utiliser Mojo ?
La bibliothèque, le compilateur et le runtime Mojo ne sont pas encore disponibles pour le développement local. En revanche, Modular a créé un environnement de développement hébergé pour permettre d’essayer ce langage : le Mojo Playground.
Les développeurs peuvent s’inscrire dès à présent sur la liste d’attente pour y accéder à cette adresse.
- Partager l'article :