{"id":2747,"date":"2026-08-04T14:31:07","date_gmt":"2026-08-04T12:31:07","guid":{"rendered":"https:\/\/coding4phone.com\/?p=2747"},"modified":"2026-08-04T14:31:08","modified_gmt":"2026-08-04T12:31:08","slug":"mogwai-a-enfin-son-tutoriel-pas-a-pas","status":"publish","type":"post","link":"https:\/\/coding4phone.com\/?p=2747","title":{"rendered":"MOGWAI a enfin son tutoriel pas \u00e0 pas"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Depuis que MOGWAI est open source, la question qui revient le plus souvent \u2014 sur GitHub, en message priv\u00e9, ou juste dans mes propres retours d&rsquo;exp\u00e9rience en le montrant \u00e0 des coll\u00e8gues \u2014 c&rsquo;est toujours la m\u00eame : *\u00a0\u00bbOk, mais par o\u00f9 je commence ?\u00a0\u00bb*<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La documentation existante r\u00e9pond tr\u00e8s bien \u00e0 *\u00a0\u00bbcomment fonctionne telle primitive\u00a0\u00bb* ou *\u00a0\u00bbquelle est la syntaxe de telle structure\u00a0\u00bb*. C&rsquo;est une r\u00e9f\u00e9rence, organis\u00e9e par sujet, pr\u00e9cise et compl\u00e8te. Mais une r\u00e9f\u00e9rence n&rsquo;est pas un chemin. Elle suppose qu&rsquo;on sait d\u00e9j\u00e0 ce qu&rsquo;on cherche \u2014 ce qui est exactement le probl\u00e8me quand on d\u00e9couvre un langage \u00e0 pile pour la premi\u00e8re fois et qu&rsquo;on ne sait m\u00eame pas quelles questions se poser.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C&rsquo;est ce trou que <strong><a href=\"https:\/\/github.com\/Sydney680928\/mogwai\/tree\/main\/docs\/EN\/MOGWAI_TUTORIAL_EN.md\" target=\"_blank\" rel=\"noreferrer noopener\">MOGWAI, Step by Step<\/a><\/strong> vient combler.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Un fil rouge, pas un index<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Le tutoriel part d&rsquo;un principe simple : tu sais d\u00e9j\u00e0 programmer \u2014 variables, boucles, fonctions, tu connais tout \u00e7a. Ce qu&rsquo;on ne suppose pas, en revanche, c&rsquo;est que tu saches penser <em>en pile<\/em>. C&rsquo;est le seul vrai obstacle mental pour quiconque vient d&rsquo;un langage classique, et c&rsquo;est exactement l\u00e0-dessus qu&rsquo;on prend le temps de s&rsquo;arr\u00eater d\u00e8s la deuxi\u00e8me section, avec des exemples trac\u00e9s pas \u00e0 pas \u2014 l&rsquo;ex\u00e9cution de <code>3 4 + 2 *<\/code>, jeton par jeton, jusqu&rsquo;\u00e0 ce que la logique devienne \u00e9vidente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c0 partir de l\u00e0, chaque section s&rsquo;appuie sur la pr\u00e9c\u00e9dente : premier programme, variables, types, contr\u00f4le de flux, listes, records, fonctions (avec leurs trois niveaux de rigueur \u2014 basique, typ\u00e9e, \u00e0 param\u00e8tres nomm\u00e9s), les sigils avanc\u00e9s (<code>&amp;<\/code>, <code>!<\/code>, <code>@<\/code>, <code>--&gt;<\/code>) qui n&rsquo;apparaissent qu&rsquo;une fois qu&rsquo;ils ont un vrai int\u00e9r\u00eat \u00e0 d\u00e9montrer, la gestion d&rsquo;erreurs, la programmation orient\u00e9e objet, et les t\u00e2ches concurrentes. Quinze sections, chacune con\u00e7ue pour qu&rsquo;on n&rsquo;ait jamais besoin de revenir en arri\u00e8re pour comprendre ce qui vient d&rsquo;appara\u00eetre.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pens\u00e9 pour n&rsquo;importe quel usage<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Une chose que je tiens \u00e0 clarifier au passage : MOGWAI n&rsquo;est pas un langage de niche pour un secteur particulier. Son moteur RPN vient d&rsquo;un h\u00e9ritage \u2014 celui des calculatrices RPN classiques et des langages \u00e0 pile comme Forth \u2014 mais c&rsquo;est un choix d&rsquo;impl\u00e9mentation, pas une destination. Le tutoriel le dit d\u00e8s la premi\u00e8re ligne : c&rsquo;est un moteur de script g\u00e9n\u00e9raliste, aussi \u00e0 l&rsquo;aise pour scripter un jeu, automatiser une t\u00e2che, exposer une surface de personnalisation \u00e0 un utilisateur final, ou piloter un objet connect\u00e9.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Essayer avant d&rsquo;installer<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Toutes les commandes du tutoriel sont testables sans rien installer, directement dans le <a href=\"https:\/\/sydney680928.github.io\/MOGWAI\/\">playground en ligne<\/a>. Tu ouvres, tu copies un exemple, tu regardes la pile \u00e9voluer. Pas de setup, pas de friction \u2014 juste le langage.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Et si l&rsquo;envie de creuser plus loin te prend, le tutoriel se termine par un aper\u00e7u de ce qu&rsquo;il reste \u00e0 d\u00e9couvrir \u2014 <code>calc<\/code> pour les formules infixes, <code>regex.*<\/code> pour la reconnaissance de motifs, <code>http.*<\/code> pour parler au web \u2014 avant de pointer vers la r\u00e9f\u00e9rence compl\u00e8te du langage et des 354 primitives natives.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pourquoi maintenant<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ce tutoriel n&rsquo;\u00e9tait pas pr\u00e9vu d\u00e8s le d\u00e9part \u2014 il est n\u00e9 d&rsquo;un constat apr\u00e8s plusieurs mois \u00e0 partager MOGWAI autour de moi : la doc de r\u00e9f\u00e9rence convainc les gens que le projet est s\u00e9rieux, mais c&rsquo;est le premier quart d&rsquo;heure d&rsquo;exp\u00e9rimentation qui d\u00e9cide s&rsquo;ils restent ou repartent. Il fallait un texte pens\u00e9 sp\u00e9cifiquement pour ce premier quart d&rsquo;heure.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si tu as d\u00e9j\u00e0 crois\u00e9 MOGWAI sans savoir par o\u00f9 l&rsquo;attaquer, c&rsquo;est le moment d&rsquo;y retourner. Et si tu ne le connais pas encore : un langage \u00e0 pile pour .NET, l\u00e9ger, embarquable, avec plus de 350 primitives natives \u2014 <a href=\"https:\/\/github.com\/Sydney680928\/mogwai\/tree\/main\/docs\/EN\/MOGWAI_TUTORIAL_EN.md\">le tutoriel<\/a> t&rsquo;attend, et il ne suppose rien que tu ne saches d\u00e9j\u00e0.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><em>MOGWAI est open source (Apache 2.0) sur <a href=\"https:\/\/github.com\/Sydney680928\/mogwai\">GitHub<\/a>.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Depuis que MOGWAI est open source, la question qui revient le plus souvent \u2014 sur GitHub, en message priv\u00e9, ou juste dans mes propres retours d&rsquo;exp\u00e9rience en le montrant \u00e0 des coll\u00e8gues \u2014 c&rsquo;est toujours la m\u00eame : *\u00a0\u00bbOk, mais par o\u00f9 je commence ?\u00a0\u00bb* La documentation existante r\u00e9pond tr\u00e8s bien \u00e0 *\u00a0\u00bbcomment fonctionne telle &#8230; <a title=\"MOGWAI a enfin son tutoriel pas \u00e0 pas\" class=\"read-more\" href=\"https:\/\/coding4phone.com\/?p=2747\" aria-label=\"En savoir plus sur MOGWAI a enfin son tutoriel pas \u00e0 pas\">Lire la suite<\/a><\/p>\n","protected":false},"author":1,"featured_media":2750,"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":[6,48,50,9],"tags":[],"class_list":["post-2747","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mogwai","category-rpn","category-scripting","category-tutoriel"],"jetpack_publicize_connections":[],"jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pfoe4s-Ij","jetpack-related-posts":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2026\/08\/coding-4-phone-6a71db21c9da1.png?fit=1024%2C1024&ssl=1","_links":{"self":[{"href":"https:\/\/coding4phone.com\/index.php?rest_route=\/wp\/v2\/posts\/2747","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=2747"}],"version-history":[{"count":2,"href":"https:\/\/coding4phone.com\/index.php?rest_route=\/wp\/v2\/posts\/2747\/revisions"}],"predecessor-version":[{"id":2749,"href":"https:\/\/coding4phone.com\/index.php?rest_route=\/wp\/v2\/posts\/2747\/revisions\/2749"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/coding4phone.com\/index.php?rest_route=\/wp\/v2\/media\/2750"}],"wp:attachment":[{"href":"https:\/\/coding4phone.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2747"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/coding4phone.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2747"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/coding4phone.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2747"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}