Torvalds dénonce la complexité : c++ peut être un piège
Le créateur de Linux, Linus Torvalds, ne mâche pas ses mots. Il a récemment exprimé une critique acerbe de C++, le langage de programmation omniprésent dans de nombreux secteurs, de l’industrie du jeu aux systèmes d’exploitation.
Un langage puissant, mais potentiellement dangereux
Pour Torvalds, la puissance de C++ est une double épée de Damocles. Si ce langage offre une flexibilité et des performances exceptionnelles, il peut aussi rapidement conduire à un code excessivement complexe, difficile à lire, à maintenir et à déboguer. C'est une critique qui résonne particulièrement dans le contexte de projets massifs comme Linux et Git, où la clarté du code est primordiale.
« C++ est un langage horrible. Il l’est encore plus parce que beaucoup de programmeurs médiocres l’utilisent, jusqu’au point où il est beaucoup plus facile de générer de la vraie merde avec lui », a-t-il déclaré lors d’une discussion sur Git en 2007. Une phrase qui, malgré son caractère direct, expose parfaitement son argument.

La préférence pour c : la simplicité avant tout
Torvalds préfère largement C pour ses projets. Il le considère comme plus explicite, un langage qui force à la transparence et à la visibilité des décisions prises. Chaque action – allocation de mémoire, manipulation de données, définition d’une structure – est clairement identifiable, facilitant ainsi la revue du code. Avec C++, les abstractions peuvent masquer des opérations complexes, rendant le code difficile à suivre et à comprendre, surtout dans des projets vastes et en constante évolution.
Il est clair que le code C++ est souvent un prétexte à la complexité, un camouflage pour masquer une gestion parfois désordonnée. Le risque est de voir des projets s'étirer sur des années, confrontés à des problèmes de maintenance qui auraient pu être évités.

Canonical et livepatch : une illustration
L’annonce récente de Canonical concernant Livepatch pour Ubuntu sur ARM64 illustre parfaitement ce problème. La mise en place de correctifs du noyau en temps réel nécessite une architecture solide et un code clair, des qualités que C++ peut, en l'absence de rigueur, compromettre. Il est essentiel de privilégier la simplicité et la lisibilité, même si cela implique de faire des compromis sur la complexité potentielle.

La leçon de torvalds : la clarté avant la puissance
La critique de Torvalds ne remet pas en question la capacité de C++ à accomplir des tâches complexes. Elle souligne plutôt l'importance de l'utilisation responsable du langage. La puissance de C++ doit être tempérée par une discipline rigoureuse et une attention particulière à la clarté du code. En fin de compte, il ne s'agit pas de choisir le langage le plus puissant, mais celui qui permet de construire des systèmes robustes, maintenables et fiables – et, soyons honnêtes, C reste un excellent choix pour cela.
