Also available in English.
Le code que je nâai jamais Ă©crit
Au sĂ©minaire annuel de mon entreprise, mon N+1 a dit que lâIA Ă©crivait environ 70 % du code. Jâai rĂ©pondu que pour moi câĂ©tait plutĂŽt 90 %. Les autres dĂ©veloppeurs Ă©taient dâaccord avec moi. AprĂšs coup, ils mâont fait remarquer quâil nâĂ©tait peut-ĂȘtre pas trĂšs prudent de le dire comme ça, et mon N+1 et le directeur ont paru surpris.
Jây ai repensĂ© ensuite. Mon chiffre est une estimation issue de ma pratique de Claude Code, je nâai rien mesurĂ©. Mais surtout, nous ne parlions probablement pas de la mĂȘme chose. Moi, je parlais du code qui se retrouve dans les fichiers Ă la fin. Lui parlait peut-ĂȘtre de la part du travail de dĂ©veloppement que lâIA prend en charge.
Cette conversation mâa fait rĂ©aliser quâun pourcentage de code Ă©crit ne veut rien dire tant quâon nâa pas dit oĂč on place la frontiĂšre. Et celle-ci a dĂ©jĂ bougĂ© plusieurs fois depuis que je programme.
TombĂ© dans la marmite quand jâĂ©tais petit
Je ne suis pas assez vieux pour avoir connu les cartes perforĂ©es mais jâai commencĂ© fin des annĂ©es 1980 sur un Amstrad CPC 464. On allumait la machine et on arrivait directement sur lâinvite de commande. On pouvait taper PRINT 1 et ça rĂ©pondait. Programmer Ă©tait une expĂ©rience normale, pas une activitĂ© Ă part.
Mon pĂšre avait des magazines dâinformatique qui publiaient des programmes Ă recopier en BASIC. Je me souviens avoir passĂ© des heures sur les listings de Cherry-Paint, un programme de dessin publiĂ© par CPC Revue en 1986. DâaprĂšs le site le code du programme Ă©tait Ă©talĂ© sur cinq numĂ©ros et pour le premier il y avait environ 20 Ko de code Ă saisir (on Ă©tait motivĂ©s). Une partie Ă©tait du BASIC, et lâanimation Ă©tait du code machine donnĂ© sous forme de nombres hexadĂ©cimaux. Dans le deuxiĂšme Ă©pisode (CPC Revue n°6), lâauteur fournissait pour ça un chargeur en BASIC qui demandait huit nombres hexadĂ©cimaux par ligne, suivis dâune somme de test. Si le total calculĂ© ne correspondait pas, il redemandait la ligne. Je ne comprenais pas ce que je recopiais, mais lâordinateur pouvait me dire que je mâĂ©tais trompĂ©.


