Ken thompson : le maître de l'austérité, une leçon pour l'ia
Ken Thompson, figure emblématique de l'informatique, ne se contente pas de concevoir des systèmes. Il a redéfini la manière même de programmer, une approche que l'intelligence artificielle risque de dénaturer.
Un héritage minimaliste, une révolution silencieuse
Depuis plus de cinquante ans, Ken Thompson façonne le monde du logiciel. Co-créateur de Unix, architecte du langage B (ancêtre direct de C) et co-inventeur de Go, son influence sur le développement logiciel est indéniable. Son approche, aussi radicale que pragmatique, est souvent oubliée dans un monde où la quantité prime sur la qualité.
Thompson, connu pour son obsession de la simplicité, a popularisé le principe que « il est plus productif d'éliminer 1000 lignes de code qu'en écrire 1000 ». Cette conviction, affirmée lorsqu'il a effacé des milliers de lignes de code d'un système, est une leçon fondamentale que les développeurs devraient retenir. Il prône une approche minimaliste : moins de complexité, plus d'efficacité. Ce n'est pas un simple conseil, c'est une philosophie.

Unix, b et go : la trilogie de la simplicité
Son parcours débute à Bell Labs dans les années soixante, avec Dennis Ritchie, et donne naissance à Unix. Ce n'est pas seulement un système d'exploitation, c'est une architecture pensée pour la modularité et l'interchangeabilité. Chaque composant est conçu pour faire une chose bien, et s'intégrer facilement aux autres.
Le langage B, conçu comme un successeur de BCPL, a ensuite servi de base à la création de C, le langage dominant de la programmation système pendant des décennies. Plus tard, chez Google, Thompson co-crée Go, un langage conçu pour la production à grande échelle, suivant le même principe d'extrême simplicité. La syntaxe de Go est délibérément épurée, les types sont clairs, et la gestion de la concurrence est pensée pour être intuitive, pas pour être maîtrisée par l'apprentissage de règles complexes.

L'ia, une menace pour la clarté ?
Mais cette quête de la simplicité est menacée par la tendance actuelle à privilégier la quantité de code écrite. La pression pour livrer rapidement, souvent au détriment de la lisibilité et de la maintenabilité, conduit à une accumulation de code inutile. Chaque ligne ajoutée, c'est une ligne de complexité supplémentaire, un potentiel bug, un obstacle à la modification future. Comme l'a souligné Bjarne Stroustrup, créateur de C++, «’il n’existe que deux types de langages de programmation : ceux que les gens détestent et ceux que personne n’utilise’.”
En réalité, la suppression de code n'est pas un signe de faiblesse, mais une stratégie de défense. Elle permet de réduire la surface d'erreur, de simplifier l'architecture et de rendre le système plus robuste. Il faut un jugement aigu pour identifier ce qui est superflu et le supprimer, une compétence de plus en plus rare dans un monde où la productivité est mesurée par le nombre de lignes de code.
La leçon de Ken Thompson est claire : programmer, ce n’est pas écrire plus, c’est savoir écrire moins. C'est une perspective cruciale à l'heure où l'intelligence artificielle promet d'automatiser de plus en plus de tâches, mais risque de propager un modèle de développement basé sur la complexité et l'accumulation de code.