Je développe depuis très longtemps et j’ai eu l’occasion d’utiliser beaucoup de technologies différentes et des langages très variés, mais je crois que le langage qui m’a le plus « parlé » c’est le RPL.
RPL c’est l’acronyme de Reverse Polish Lisp, et c’est le nom d’un langage créé par HP pour ses calculatrices scientifiques et commerciales.
Calculatrice HP 48SX programmable en RPL
RPL ressemble beaucoup à FORTH. Comme lui il utilise une pile pour prendre les paramètres et y déposer les résultats, et comme lui il utilise la Notation Polonaise Inverse (RPN). Ainsi en RPN on n’écrit pas 2+2 pour effectuer une addition, mais 2 2 + : plus besoin de parenthèses ni de variables locales, en théorie.
Au premier abord, le RPL n’a pas une syntaxe très simple, mais en creusant le sujet on se rend vite compte de la puissance qu’il peut dégager.
Une opportunité à saisir
L’idée de lancer le développement de MOGWAI est venue le jour où nous avons eu besoin, au boulot, de simuler un périphérique Bluetooth Low Energy. l’appareil en question n’existe pas encore — il doit d’abord être conçu physiquement, son firmware écrit, testé et validé. Toute cette procédure prend du temps.
Plutôt que d’attendre, nous avons développé un outil capable de simuler le comportement d’un périphérique BLE avant même qu’il existe physiquement. La souplesse obtenue était énorme : le code logique de la simulation était entièrement scripté, modifiable en temps réel, sans recompilation.
Ce simulateur BLE était le projet idéal pour lancer le développement de MOGWAI.
Une lente maturation
La première version de MOGWAI a été développée en .NET Standard avec C#, et incluse dans un simulateur UWP tournant sur Raspberry PI 3 sous Windows 10 IoT — les Raspberry étant l’une des rares plateformes à l’époque dont la puce BLE supporte le rôle de périphérique. Cet outil nous a fait gagner beaucoup de temps.
Au fur et à mesure des besoins, le moteur a été étendu : gestion des liaisons série, requêtes HTTP, bases de données SQLite, GPIO, et aujourd’hui plus de 240 primitives.
Là où nous en sommes — 2026
Ce qui avait commencé comme un outil interne est devenu, au fil de 10 ans de développement, un moteur de scripting mature et autonome.
En février 2026, MOGWAI est passé open source (licence Apache 2.0) sous la version 8. Depuis, le projet a franchi plusieurs étapes importantes :
- NuGet package publié et maintenu activement (v8.3 à ce jour).
- MOGWAI Playground — un environnement interactif en Blazor WebAssembly pour tester le langage directement dans le navigateur, sans installation.
- MOGWAI STUDIO — un IDE dédié avec colorisation syntaxique, débogage pas à pas et mode interactif intégré.
- Cross-platform complet — Windows, Linux, macOS, Android et iOS via .NET MAUI.
- Production — MOGWAI pilote en conditions réelles l’intégralité des tests d’un banc de test de cartes électroniques fabriquées industriellement.
Le langage lui-même a beaucoup évolué : sucre syntaxique, appels parenthésés f(expr), paramètres nommés f[x: 5], sigil & pour la mutation en place, optimisations majeures du runtime (suppression des allocations inutiles, remplacement des lookups O(n) par des dictionnaires O(1)). Des benchmarks récents sur le test Brainfuck/Mandelbrot montrent des gains de performance très significatifs par rapport aux versions précédentes.
La documentation complète est disponible en anglais sur GitHub.
Ce projet me tient à cœur depuis le premier jour. Il est né d’un besoin concret, il a grandi avec les projets qui l’utilisent, et il continue d’évoluer. Si vous êtes développeur .NET et que vous avez toujours voulu embarquer un moteur de scripting dans votre application sans écrire un parser from scratch — MOGWAI est fait pour vous.
Steph.
Liens utiles
3 réflexions au sujet de “MOGWAI — The Origin Story (article mis à jour)”