47 points par GN⁺ 2026-05-06 | 6 commentaires | Partager sur WhatsApp
  • Uncle Bob, connu pour Clean Code, affirme que nous sommes entrés dans une époque où l’IA écrit du code de manière écrasante, bien plus vite que les développeurs, et appelle à une évolution du rôle des développeurs
  • Puisque l’IA peut achever en 5 minutes un travail qui prenait auparavant une journée, l’époque où les développeurs écrivaient eux-mêmes le code est terminée
  • Mais cela donne au contraire aux développeurs une puissance immense, leur permettant d’accomplir des choses auparavant inimaginables
  • La couverture de tests était pénible, mais les développeurs peuvent désormais demander à l’IA d’assurer la couverture de tests et utiliser un testeur de mutation pour vérifier la validité réelle des tests
  • En combinaison avec des outils d’analyse de la complexité cyclomatique (cyclomatic complexity), il est possible de demander à l’IA d’élever la qualité du code à un niveau bien supérieur à ce qu’elle était auparavant

Script de la vidéo jointe

Regardons les choses en face. L’IA écrit du code plusieurs fois plus vite que vous. Ce qui vous prendrait une journée, l’IA le termine en 5 minutes. C’est fini. L’époque où vous écriviez vous-mêmes le code est révolue. Je le sais. Acceptez-le.

Mais voilà. Cela vous donne au contraire une puissance immense. Parce que vous pouvez désormais faire des choses dont vous n’auriez même pas osé rêver auparavant.

Prenez par exemple la couverture de tests. Je sais à quel point c’était pénible. Il fallait écrire tous ces fichus tests. Et même avec des tests, cela ne voulait pas dire que le code fonctionnait correctement. On lançait la couverture de code, on esquissait un petit sourire en disant : « Bon, d’accord, mais ça ne veut pas dire que le code fonctionne… ça veut juste dire qu’il s’exécute. »

Maintenant, on peut corriger cela. Parce qu’on a de la puissance de calcul (horsepower). Demandez à l’IA de couvrir le code, puis lancez un testeur de mutation. Oui, c’est un outil. Et cet outil aussi, vous pouvez demander à l’IA de le créer. Elle le fait en 5 minutes. Ensuite, faites exécuter cet outil par l’IA. Cet outil modifie le code source et relance tous les tests. Si les tests n’échouent pas ? Elle écrit des tests qui les feront échouer. Là, vous obtenez une véritable couverture de tests.

Je vous le jure, vous obtenez une véritable couverture de tests.

Et vous savez ce qu’on peut faire d’autre ? On peut analyser la qualité du code. On peut écrire un outil qui examine la complexité cyclomatique. En réalité, il existe déjà un excellent outil. Un outil vieux de 20 ans. Il s’appelle CRAP. C’est un bon nom. Je ne sais pas ce que cela signifie exactement. Et je n’ai pas envie de le savoir. C’est une combinaison de couverture de tests et de complexité cyclomatique. Vous pouvez demander à l’IA de faire descendre le score CRAP à 5 ou moins, à 4 ou moins. Alors l’IA découpera les grandes fonctions en petits morceaux et fera en sorte que tout soit couvert par des tests.

Réfléchissez à la puissance dont vous disposez. Vous pouvez élever la qualité du code à un niveau jamais vu auparavant.

Je sais. Je suis ce vieux monsieur de Clean Code. Mais je vais être honnête. Si vous poussez l’IA à travailler à fond, vous pouvez rendre le code bien, bien plus propre.

