technologie

Ken thompson : quand la simplicité du code vaut l'or

Ken Thompson, figure emblématique de l'informatique, nous livre une leçon d'humilité et d'efficacité. L'homme qui a co-créé Unix, conçu le langage B et participé à l'élaboration de Go, affirme que ses journées les plus productives sont celles où il supprime massivement du code. Une affirmation qui, au-delà de son caractère anecdotique, soulève une question essentielle sur la façon dont nous concevons et maintenons nos systèmes logiciels.

L'héritage d'unix : une philosophie minimaliste

Thompson n'est pas un novice. Ses contributions, débutées à la fin des années 1960 aux laboratoires Bell avec Dennis Ritchie, ont façonné notre vision de l'informatique. Unix, bien plus qu'un simple système d'exploitation, a instauré une approche modulaire et efficace, privilégiant des outils petits, spécialisés et combinables. Cette philosophie de construction minimale a guidé ses développements ultérieurs, du langage B – précurseur direct de C – à Go, son dernier chef-d'œuvre.

Le langage B, conçu comme successeur de BCPL, a permis à Ritchie de développer C, un langage devenu pendant des décennies la référence absolue pour la programmation système. Décennies plus tard, chez Google, Thompson a co-créé Go, un langage pensé pour les systèmes de production à grande échelle. L'objectif affiché ? La simplicité avant la sophistication, la clarté avant la complexité. Mais pourquoi insister autant sur cette simplicité, au point de sacrifier du code ?

Supprimer pour progresser : une sagesse méconnue

Supprimer pour progresser : une sagesse méconnue

La réponse est simple : chaque ligne de code est une responsabilité. Une obligation de lecture, de compréhension et de maintenance. Chaque ligne est un point de fragilité potentiel, un endroit où un bug peut se cacher, et une contrainte supplémentaire pour les modifications futures. Un système qui gonfle sans discernement accumule une dette technique impitoyable, transformant même les ajustements les plus mineurs en opérations risquées. Thompson, avec une lucidité désarmante, nous rappelle que supprimer du code n'est pas une régression, mais une forme de purification : réduire la surface d'erreur, simplifier l'architecture et faciliter les évolutions futures.

Cette démarche exige une compréhension profonde du système, une capacité à identifier ce qui est véritablement essentiel et le courage de s'en défaire. Bjarne Stroustrup, créateur de C++, l'a formulé avec cynisme :