Stroustrup : la complexité, un impératif inévitable pour le monde du code

Bjarne Stroustrup, le créateur de C++, réitère son point de vue sur le paysage des langages de programmation, une opinion tranchée qui risque de choquer certains. Il affirme que la complexité, loin d'être un défaut, est devenue une nécessité dans l'environnement actuel, propulsé par l'essor de l'intelligence artificielle et les bibliothèques modernes.

Le paradoxe de stroustrup : plus de simplicité, plus de complexité

L'idée centrale de Stroustrup est simple, mais puissante : l'évolution de la programmation ne peut pas s'enfreindre à la recherche de la facilité. Avec l'explosion des écosystèmes – Python, JavaScript, Ruby – la question du choix d'un langage devient une corvée. Mais le visionnaire de C++ insiste : la complexité n'est pas une fatalité, c'est un moteur. C'est elle qui permet de gérer les défis posés par l'intégration croissante de l'IA et l'utilisation intensive de bibliothèques complexes.

Il y a quelques années, chez Renault, j'observais les mécanismes, les interactions, les limitations. Aujourd'hui, je comprends mieux les raisons pour lesquelles certains se lamentent sur l'obscurité de C++. Mais Stroustrup, avec son regard aiguisé, ne voit pas cette obscurité comme une fatalité, mais comme une conséquence logique de la nécessité de contrôler précisément le fonctionnement des systèmes.

Il est implacable : « Incorporer ce code est inacceptable et vergotzant ». Cette phrase, répétée à plusieurs reprises dans ses interventions, résume parfaitement sa position. La complexité est, selon lui, le prix à payer pour la fiabilité et la performance, surtout dans les applications critiques.

Deux catégories de langages, deux mentalités

Deux catégories de langages, deux mentalités

Stroustrup distingue deux catégories de langages de programmation, une opposition qui est à la fois logique et provocatrice. Il parle de « ceux desquels les gens se plaignent » – les langages modernes, souvent associés à une facilité d'utilisation, mais qui, selon lui, cachent une complexité sous-jacente liée à leur dépendance vis-à-vis de bibliothèques externes et d'environnements lourds. Ces langages sont souvent moins performants et moins flexibles que C++. Il les juge « perfectionnistes », obsédés par la simplicité au détriment de l'efficacité.

À l'opposé, il y a les langages traditionnels, comme C++, qui, malgré leur réputation de complexité, offrent un contrôle précis et une robustesse inégalable. Ces langages sont les piliers des systèmes à grande échelle, ceux qui résolvent les problèmes réels, pas les exercices académiques.

L

L'humble c++ : un classique résilient

Stroustrup ne se vante pas de faire passer C++ pour le langage le plus puissant. Il admet qu'il est dépassé par C# ou Java en termes de taille d'écosystème. Mais il souligne que C++ conserve une position privilégiée grâce à sa « complexité maîtrisée », une complexité qui lui confère une grande versatilité. Il est le langage de prédilection pour les systèmes critiques, où la fiabilité est primordiale, même si le développement prend plus de temps. « La perfection est l'ennemi du bien », rétorque-t-il, avec la sagesse d'un homme qui a vu passer des générations de développeurs.

Et pour les nouveaux venus, une mise en garde : « Il est impossible d'apprendre à programmer sur internet. » Une affirmation qui sonne comme un défi, un rappel de l'importance de la rigueur et de la discipline. Et encore : « Si vous voulez réussir dans ce domaine, vous ne devez pas être « trop intelligent » – une remarque qui, bien que formulée avec une pointe d'ironie, témoigne d'une certaine méfiance envers les solutions miracles.

Stroustrup ne se contente pas d'analyser les langages, il les dénonce, les défend, les critique avec une lucidité qui ne laisse personne indifférent. Et, finalement, il nous rappelle une vérité fondamentale : le meilleur langage de programmation est celui qui répond le mieux à un problème précis. Le reste, c'est de la complexité inutile.