6 commentaires

 
GN⁺ 2026-05-06
Avis sur Reddit
  • On dirait la voix de méchant que Mark Hamill fait d’habitude

    • Là, ça tire presque vers le Joker. Il parlait déjà comme un personnage de BD à la base ?
    • On dirait la voix du chef de la compagnie d’assurance qui s’occupait du père dans Les Indestructibles
    • Ça fait davantage penser au comédien Lewis Black. Je m’attendais à ce qu’il explose dans une longue tirade pleine de colère, mais ça n’est jamais arrivé, dommage
    • Ça m’a plutôt rappelé la scène où Neo se fait interroger dans Matrix. Un côté « Hello Mr Anderson »
  • On dirait vraiment un développeur qui en a vu de toutes les couleurs

    • Oui. Je pense que je ne réécrirai plus de code du genre if (f == -1) { printf("open failed\n"); exit(1); }
      L’IA l’écrira à ma place, et ajoutera des types d’erreur séparés avec des messages et des paramètres pertinents pour toutes les causes d’échec possibles. L’IA n’est pas paresseuse comme moi, donc je peux désormais me concentrer sur la logique de traitement des fichiers
  • On a l’impression d’entrer dans une époque où la majeure partie du code est du code boilerplate. Ce qu’il faut, c’est la capacité à bien transmettre les exigences, et à garder un moyen de vérifier en continu la sécurité (OWASP) et les performances du code généré

    • En vrai, le code n’a-t-il pas toujours été majoritairement du boilerplate ? C’est bien d’écrire des algorithmes élégants, mais au final il faut les emballer dans un produit, puis ajouter du CRUD, des permissions, de l’UI, du support multiplateforme, des paiements, etc.
    • On en parle comme si les grands modèles de langage étaient des transpileurs capables de convertir de façon fiable un DSL de haut niveau en vrai code, mais ce n’est pas du tout le cas
      C’est extrêmement non déterministe, et même les modèles récents peuvent varier au cours d’une même journée entre « ça fera l’affaire » et « quasiment inutilisable »
      Le langage naturel a toujours été, est toujours et restera probablement ambigu et imprécis, donc il y a de fortes chances que ce problème ne soit jamais résolu. C’est précisément pour cela qu’on utilise des formules mathématiques plutôt que de dire « euh, ajoute X à Y et quand ça arrive dans Z, réfléchis bien »
    • On est encore très loin du stade où « il suffit de savoir exprimer efficacement ce qu’on veut »
      En ce moment même, j’essaie encore de comprendre comment gérer correctement les permissions avec Claude, et sa manière d’implémenter de nouvelles actions / des changements de permissions était un exemple parfait de code qui « marche à peu près mais cassera un jour »
      Claude écrit bien du code, mais pas toujours du bon code
      Ce qu’il faut comprendre avec l’IA, c’est qu’elle n’est pas meilleure que les humains pour « réfléchir », elle est juste plus rapide. Elle fait les choses à peu près comme la plupart des gens les feraient si on le leur demandait, et en code ce n’est souvent pas terrible
      Avant déjà, on pouvait embaucher plusieurs développeurs, leur expliquer ce qu’on voulait, et récupérer un résultat truffé de bugs, où un seul changement en cassait trois autres ailleurs. Claude fait exactement pareil si on le laisse faire. Je l’ai vu en pratique, et la réponse consiste toujours à aller lire le code produit puis à lui demander de le refactoriser pour qu’il casse moins et soit plus robuste
      Tant qu’on utilise Claude pour écrire du code, il faudra continuer à être capable de juger si ce code tient la route. C’est comme si on lui faisait rédiger un CV ou des documents comptables à notre place : il faut quand même vérifier le résultat
      On n’écrira peut-être plus le code à l’ancienne, mais il faudra toujours savoir lire ce qui est généré et l’examiner à la lumière de son expérience
      Le problème, c’est que tout le monde pense que parce qu’il parle anglais, il peut demander à Claude de lui construire un programme. Mais parler anglais ne permet pas non plus de demander à Claude d’écrire une thèse de doctorat réfutant le rayonnement de Hawking. Il n’y a tout simplement aucun moyen de savoir si le résultat est correct
    • Il y a encore quelques étapes entre les deux
    • On a l’impression d’être juste après l’époque où la majeure partie de l’assembleur était du boilerplate
  • Il y a aujourd’hui plus de programmeurs employés qu’au moment où Microsoft a introduit le scaffolding. Il y en avait aussi plus quand des langages comme Basic ont permis d’écrire des instructions lisibles par des humains au lieu de l’assembleur, qu’à l’époque encore antérieure des cartes perforées
    Les ordinateurs ont toujours été programmés avec des jeux d’instructions de moins en moins contraints et de plus en plus faciles à lire et à écrire
    Je respecte Bob Martin, mais je pense qu’il a tort cette fois. Les gens continueront à écrire des instructions pour les ordinateurs. Simplement, ce ne sera plus dans un ensemble restreint d’instructions concrètes, mais dans un langage bien moins contraint et bien plus lisible pour les humains
    Rien n’est terminé. Ça ne fait que commencer. La programmation vient de lancer un nouveau langage, et il s’appelle English

    • Ce que tout le monde oublie dans cette discussion, c’est que le but n’est pas de coder exactement ce qu’on faisait la veille de l’invention du vibe coding
      On produit déjà des quantités record de logiciels, et ça va encore s’accélérer. On va écrire plus de code qu’avant, et même si ça devient beaucoup plus rapide, on finira quand même avec davantage de personnes travaillant d’une manière ou d’une autre avec les logiciels. Parce que le coût de production s’est tellement effondré, ce qui ressemble au paradoxe de Jevons
      Penser que « cette fois c’est différent » est présomptueux, et même des gens très intelligents ont du mal à imaginer ce que signifie une croissance exponentielle sur plusieurs dimensions. Les grands modèles de langage ne sont pas les seuls à s’améliorer
      Donc oui, ça me paraît juste
    • Alors explique aussi la parole avec la même logique, pour voir
    • Il allait jusqu’à dire qu’il ne faudrait plus relire que les tests plutôt que le code, ce qui me semble relever du délire. On dirait qu’il ne travaille que sur des projets hobby qui ne seront jamais déployés en production
    • Uncle Bob a déjà posté un tweet sur ce qu’il dit en ce moment
  • C’est bien le pic de la bulle, non ? J’en fais l’annonce ici ☎️

  • La manière dont il en parle suppose des métriques de qualité logicielle, des tests professionnels et des années de compréhension de la qualité du code
    Ces outils ne sont pas encore assez mûrs. Ou en tout cas pas largement adoptés. Je ne suis même pas certain que l’industrie les adoptera
    Les pratiques CI/CD non plus n’étaient pas si difficiles à mettre en place, mais beaucoup d’entreprises ne les ont jamais adoptées complètement et ont continué à recruter davantage pour travailler de façon inefficace. Ce sera pareil à l’avenir, sauf si l’IA gère tout cela par défaut. Les outils actuels comme Claude Code, Cursor et Codes ne suffisent pas

    • C’est littéralement moi qui ai créé ça
    • Pourquoi penses-tu qu’il ne parlait pas de façon sarcastique ou ironique ? Les outils sont encore très loin d’être utiles comme décrit
  • On dirait Matrix si cet homme était un Agent

    • Tu ne voulais pas dire l’Architecte ?
  • Pour bien piloter l’IA, il faut un niveau d’expertise technique de tout premier ordre. Si on se contente de demander à l’IA d’ajouter encore et encore du code, ce ne sera pas maintenable
    En plus, je n’ai encore jamais entendu parler d’un seul produit de niveau marché exploité uniquement par de l’IA. Donc il faut se calmer

  • La prochaine étape, ce sera peut-être de faire du vibe coding directement avec le cerveau humain

 
hmmhmmhm 2026-05-07

Merci pour ce bon article.

 
kurthong 2026-05-07

En voyant les avis des développeurs en activité, on dirait vraiment que l’ère des codeurs est terminée. Cela ne semble pas différent des ouvriers qui cassaient les machines pendant la révolution industrielle. Un nouveau langage assez convaincant est apparu, et si vous ne vous y adaptez pas rapidement, vous serez « éliminé ».

 
kaydash 2026-05-06

Il y a aussi beaucoup trop de cas où l’on balance simplement du code en vrac..

 
nodelay 2026-05-06

Les avis sur reddit semblent plutôt négatifs ou empreints de sarcasme.
En pratique, dans les situations où l’IA permet justement de faire avancer de façon concrète des points longtemps repoussés, comme la couverture de tests ou les tests E2E, cette attitude paraît au contraire assez cynique.