Stroustrup dénonce la quête de la perfection en programmation
Bjarne Stroustrup, l'architecte de C++, a réaffirmé son point de vue sur le choix des langages de programmation, et il ne mâche pas ses mots. Alors que la prolifération des environnements de développement – Python, JavaScript, Ruby, et bien d'autres – laisse de nombreux développeurs perplexes, le scientifique informatique danois défend une vision pragmatique : la complexité n'est pas un défaut, mais une condition nécessaire pour maîtriser la puissance du code.

La complexité, un atout stratégique pour l'ingénierie logicielle
Loin de céder à l'illusion d'une programmation simplifiée à l'extrême, où les développeurs ne feraient qu'assembler des blocs préfabriqués, Stroustrup insiste sur l'importance du contrôle et de la compréhension profonde du code. Il divise l'industrie en deux catégories : les langages offrant un niveau de contrôle élevé, souvent associés à une complexité accrue, et ceux conçus pour l'abstraction et la facilité d'utilisation. Pour lui, l'idée d'une disparition de la programmation, où les développeurs ne feraient qu'intégrer du code préexistant, est non seulement irréaliste, mais « inacceptable et honteuse ».
Stroustrup, figure incontournable de l'évolution de la programmation, n'hésite pas à remettre en question les idées reçues. Il a précédemment affirmé qu'il était illusoire d'espérer apprendre à coder efficacement uniquement via des tutoriels en ligne, et que l'ambition intellectuelle ne suffit pas à garantir le succès dans l'industrie. Son observation mordante selon laquelle « il n'y a que deux types de langages de programmation : ceux dont les gens se plaignent et ceux que personne n'utilise » est une réflexion cinglante sur l'état actuel de la technologie.
Bien que C++ ne soit pas le langage le plus utilisé, dépassé par C# et Java en termes de volume de code, il conserve une réputation de complexité. Stroustrup explique que l'objectif initial était de créer un environnement riche et versatile, capable de résoudre des problèmes complexes à grande échelle. Son efficacité réside dans sa capacité à s’adapter aux défis contemporains, bien plus qu'il ne l'était il y a trois décennies. Les langages modernes, souvent vantés pour leur simplicité, recourent à des bibliothèques externes et à des environnements lourds, ce qui les rend paradoxalement moins flexibles et moins performants.
La divergence entre ces deux types de langages se traduit par une dichotomie : d'un côté, les langages puissants et largement utilisés (C++, Java, Python), source de frustrations mais indispensables pour des applications critiques ; de l'autre, les langages « parfaits » et « pratiques » sur le papier, mais confinés à des sphères académiques ou expérimentales. Stroustrup souligne que la puissance est intrinsèquement liée à la complexité, et que toute tentative d'éliminer cette dernière se traduit inévitablement par une perte de fonctionnalité. Il conclut avec une maxime qui résume à merveille sa philosophie : « La perfection est l'ennemie de l'utilité. »