Le langage machine de lâAmstrad, ce sont les instructions binaires exĂ©cutĂ©es directement par le processeur. Lâassembleur en est la reprĂ©sentation symbolique, plus lisible pour un humain. Jâai relu le dĂ©but du livre Le Langage Machine pour lâAmstrad CPC. Dans la section « Le premier programme machine », il met cĂŽte Ă cĂŽte un programme BASIC qui remplit la mĂ©moire Ă©cran et le mĂȘme travail en code machine. Le BASIC met environ une minute et le code machine environ un dixiĂšme de seconde. Cela fait un rapport de 600 dâaprĂšs ses propres chiffres. Lâargument du chapitre est quâon a tout intĂ©rĂȘt Ă apprendre le langage machine.
Peu de gens le faisaient, et je comprends pourquoi. Le BASIC nâĂ©tait pas trĂšs Ă©voluĂ© mais beaucoup plus simple Ă comprendre.
Ce que jâai arrĂȘtĂ© dâĂ©crire
Dans les annĂ©es 1990, jâĂ©tais clairement un geek. Il y a eu Visual Basic et Delphi. Jâai fait de lâassembleur sous Windows, du C++, un peu de shell sous Mandrake puis de lâassembleur pour coder Pac-Man sur une TI-89 en prĂ©pa (peut-on faire plus nerd ?). Au dĂ©but des annĂ©es 2000, jâai dĂ©couvert PHP 3, un langage interprĂ©tĂ©. Ensuite le JavaScript, la programmation objet, les frameworks, les patterns, Java, Node.
Ă chaque Ă©tape, il y a une partie du code que jâai cessĂ© dâĂ©crire. Avec Delphi, je nâĂ©crivais plus lâaffichage des fenĂȘtres. En PHP, je nâai plus gĂ©rĂ© la mĂ©moire Ă la main ni passĂ© par une Ă©tape de compilation. Avec Symfony, je nâĂ©cris pas le noyau HTTP, le conteneur de services ni la couche dâaccĂšs Ă la base. Sur un projet de lâentreprise, jâai comptĂ© les lignes de PHP, lignes vides et commentaires compris, sans les tests. Le dossier src/ en contient 198 702 et vendor/ 1 910 041 (dĂ©pendances de dĂ©veloppement comprises, câest donc un ordre de grandeur). Environ neuf lignes sur dix ne sont donc pas dans notre code. Et src/ contient dĂ©jĂ du code Ă©crit ou réécrit par lâIA, la part que jâai Ă©crite moi-mĂȘme est donc encore plus petite. Je nâai jamais Ă©crit la plus grande partie du code qui sâexĂ©cute quand quelquâun ouvre une page.
Note
Câest amusant car ces 90 % tombent presque exactement sur mon estimation du sĂ©minaire, mais ça ne veut rien dire, ils ne mesurent pas la mĂȘme chose.
Personne ne conteste ça, parce que ça ne se voit pas. Si on avait posĂ© la question « quelle part du code Ă©crivez-vous vous-mĂȘme » Ă un dĂ©veloppeur Symfony il y a dix ans, la rĂ©ponse aurait Ă©tĂ© faible aussi, avec une autre frontiĂšre.
Mon travail nâa dâailleurs jamais Ă©tĂ© dâĂ©crire du code. Le travail dâun chauffeur de taxi nâest pas de savoir lire un plan ni de brĂ»ler du carburant : il est de choisir le trajet, de gĂ©rer lâimprĂ©vu et de rĂ©pondre de lâĂ©tat du vĂ©hicule. Le mien est de comprendre le besoin derriĂšre la demande, de dĂ©cider comment (et parfois si) le construire, puis dâen assumer les consĂ©quences longtemps aprĂšs que le code a Ă©tĂ© Ă©crit.
Une couche de plus
Avec Claude Code, je dĂ©cris ce que je veux en français. Lâagent produit du PHP, que lâinterprĂ©teur PHP exĂ©cute, lui-mĂȘme compilĂ© en langage machine. Le langage naturel est devenu une couche de plus dans une pile qui en avait dĂ©jĂ beaucoup.
DHH le dit Ă sa façon. Dans son keynote dâouverture de Rails World 2026, le 23 septembre, il affirme Ă environ 38 minutes que « English is a better programming language than Ruby », en prĂ©cisant que câest « a little more vague ». Il y explique que 37signals (lâentreprise derriĂšre Basecamp et HEY) a arrĂȘtĂ© dâĂ©crire du code Ă la main. Sur un point, il va plus loin que moi : le code Rust que ses agents produisent, il dit ne pas le regarder, il juge le rĂ©sultat de lâextĂ©rieur. Il raconte aussi pourquoi on avait choisi les abstractions : le temps dâun programmeur coĂ»tait cher. Si une machine Ă©crit le code de bas niveau, dit-il en substance, on peut avoir des programmes 30 Ă 100 fois plus rapides. Câest le mĂȘme argument de vitesse que dans le livre de mon enfance.
Le langage naturel est aussi la premiĂšre couche qui ne soit pas un langage formel. Une ligne de PHP a un sens et un seul. Une phrase en français peut en avoir plusieurs, et le mĂȘme agent peut produire deux rĂ©sultats diffĂ©rents Ă partir de la mĂȘme phrase.
Pourquoi je lis encore
Ă chaque couche, jâai dâabord arrĂȘtĂ© dâĂ©crire le code quâelle produisait, puis je nâai plus eu besoin de le lire. Avec lâagent, jâen suis au premier stade : jâĂ©cris trĂšs peu de PHP, mais je le lis encore, et mĂȘme plus quâavant. Je ne sais pas si câest transitoire. JâĂ©cris ceci en octobre 2026 et la pratique change vite.
Certains sont dĂ©jĂ plus loin. Simon Willison ne relit plus chaque ligne que ses agents Ă©crivent, mĂȘme pour de la production, et les traite comme une autre Ă©quipe dont il utilise le service sans lire le code. Il en est lui-mĂȘme mal Ă lâaise. Une Ă©quipe humaine a une rĂ©putation Ă dĂ©fendre et rĂ©pond de son travail, alors que Claude Code nâa pas de rĂ©putation professionnelle. Il craint aussi quâĂ force de succĂšs il finisse par lui faire confiance au mauvais moment. Il sâappuie sur ses 25 ans dâexpĂ©rience pour que ce pari reste raisonnable.
Je ne lis pas lâassembleur que produit le compilateur. Je ne lis pas non plus le code de Symfony en dehors des cas oĂč quelque chose ne marche pas. Je fais confiance Ă ces couches parce quâelles se comportent toujours pareil, que des millions de personnes les utilisent et quâun problĂšme finit par ĂȘtre corrigĂ© pour tout le monde.
La sortie dâun agent est un travail fait pour moi, Ă cet instant, Ă partir dâune description qui peut ĂȘtre comprise de plusieurs façons. Le rĂ©sultat peut ĂȘtre correct, ou correct avec une modification de trop, ou sans rapport avec ce que je voulais. Je ne peux pas encore le traiter comme je traite un compilateur. Si un jour je le fais, ce ne sera pas parce que câest devenu Ă la mode, mais parce que je lâaurai vĂ©rifiĂ© assez souvent pour avoir confiance.
DHH a dĂ©jĂ tranchĂ© pour le Rust, il ne le lit pas. Je nâai pas encore tranchĂ© pour le PHP.
Retour aux 70 et 90 %
Mon N+1 comptait peut-ĂȘtre le travail, et moi le code. Les deux chiffres peuvent coexister, ils ne placent pas la frontiĂšre au mĂȘme endroit. Jâaurais pu donner le mĂȘme genre de rĂ©ponse dans les annĂ©es 2000 en parlant du framework, avec un chiffre diffĂ©rent.
Ce qui me frappe, câest quâon continue de juger le travail dâun dĂ©veloppeur Ă ce quâil Ă©crit, alors que la part quâil Ă©crit lui-mĂȘme diminue Ă chaque Ă©tape depuis que je programme, sans que personne ne sâen inquiĂšte. LâIA fait bouger la frontiĂšre beaucoup plus vite que dâhabitude, et ça se voit. Câest ce qui a rendu la conversation du sĂ©minaire un peu bizarre. Que lâIA Ă©crive 70 ou 90 % du code mâintĂ©resse moins que de savoir Ă partir de quand une couche quâon ne lit plus cesse dâĂȘtre un pari.
