On me demande souvent « comment apprendre à mes enfants à programmer ? »

Bcp de gens de mon âge ont commencé leur apprentissage de la programmation par Logo, une petite tortue qu'on faisait se deplacer pour dessiner.

Les alternatives modernes existent, utilisez-les :

  • Scratch (programmation visuelle)
  • Thymio (robot qui se déplace)

Dans le chemin d'apprentissage cependant, on quitte à un moment la programmation "visuelle encadrée" pour écrire du texte dans un langage formel.

Même à l'ère du prompt, du vibe coding, de l'IA, ça semble un passage obligé si vous prenez le sujet au sérieux.

Perso j'ai poncé Turbo Pascal. J'ai appris les constructions de base (if, while, repeat, procedure, etc.), limitées en nombre. J'avais aussi un super bouquin qui listait toutes les procédures disponibles, par ordre alphabétique. Plusieurs centaines de pages que j'ai relues plusieurs fois. Pour faire du lego mieux vaut connaître le catalogue de briques.

C'est ici que j'ai un souci avec les langages de programmation actuels. Ils me semblent ultra complexes. En plus de mixer les styles de programmation, leur orientation objet est un fatras indigeste...

De mémoire, c'est Dijkstra qui mettait en garde contre les "dommages cognitifs durables" de l'orienté objet. Si j'ai appris beaucoup au contact de Java, Ruby, Scala, je suis rétrospectivement content de ne pas avoir commencé par là. Et encore plus d'avoir appris en parallèle SQL, le langage théorique D de Date et Darwen, ou la programmation fonctionnelle. Autant de gardes-fou contre l'aliénation.

Tout ça pour dire que je n'enverrai pas mes enfants head-first dans Python ou Ruby, encore moins dans Java ou Javascript. Et que je cherche de longue date un Turbo Pascal pour eux. Simple, propre, non aliénant : quelques principes, et une collection de briques lego qui s'assemblent de manière élégante pour le plaisir de notre créativité. Bref, un Scheme, Lisp, Clojure ou Haskell ... en franchement moins abstrait et avec une syntaxe digeste.

J'ai toujours eu cette mauvaise habitude de chercher à tuer plusieurs oiseaux à la fois. Alors qu'avec Elo je cherchais à me former à Claude Code, en faisant écrire à ce dernier un petit langage d'expression que je puisse embarquer dans Klaro Cards, j'ai donc ajouté un troisième objectif.

Créons tant qu'à faire un langage simple, purement fonctionnel qui offre à mes enfants un tremplin de rigueur avant d'aborder des langages plus complets mais aussi plus complexes.

J'ai donc demandé à Claude Code d'écrire une section Learn sur le site d'Elo, qui aborde la programmation comme une généralisation de l'arithmétique à un ensemble de types plus riche que les nombres. J'ai ajouté que chacun devait pouvoir suivre son processus d'apprentissage, et faire quelques exercices, du plus simple au plus compliqué.

Et Claude s'en est bien sorti : le langage, la documentation, le Playground, la section Learn.

Il reste a battle tester tout cela. Je compte sur vous pour le feedback.

👉 https://elo-lang.org/learn

#Programming

Retour