Thème d'affichage

Insolite : il crée un langage de programmation avec des M&M's

Nicolas Lecointre · 15 Mar 2026 à 10h15
Insolite : il crée un langage de programmation avec des M&M's

Il renverse des bonbons, donc il invente un langage de programmation. Comme cela peut arriver aux meilleurs d'entre nous, Mufeed VH, un développeur indien, a malencontreusement renversé un paquet de GEMS (l'équivalent local des M&M's).

Alors qu'il aurait pu les ramasser comme n'importe quel être humain normalement constitué, il a remarqué que ses bonbons formaient une sorte de flèche par terre, et s'est demandé si ce motif pouvait s'exécuter comme du code (ben oui, normal).

Résultat : un compilateur, un décodeur photo, un playground web et toute une suite de tests. Pour un langage de programmation dont le code source est littéralement fait de... bonbons colorés.

Six couleurs, zéro excuse

Qu'on se le dise tout de suite : le principe de MnM Lang est élégamment tordu.

Chaque couleur de bonbon correspond à une famille d'instructions : les bleus gèrent le flux d'exécution, les verts manipulent les variables et la pile, les jaunes font les calculs, les oranges s'occupent des entrées/sorties, les marrons gèrent les labels et les strings, et les rouges couvrent le swap, la rotation et la logique booléenne.

Mais les rouges ont un deuxième rôle : ils encodent les valeurs numériques. Un seul rouge = 0, deux = 1, six = 5, vous l'avez. Pour afficher "5", il faut donc poser six bonbons rouges sur la table.

Comme le résume l'auteur, on est plus proche du jeu de plateau que du terminal. Et BBBBBB (six bleus) arrête le programme. Voilà voilà. 👀

Quand le sucre ne suffit plus

Sur le papier, MnM Lang encode tout en bonbons. En pratique, les chaînes de caractères ont posé un vrai problème : encoder "Hello, world!" dans une photo de bonbons est techniquement faisable, mais Mufeed décrit l'exercice comme "techniquement possible et spirituellement horrible" — quiconque a déjà fait de l'OCR dans sa vie comprendra allègrement la douleur.

Sa solution : les strings et les variables initiales vivent dans un fichier JSON séparé. Le fichier image ne garde que la structure visuelle, le JSON porte les données textuelles. Les deux ensemble forment le programme complet. Bref, le dev a su arrêter le délire pile au bon endroit pour que le reste tienne debout.

Hello World en MNM Lang

Hello World en MNM Lang

FizzBuzz en bonbons

MnM Lang fait tourner Hello World, des factorielles et FizzBuzz — un petit exercice de code classique qui a la cote pour les entretiens techniques anglophones (compter de 1 à 100 en remplaçant les multiples de 3 par "Fizz" et ceux de 5 par "Buzz").

C'est basique sur le papier, mais ça mobilise des boucles, des conditions, des opérations modulo et un affichage conditionnel. Si FizzBuzz passe, on tient un vrai langage. Et FizzBuzz passe.

Le projet embarque aussi un playground web et un décodeur photo : posez de vrais M&M's sur une feuille blanche, prenez une photo de dessus, et le système reconstruit le code source à partir des couleurs détectées.

L'auteur est honnête sur les limites de son décodeur : ça marche sur une photo bien cadrée avec un fond uni et des bonbons espacés. Inutile de vider un sachet sur une table encombrée en espérant que ça compile.

Côté fabrication, les sprites de bonbons ont été générés par un modèle d'IA puis normalisés via un script maison pour corriger les ombres et garantir des couleurs cohérentes — parce que oui, même des bonbons virtuels ont besoin d'une pipeline d'ingénierie quand on veut qu'un décodeur photo les reconnaisse correctement.

Petit détail savoureux : Mufeed a utilisé un LLM pour coder une partie du compilateur, puis a écrit des tests spécifiquement pour vérifier que l'IA ne s'était pas contentée de faire semblant.

Le repo est sur GitHub, à tester la prochaine fois que vous ouvrirez un paquet de M&M's donc.

À propos de l'auteur

Nicolas Lecointre

Nicolas Lecointre

Chief Happiness Officer des développeurs, ceinture noire de sudo. Pour rire, j'ai créé Les Joies du Code. J'utilise Vim depuis 10 ans parce que je sais pas comment le quitter.

Voir sa page auteur

Articles similaires