Apprendre Prolog facilement avec les Pokémon : le tutoriel surprenant
Écoutez-moi bien : si vous voulez enfin comprendre Prolog sans y passer six mois à vous casser les dents sur des arbres de décision incompréhensibles, Alexander Petros a la solution. Ce type a eu une idée aussi simple que géniale : utiliser les combats Pokémon pour expliquer un langage logique vieux de cinquante ans. Et ça marche. Pour une fois, un tutoriel sur un sujet réputé aride arrive à vous faire sourire. apprendre prolog, vous dis-je, ça peut même être fun.
Moi, Marc, technicien informatique indépendant depuis 15 ans, je vous le dis tout net : Prolog, c’est comme le Pokémon GO de la programmation. Tout le monde en parle, personne ne comprend vraiment comment ça fonctionne. Sauf que là, on a un gars qui a transformé les règles de combat Pokémon en un cours de logique pure. Et mine de rien, c’est révolutionnaire.
La semaine dernière, un client m’a appelé parce que son script Prolog refusait d’afficher la liste des Pokémon faibles au type Eau. Après une heure de debug où j’ai dû lui expliquer que non, Prolog ne devine pas ses intentions, j’ai failli lui balancer mon clavier dans la gueule. Un tutoriel comme celui d’Alexander m’aurait évité ce calvaire. Alors aujourd’hui, je vous explique pourquoi ce truc est une pépite.
Prolog, ce langage qui fait peur (alors qu’il est juste bizarre)
Prolog, c’est le langage que les profs adorent donner en TP pour vous faire pleurer. Imaginez un truc où, au lieu d’écrire des boucles et des conditions comme en Python ou JavaScript, vous écrivez des règles logiques et vous laissez la machine résoudre le problème toute seule. apprendre prolog, c’est comme apprendre à conduire en disant à la voiture : « Tiens, va de A à B en évitant les trous » sans jamais toucher au volant.
Le problème, c’est que 99% des tutoriels sur Prolog commencent par : « Voyez-vous, Prolog est basé sur la logique des prédicats du premier ordre ». Merci, c’est super clair. Alexander, lui, a décidé de partir de quelque chose de concret : « Prenons un Pokédex, et voyons comment déduire quels Pokémon sont faibles face à un type donné ». Du coup, en cinq minutes, vous avez déjà un exemple qui parle à tout le monde.
Et là, la magie opère. Au lieu de vous noyer dans des algorithmes incompréhensibles, vous voyez comment une simple règle comme « Un Pokémon est faible face à un type s’il possède une faiblesse déclarée pour ce type » peut générer des milliers de combinaisons automatiquement. C’est pas la beauté de la programmation logique, ça ?
Moi, perso, la dernière fois que j’ai essayé d’expliquer Prolog à un stagiaire, il a fini par dessiner des arbres sur un tableau blanc en hurlant « Mais où est la logique ?! ». Avec ce genre de méthode, il aurait peut-être tenu cinq minutes avant de comprendre. Et encore, il aurait fallu qu’il ait déjà joué à Pokémon.
Pourquoi les Pokémon rendent Prolog enfin digeste (ou presque)
Vous vous souvenez de vos premières lignes de code en Prolog ? Moi oui. C’était en 2005, pendant un stage où le prof nous avait demandé d’écrire un solveur de Sudoku. Résultat : trois jours à écrire des règles pour aboutir à un programme qui plantait dès le premier chiffre saisi. Depuis, j’ai un rapport de haine avec cette syntaxe.
Mais avec les Pokémon, tout change. Parce que :
- On connaît tous les règles de base (ou presque)
- On a déjà imaginé des stratégies de combat dans sa tête
- On peut visualiser le résultat sans se prendre la tête
Alexander part d’exemples ultra-simples, comme « Pikachu est électrique », et construit progressivement des règles plus complexes. Par exemple, comment déterminer quels Pokémon peuvent battre un Dracaufeu en utilisant la faiblesse au type Eau. Et là, pour une fois, ça clique. Vous voyez comment la logique se construit, comment les solutions émergent naturellement.
D’ailleurs, je me souviens d’un client qui voulait un script pour optimiser ses équipes Pokémon. Au lieu de lui pondre un algorithme de brute force à la con, j’ai utilisé des règles Prolog basées sur les types et les statistiques. Résultat ? Son script tournait en deux lignes et il comprenait enfin ce qu’il codait. C’était ça, la vraie révolution.
Bien sûr, Windows a encore tout cassé avec sa MAJ de la veille, mais c’est une autre histoire. L’important, c’est que ce genre de méthode montre que Prolog n’est pas un langage pour aliens. C’est juste un outil qui demande une approche différente. Et les Pokémon, c’est le cheval de Troie parfait pour y entrer.
La preuve que Prolog n’est pas fait pour les masochistes (enfin, si… un peu)
Bon, soyons honnêtes : Prolog, c’est toujours un langage de niche. Même avec les Pokémon, y’aura toujours des gens pour dire « Ça sert à rien, prenez Python ». Mais apprendre prolog a au moins trois avantages :
- Ça muscle votre cerveau en logique pure
- Ça vous montre qu’il existe des paradigmes autres que la POO
- Ça vous évite de passer pour un idiot quand on vous parle d’IA et de règles logiques
Perso, je me souviens d’un bug sur un script Perl en 2012. Le client voulait une liste de clients triée par ordre alphabétique, mais son script retournait des résultats aléatoires. Après une heure de recherche, j’ai compris qu’il avait collé un algorithme de tri à bulles dans un script qui aurait dû utiliser des requêtes SQL. Avec Prolog, au moins, on n’a pas ce genre de problèmes : soit la logique est correcte, soit elle ne l’est pas. Point.
Et c’est là que les Pokémon deviennent géniaux. Parce qu’au lieu de vous expliquer que « Prolog utilise un moteur d’inférence pour résoudre les buts », Alexander vous montre comment construire des arbres de décision basés sur les types Pokémon. Du coup, quand vous voyez votre premier programme Prolog fonctionner, c’est comme si vous aviez résolu une énigme de Pokémon GO : vous avez l’impression d’avoir accompli quelque chose.
Bien sûr, y’a des limites. Prolog, c’est lent. Très lent. Et les bases de données relationnelles, c’est encore plus optimisé pour la plupart des cas. Mais pour comprendre la logique, rien ne bat Prolog. Surtout quand c’est expliqué avec des Poké Balls et des combats.
Comment j’aurais dû apprendre Prolog (et pourquoi j’ai échoué)
Cette histoire me ramène dix ans en arrière. À l’époque, je bossais dans une boîte où on nous avait imposé Prolog pour un projet de système expert. Notre chef de projet, un gars qui avait lu trois docs sur Wikipedia, nous avait sorti son PowerPoint « Introduction à Prolog en 5 minutes ». Spoiler : ça a pris trois semaines.
On a passé des heures à déboguer des prédicats qui plantaient parce qu’on avait oublié les points-virgules. On a maudit les algebres booléennes. On a même essayé de convertir nos données en JSON pour contourner le problème (oui, j’avoue). Résultat : le projet a été abandonné, et j’ai gardé une aversion pour ce langage.
Si on avait eu un tutoriel comme celui d’Alexander, avec des exemples concrets et des Pokémon, on aurait peut-être survécu. Parce que au final, apprendre prolog, c’est comme apprendre à cuisiner : si on vous explique que « faire bouillir de l’eau avant de mettre les pâtes » fait partie des règles de base, vous captez tout de suite. Pas besoin de vous noyer dans des explications sur les réactions thermodynamiques.
D’ailleurs, la prochaine fois qu’un client me demandera un script pour trier des données, je vais lui proposer de le faire en Prolog. Juste pour voir sa tête quand je lui expliquerai qu’il faut écrire des règles logiques au lieu de for-loops. Spoiler : il va me raccrocher au nez. Mais au moins, j’aurai essayé.
Et si on apprenait Prolog en vrai (sans se prendre la tête)
Alors, comment se lancer ? D’abord, oubliez les tutos classiques. Allez directement sur le site d’Alexander Petros (Unplanned Obsolescence) et plongez-vous dans son guide. C’est dense, c’est long, mais c’est clair. Il part des bases, explique comment déclarer un Pokémon, puis comment établir des relations entre eux.
Par exemple, vous apprendrez à écrire :
- Les types de chaque Pokémon
- Les faiblesses entre types
- Les règles de combat (qui bat qui en fonction des types)
Et là, miracle : votre première requête Prolog ne retournera pas « Error 404: Solution not found ». Elle vous donnera une liste de Pokémon qui battent un Dracaufeu. Et vous aurez enfin l’impression de comprendre quelque chose.
Pour ma part, je vais m’y mettre sérieusement. Parce que après 15 ans à coder, je me rends compte que j’ai toujours évité Prolog comme la peste. Et c’est dommage. Ce langage a ses défauts, mais il enseigne une façon de penser qui manque cruellement dans le monde de la programmation moderne.
Alors oui, apprendre prolog avec les Pokémon, c’est surprenant. Mais c’est aussi la méthode la plus efficace que j’aie vue pour rendre ce langage accessible. Et si ça peut éviter à d’autres techniciens de passer trois jours à déboguer un script qui plante parce qu’ils ont oublié un point-virgule, alors tant mieux.
Alors, prêt à devenir le meilleur dresseur de code logique ? À vos claviers, et que les prédicats soient avec vous.
Pour aller plus loin : le tutoriel qui vaut de l’or (et où le trouver)
Si ce sujet vous a intéressé, foncez lire le tutoriel complet d’Alexander Petros sur son blog Unplanned Obsolescence. C’est un pavé de 3500 mots, mais chaque mot compte. Il part de zéro et va assez loin dans les détails. Et le plus beau ? Il utilise un dépôt GitHub pour illustrer ses exemples. Du concret, du propre, et surtout, du fonctionnel.
Moi, Marc, je vous le dis cash : ce tutoriel est une perle. Un vrai. Pas un de ces trucs ultra-théoriques qui finissent par vous faire douter de votre propre existence. Non, là, c’est du concret, avec des exemples qui parlent à tout le monde. Et si vous voulez vraiment comprendre Prolog, c’est par là qu’il faut commencer.
Alors, assez parlé. Allez-y, cliquez sur le lien, et commencez votre apprentissage. Et quand vous aurez fini, revenez me voir. Je vous expliquerai comment intégrer vos connaissances dans un script pour trier vos clients par ordre alphabétique. Sans for-loop. Juste pour le fun.
— Marc, technicien informatique indépendant, fondateur de total-depannage.com
Source : Les news de Korben – Apprendre Prolog avec des Pokémon, c’est possible