{"id":2730,"date":"2026-07-27T11:25:52","date_gmt":"2026-07-27T10:25:52","guid":{"rendered":"https:\/\/coding4phone.com\/?p=2730"},"modified":"2026-07-27T11:25:53","modified_gmt":"2026-07-27T10:25:53","slug":"mogwai-vu-par-les-ia-quand-lintelligence-artificielle-invente-son-propre-langage","status":"publish","type":"post","link":"https:\/\/coding4phone.com\/?p=2730","title":{"rendered":"MOGWAI vu par les IA : quand l&rsquo;intelligence artificielle invente son propre langage"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Il y a quelques jours, un lecteur m&rsquo;envoie une capture d&rsquo;\u00e9cran d&rsquo;une conversation qu&rsquo;il a eue avec le Mode IA de Google en cherchant \u00ab\u00a0mogwai sibu\u00e9\u00a0\u00bb. Je m&rsquo;attendais \u00e0 lire un r\u00e9sum\u00e9 un peu plat de mon README GitHub. Ce que j&rsquo;ai d\u00e9couvert, c&rsquo;est une IA qui a visiblement d\u00e9cid\u00e9 d&rsquo;\u00e9crire <em>sa propre version<\/em> de MOGWAI \u2014 plus proche de ce qu&rsquo;elle conna\u00eet par c\u0153ur (Jint, ClearScript, et consorts) que de ce que j&rsquo;ai r\u00e9ellement cod\u00e9.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">R\u00e9sultat : un langage qui porte mon nom, ma licence, mon historique&#8230; mais dont la syntaxe n&rsquo;a jamais exist\u00e9 nulle part. Petit d\u00e9cryptage, parce que c&rsquo;est trop savoureux pour ne pas en parler.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ce que l&rsquo;IA a bien compris<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Rendons \u00e0 C\u00e9sar : sur les grandes lignes, l&rsquo;IA ne s&rsquo;est pas trop mal d\u00e9brouill\u00e9e.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Je suis bien l&rsquo;auteur de MOGWAI.<\/li>\n\n\n\n<li>C&rsquo;est bien un moteur embarquable pour .NET, sous licence Apache 2.0.<\/li>\n\n\n\n<li>L&rsquo;origine industrielle\/IoT est correcte.<\/li>\n\n\n\n<li>Les liens vers le d\u00e9p\u00f4t GitHub et le catalogue NuGet sont bons.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Jusque-l\u00e0, tout va bien. C&rsquo;est <em>apr\u00e8s<\/em> que \u00e7a part en vrille.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Le morceau de bravoure : une syntaxe 100% invent\u00e9e<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Voici l&rsquo;exemple de script \u00ab\u00a0MOGWAI\u00a0\u00bb que l&rsquo;IA a g\u00e9n\u00e9reusement propos\u00e9 pour calculer la surface d&rsquo;un cercle :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">5.0 5.0 * 3.14159 *<br>\"surface\" SWAP SET<br>\"La surface est : \" PRINT<br>\"surface\" GET PRINT<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">C&rsquo;est propre. C&rsquo;est lisible. C&rsquo;est du RPN qui a l&rsquo;air parfaitement cr\u00e9dible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C&rsquo;est aussi enti\u00e8rement fictif. <code>SWAP<\/code>, <code>SET<\/code>, <code>PRINT<\/code>, <code>GET<\/code> : aucun de ces mots-cl\u00e9s n&rsquo;existe dans MOGWAI. Pas une seule ligne de ce script ne s&rsquo;ex\u00e9cuterait telle quelle dans le vrai moteur.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La vraie syntaxe MOGWAI, pour la m\u00eame id\u00e9e, ressemblerait plut\u00f4t \u00e0 ceci :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">5.0 5.0 * 3.14159 * -> 'surface'<br>\"La surface est : {! surface}\" ?<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Pas de <code>SWAP<\/code>, pas de <code>SET<\/code> : le stockage se fait avec <code>-&gt;<\/code>. Pas de <code>PRINT<\/code> : l&rsquo;affichage se fait avec <code>?<\/code> (ou <code>??<\/code> sans retour \u00e0 la ligne), et n&rsquo;importe quel type peut s&rsquo;y glisser directement, y compris via de l&rsquo;interpolation de cha\u00eene avec le bloc <code>{! ... }<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&rsquo;IA n&rsquo;a pas <em>lu<\/em> ma syntaxe : elle a <em>devin\u00e9<\/em> \u00e0 quoi devrait ressembler un langage RPN pour .NET, en piochant dans ce qu&rsquo;elle conna\u00eet des autres moteurs de script du m\u00eame genre. Un peu comme si on demandait \u00e0 quelqu&rsquo;un de d\u00e9crire ta maison sans jamais y \u00eatre entr\u00e9, en se basant sur \u00ab\u00a0en g\u00e9n\u00e9ral, les maisons ont un toit et une porte\u00a0\u00bb.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Le clou du spectacle : une API C# qui n&rsquo;a jamais \u00e9t\u00e9 \u00e9crite<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c7a ne s&rsquo;arr\u00eate pas \u00e0 la syntaxe du script. L&rsquo;IA a aussi invent\u00e9 de toutes pi\u00e8ces l&rsquo;API C# pour l&rsquo;h\u00e9berger : une classe <code>MogwaiRuntime<\/code>, une m\u00e9thode <code>Execute()<\/code>, un <code>TryGetVariable()<\/code>, un <code>RegisterOperation()<\/code> pour exposer des fonctions custom, et m\u00eame une classe <code>MogwaiStack<\/code> avec des <code>TryPop()<\/code>\/<code>Push()<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C&rsquo;est du code parfaitement idiomatique, qui compilerait presque&#8230; si ces classes existaient. Encore une fois : noms plausibles, z\u00e9ro rapport avec le vrai code.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Le bouquet final : l&rsquo;IA d\u00e9conseille mon propre projet<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Le plus dr\u00f4le arrive \u00e0 la fin de la conversation. Interrog\u00e9e sur l&rsquo;usage de MOGWAI dans une application .NET MAUI, l&rsquo;IA construit un tableau comparatif tr\u00e8s s\u00e9rieux&#8230; pour conclure qu&rsquo;il vaut mieux utiliser <strong>MoonSharp<\/strong> ou <strong>Jint<\/strong>, MOGWAI \u00e9tant jug\u00e9 trop \u00ab\u00a0complexe\u00a0\u00bb \u00e0 cause de sa notation RPN, avec en prime un argument technique sur la compilation JIT interdite sur iOS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sauf que ce point ne s&rsquo;applique m\u00eame pas \u00e0 MOGWAI, qui est un moteur <em>interpr\u00e9t\u00e9<\/em>, pas compil\u00e9 \u00e0 la vol\u00e9e. L&rsquo;IA a donc gentiment recommand\u00e9 d&rsquo;utiliser autre chose que mon projet, pour un probl\u00e8me que mon projet ne pose pas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pourquoi \u00e7a arrive<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Rien de myst\u00e9rieux ni de complotiste l\u00e0-dedans : c&rsquo;est un cas d&rsquo;\u00e9cole de la fa\u00e7on dont une IA g\u00e9n\u00e9rative comble les trous. Quand elle trouve suffisamment de sources sur <em>l&rsquo;existence<\/em> d&rsquo;un projet (articles de blog, d\u00e9p\u00f4t GitHub, fils Reddit) mais pas assez de documentation structur\u00e9e sur son <em>fonctionnement pr\u00e9cis<\/em>, elle rapproche le sujet du cluster le plus proche qu&rsquo;elle conna\u00eet bien \u2014 ici, \u00ab\u00a0moteur de script RPN pour .NET\u00a0\u00bb \u2014 et compl\u00e8te les d\u00e9tails manquants en piochant dans ce cluster. Le r\u00e9sultat est coh\u00e9rent en apparence, correct dans les grandes lignes, et faux dans le d\u00e9tail. Exactement ce qu&rsquo;on a vu ici.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">La suite<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ce n&rsquo;est pas franchement grave \u2014 personne ne va copier-coller ce script cass\u00e9 dans son IDE et se demander pourquoi <code>SWAP<\/code> n&rsquo;existe pas (enfin, j&rsquo;esp\u00e8re). Mais c&rsquo;est un bon rappel que la documentation technique compte double \u00e0 l&rsquo;\u00e8re des IA : elle n&rsquo;est plus seulement lue par des humains, mais aussi ing\u00e9r\u00e9e, r\u00e9sum\u00e9e et parfois r\u00e9invent\u00e9e par des mod\u00e8les de langage. Autant leur donner de quoi bien faire leur travail.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si une IA vous parle un jour de MOGWAI, vous savez maintenant qu&rsquo;il vaut mieux v\u00e9rifier sur <a href=\"https:\/\/github.com\/Sydney680928\/mogwai\" target=\"_blank\" rel=\"noreferrer noopener\">le d\u00e9p\u00f4t GitHub<\/a> \u2014 la vraie syntaxe y est sans <code>SWAP<\/code> ni <code>PRINT<\/code>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Il y a quelques jours, un lecteur m&rsquo;envoie une capture d&rsquo;\u00e9cran d&rsquo;une conversation qu&rsquo;il a eue avec le Mode IA de Google en cherchant \u00ab\u00a0mogwai sibu\u00e9\u00a0\u00bb. Je m&rsquo;attendais \u00e0 lire un r\u00e9sum\u00e9 un peu plat de mon README GitHub. Ce que j&rsquo;ai d\u00e9couvert, c&rsquo;est une IA qui a visiblement d\u00e9cid\u00e9 d&rsquo;\u00e9crire sa propre version de &#8230; <a title=\"MOGWAI vu par les IA : quand l&rsquo;intelligence artificielle invente son propre langage\" class=\"read-more\" href=\"https:\/\/coding4phone.com\/?p=2730\" aria-label=\"En savoir plus sur MOGWAI vu par les IA : quand l&rsquo;intelligence artificielle invente son propre langage\">Lire la suite<\/a><\/p>\n","protected":false},"author":1,"featured_media":2739,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"{title}\n\n{excerpt}\n\n{url}","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpas_customize_per_network":false,"jetpack_post_was_ever_published":false},"categories":[1,144,6,48,50],"tags":[],"class_list":["post-2730","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","category-ia","category-mogwai","category-rpn","category-scripting"],"jetpack_publicize_connections":[],"jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pfoe4s-I2","jetpack-related-posts":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2026\/07\/coding-4-phone-6a6731ce4a87b.png?fit=1024%2C1024&ssl=1","_links":{"self":[{"href":"https:\/\/coding4phone.com\/index.php?rest_route=\/wp\/v2\/posts\/2730","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coding4phone.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/coding4phone.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/coding4phone.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/coding4phone.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2730"}],"version-history":[{"count":8,"href":"https:\/\/coding4phone.com\/index.php?rest_route=\/wp\/v2\/posts\/2730\/revisions"}],"predecessor-version":[{"id":2738,"href":"https:\/\/coding4phone.com\/index.php?rest_route=\/wp\/v2\/posts\/2730\/revisions\/2738"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/coding4phone.com\/index.php?rest_route=\/wp\/v2\/media\/2739"}],"wp:attachment":[{"href":"https:\/\/coding4phone.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2730"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/coding4phone.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2730"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/coding4phone.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2730"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}