Magpie — un langage de programmation conçu pour permettre aux LLM d’écrire du code parfaitement du premier coup
(magpie-lang.com)Présentation du projet
Magpie est un projet open source qui se présente comme « le premier langage de programmation conçu pour les agents IA ». Alors que les langages existants sont optimisés pour le confort de frappe des humains, Magpie est optimisé pour la génération de code par les LLM. Sa philosophie centrale est « l’élimination de l’ambiguïté ». En Rust ou en TypeScript, a + b oblige à déduire s’il s’agit d’une addition d’entiers ou d’une concaténation de chaînes, ou encore s’il faut paniquer en cas de dépassement de capacité. Dans Magpie, en revanche, toutes les opérations sont décrites explicitement, comme i.add { lhs=%a, rhs=%b }. Il n’existe aussi qu’une seule méthode de branchement, cbr/br, et le transfert de propriété mémoire est lui aussi exprimé par des opérations explicites. L’argument central est que « moins il y a de choix, moins il y a de points de décision pour le LLM, et moins il y a d’erreurs ».
Explication
En interne, le langage adopte une syntaxe SSA (Static Single Assignment) et est compilé en code machine natif via LLVM. La gestion de la mémoire combine l’ARC (Automatic Reference Counting) et des règles explicites de propriété à la Rust afin de garantir la sûreté sans GC. D’après les benchmarks publiés, le temps de compilation est de 155 ms, plus rapide que Rust (234 ms) et TypeScript (268 ms), la vitesse d’exécution est identique à celle de Rust avec 32 ms, et l’utilisation mémoire n’est que de 1,6 Mo, soit bien moins que TypeScript (69,2 Mo). En particulier, sur l’indicateur de complexité lexicale (Vocabulary Complexity), qui reflète la prévisibilité pour les LLM, Magpie atteint 0,107, soit environ la moitié de Rust (0,225) et TypeScript (0,231).
Cela dit, Magpie indique lui-même qu’il « utilise environ 2,3 fois plus de tokens que les langages existants », ce qui implique un compromis du point de vue du coût des appels LLM. Selon qu’on considère plus important de réduire le nombre de nouvelles tentatives lors de la génération de code complexe par des agents IA, ou d’optimiser l’efficacité en tokens, l’évaluation de sa pertinence pratique peut varier. Le projet est construit avec Rust et peut être installé via cargo build.
git clone https://github.com/magpie-lang/magpie.git
cd magpie
cargo build -p magpie_cli
7 commentaires
Hum… en cherchant Magpie, je vois qu’il existe déjà un autre langage (magpie-lang.org, dont le développement a commencé en 2013) ; je me demande s’il n’y aura pas des questions de droits comme le copyright concernant le nom….
Le télémètre laser que je connais s’appelle aussi Magpie haha
Si c’est dans un autre secteur, je peux me dire que bon, passe encore. Le produit est différent, après tout ?
Mais là, c’est carrément le même langage de programmation, haha... Si je développais un nouveau langage et que je l’appelais C++ ou Rust, j’aurais l’impression de me faire engueuler... ?
Intéressant. Avez-vous des projets d’évolution pour la suite ?
Il n’y a pas de résultats mesurant la consommation réelle de tokens sur une tâche unique, et il s’agit simplement d’une supposition selon laquelle l’utilisation de magpie réduirait les nouvelles tentatives à ce point.
La comparaison du temps de compilation est étrange. Pourquoi comparer les ms/token ?
C’est peut-être parce que c’est un langage AI-native(?) ?
Comme ce n’est pas un langage conçu pour être écrit directement par des humains, la longueur réelle du code n’a pas vraiment d’importance,
et j’ai l’impression que l’idée, c’est plutôt de mesurer le temps de compilation d’un prompt destiné à implémenter une certaine fonctionnalité… haha