Skip to content
Tech AI Wire
Coding

Mojo passe en open source sous Apache 2.0, les contributions restent fermées

3 min de lecture

Par Tech AI Wire Team

En chiffres

Apache 2.0
license, with LLVM exceptions
1.0
version shipped the week before, with source stability
2024
year the standard library began taking contributions
The Mojo flame logo printed on a white card with a red open padlock in front of it

Modular a publié en open source le compilateur de Mojo et son outillage le 18 août sous la licence Apache 2.0 avec exceptions LLVM, plaçant ainsi la dernière pièce fermée du langage sur GitHub, une semaine après la sortie de Mojo 1.0. Le hic pour quiconque espère envoyer un correctif : Modular indique qu'il n'accepte pas encore de contributions au compilateur ni à l'outillage, et vise à commencer « d'ici la fin de cette année ».

Ce qui a réellement été ouvert, et ce qui ne l'a pas été

La bibliothèque standard de Mojo est ouverte depuis 2024, tout comme ce que l'annonce de Modular décrit comme des centaines de milliers de lignes de code de noyau écrites en Mojo. Le compilateur et l'outillage qui l'entoure étaient les composants fermés restants, et ce sont eux qui ont bougé cette semaine.

ÉlémentStatut
Bibliothèque standardOuverte depuis 2024, accepte les contributions
Code de noyau écrit en MojoDéjà ouvert
CompilateurSource publiée le 18 août ; contributions pas encore acceptées
OutillageSource publiée le 18 août ; contributions pas encore acceptées

La distinction compte plus qu'il n'y paraît. Publier le code source sous Apache 2.0 accorde les droits qui rendent un langage sûr pour bâtir une entreprise dessus : utilisation, modification, redistribution et une concession de brevet explicite. Accepter les contributions est une question de gouvernance distincte, et Modular lui a fixé une date plutôt que de la laisser ouverte.

Pourquoi Apache 2.0 précisément

L'annonce de Modular fait du choix de la licence un argument explicite : « La licence Apache 2.0 est la référence absolue pour les langages de programmation et les compilateurs, car elle offre une grande flexibilité pour être utilisée dans toutes sortes d'applications. » L'exception LLVM qui y est attachée est le même dispositif que LLVM utilise lui-même, et elle existe pour empêcher les termes de la licence de s'étendre à la sortie du compilateur - c'est ce qui la rend utilisable pour les logiciels propriétaires construits avec la chaîne d'outils.

Cette filiation n'est pas un hasard. Mojo a été créé par Chris Lattner, qui, comme le note Phoronix, est l'architecte à l'origine à la fois de LLVM et de Swift, et le langage s'appuie sur la même infrastructure de compilation.

La question Qualcomm

Les deux sources notent que l'annonce intervient après le rachat de Modular par Qualcomm ; Modular se décrit désormais comme une entreprise Qualcomm. Phoronix présente l'ouverture du code comme inattendue dans ce contexte, pointant ce qu'il appelle l'histoire mitigée de Qualcomm avec l'open source.

Lu dans l'autre sens, une publication sous Apache 2.0 immédiatement après un rachat est le signal le plus fort qu'un projet de langage racheté puisse envoyer quant à sa continuité - la licence ne peut pas être révoquée pour du code déjà publié. Reste à démontrer si cette continuité s'étend à la feuille de route et à la fenêtre de contribution promise.

Ce que cela signifie pour les développeurs

Si vous avez évalué Mojo auparavant et vous êtes arrêté au compilateur fermé, cette objection précise a désormais disparu : vous pouvez lire le compilateur, le compiler, le forker et livrer des logiciels propriétaires dessus sans qu'une question de licence plane sur la chaîne d'outils. C'est la différence entre un langage avec lequel on peut expérimenter et un langage que l'on peut justifier dans une évaluation technologique.

Ce qui n'a pas changé, c'est la voie de contribution. Ouvrir un ticket en vaut la peine ; planifier un travail qui dépend de l'intégration d'un correctif du compilateur, non - jusqu'à ce que Modular ouvre cette porte. Elle est annoncée pour la fin 2026, donc traitez tout ce qui arriverait plus tôt comme un bonus plutôt que comme un plan.

Deux remarques pratiques tirées de la couverture de Phoronix méritent d'être vérifiées au regard de votre propre environnement avant d'y consacrer du temps. La prise en charge des plateformes couvre macOS et Linux, Windows étant encore en développement - si votre équipe est avant tout sous Windows, la solution passe par WSL ou un conteneur, pas par un outillage natif. Et Mojo interopère avec Python dans les deux sens, appelant Python depuis Mojo et inversement, ce qui rend une adoption progressive réaliste : vous pouvez déplacer un seul chemin critique plutôt que de réécrire une base de code pour essayer le langage.

Le numéro de version est l'autre signal à peser. Mojo 1.0 n'est arrivé qu'une semaine avant cette publication, et Modular l'associe à un engagement de stabilité du code source - le point à partir duquel un langage cesse de bouger sous vos pieds d'une version à l'autre. Pour quiconque attendait que Mojo cesse d'être une expérimentation avant d'y consacrer un vrai temps d'ingénierie, l'étiquette 1.0 assortie d'un compilateur sous Apache 2.0 est la combinaison qui manquait.