Ken thompson dénonce le mythe de la productivité : mille lignes effacées valent plus que mille écrites
Ken Thompson vient de jeter un pavé dans la mare des équipes qui mesurent la valeur d’un développeur au compteur de lignes. Le père d’Unix, du langage B et de Go affirme que son « jour le plus productif » fut celui où il a supprimé mille lignes de code. Une déclaration qui fait trembler les open-spaces où l’on vante encore les pull requests géantes.
Le génie qui a tout inventé — sauf le superflu
En 1969, dans les labs Bell, Thompson et Dennis Ritchie construisent Unix avec une armée de petits outils. Pas de monstres monolithiques, juste des briques qui s’emboîtent. Résultat : un système qui tourne encore aujourd’hui sous vos iPhones, vos routeurs, vos serveurs cloud. Le langage B, qu’il dessine ensuite, devient le socle du C, le latin moderne de l’informatique. Et quand Google l’embauche quatre décennies plus tard, il refait le coup avec Go : un langage épuré, conçu pour que les stagiaires ne plantent pas le cluster de prod le premier jour.
La recette ? Moins de syntaxe, moins de concepts, moins de bugs. Une obsession qui le poursuit jusque dans ses revues de code : on l’a vu rejeter une feature parfaitement fonctionnelle parce qu’elle ajoutait… un paramètre optionnel. « On n’a pas besoin d’un couteau suisse, on a besoin d’un scalpel », lâche-t-il dans un meet-up de San Francisco, sous le regard médusé d’ingénieurs venus présenter leur « framework tout-en-un » de 200 000 lignes.

La dette technique se cache dans chaque ligne « gratuite »
Chaque fonction ajoutée, même trivial, devient un artefact à maintenir. Un if mal placé, un logger oublié, et voilà le sprint suivant qui part en fumée. Thompson le formule ainsi : « Un bug suit toujours la loi des grandes surfaces : plus il y a de terrain, plus il trouve où se planquer. » Sa méthode : découper, factoriser, jeter. Le refactoring le plus radical qu’il ait mené chez Google a consisté à remplacer 60 000 lignes C++ par 8 000 lignes Go. Le service est passé de 3 000 à 300 serveurs, et le temps moyen de démarrage de 45 secondes à… 3.
Le directeur technique qui pilotait le projet raconte : « On croyait qu’il allait nous balancer une architecture en micro-services. Il a juste dit : “Pourquoi vous gardez tout ce code mort ?” Puis il a ouvert vim et commencé à taper dd toute la journée. »

Contre la tyrannie des métriques, la ligne de commande comme philosophie
Dans les open-spaces, les tableaux de bord affichent encore des « lignes écrites ce mois-ci ». Résultat : des juniors qui copient-coller Stack Overflow pour faire plaisir au KPI. Thompson raille : « C’est comme compter le nombre de mots chez un écrivain. Shakespeare aurait été moins bon s’il avait écrit moins de pages ? »
Go incarne cette frugalité : pas de génériques pendant dix ans, pas d’héritage, pas d’exceptions. Les débutants râlent, puis, six mois plus tard, ils ne jurent plus que par go fmt et go mod tidy. La communauté entière fonctionne sur la même maxime : « Si tu ne peux pas le lire en une soirée, c’est trop gros. »
Et l’IA dans tout ça ? Thompson hausse les épaules : « Elle génère encore plus de bouillie. Demandez-lui d’effacer du code et on en reparlera. »

Conclusion : l’élégance s’achète au kilo de suppression
Les start-up qui explosent ne sont pas celles qui shipent le plus de features, mais celles qui déboguent le moins la nuit. La prochaine fois que vous dépilez Jira, rappelez-vous la leçon du vieux loup : la meilleure ligne de code est celle qu’on n’écrit pas. Pendant que vos concurrents s’enfoncent dans la dette, vous gagnerez des heures de sommeil — et des millions de cycles CPU. Le code, comme le temps, se mesure en souvenirs… et en suppressions.
