Stroustrup : la complexité, un impératif incontournable pour le futur de la programmation
- L'évolution inéluctable du code : de l'abstraction à l'exigence de contrôle
- Deux mondes, deux paradigmes
- C++ : le champion de la complexité consciente
- Des mots justes, des réalisations concrètes
- “Seulement deux sortes de langages existent : ceux que les gens détestent et ceux qu’on n’utilise pas.”
- Conclusion : une complexité nécessaire à la résilience
Bjarne Stroustrup, le créateur de C++, vient d’évoquer une réalité franchement dérangeante : la complexité n’est pas un défaut, mais une nécessité intrinsèque au développement logiciel moderne. Il l’affirme avec une fermeté qui ne laisse guère de place aux euphémismes.
L'évolution inéluctable du code : de l'abstraction à l'exigence de contrôle
Le débat sur les meilleurs langages de programmation est, comme toujours, passionné. Python, JavaScript, Ruby… l’abondance d’écosystèmes n’enlève rien au dilemme. Mais Stroustrup, avec son expérience inégalée, pointe du doigt une vérité fondamentale : l’augmentation de la puissance de l’IA et l’explosion des bibliothèques rendent le développement plus rapide, certes, mais aussi, paradoxalement, plus complexe.
Il y a une fracture s’opère, une division claire dans l'industrie. On voit apparaître des équipes qui produisent du code bidirectionnel, un code qui n’est plus le fruit d’une réflexion architecturale, mais plutôt une consécration de l’exécution automatique. Stroustrup les décrit avec une pointe d’amertume : « Intégrer ce code est inacceptable et honteux. »

Deux mondes, deux paradigmes
Cette complexité, selon lui, définit deux catégories distinctes de langages. D’un côté, on trouve les langages qui, selon Stroustrup, « ne créent pas un seul ligne de code », une vision dystopique où l’ingénierie logicielle est réduite à une simple délégation. C’est la fin de la programmation, comme nous la connaissons. De l’autre, les langages qui, bien que plus complexes, offrent un contrôle précis et une profondeur d'exécution qui sont cruciaux pour les projets à grande échelle.

C++ : le champion de la complexité consciente
Stroustrup ne se cache pas : C++ n’est pas le langage le plus simple. Il a été conçu pour être puissant et flexible, une plateforme pour construire des systèmes robustes et évolutifs. Son écosystème est vaste, certes, mais il est précisément cette richesse qui le rend adapté aux défis actuels, bien plus que les langages modernes, souvent trop dépendants de bibliothèques externes et d'environnements de développement lourds.

Des mots justes, des réalisations concrètes
Stroustrup reste ferme : « Apprendre à programmer sur internet ? C’est une chimère. » Il ne sous-estime pas les obstacles, ni la nécessité d’une compréhension approfondie des principes fondamentaux. Ses déclarations, souvent perçues comme provocatrices, suscitent un débat permanent et rappellent que l’excellence en ingénierie logicielle exige un effort considérable.

“Seulement deux sortes de langages existent : ceux que les gens détestent et ceux qu’on n’utilise pas.”
Cette phrase, souvent citée, résume parfaitement sa philosophie. Les langages populaires, comme Java ou Python, sont souvent détestés pour leur succès, leur omniprésence et leur longévité. Mais c’est précisément cette popularité qui les rend indispensables. Les autres, ceux qui sont perçus comme “parfaits” et “simples”, restent confinés aux cercles académiques ou aux projets expérimentaux. La perfection, selon Stroustrup, est l’ennemi de l’utilité.

Conclusion : une complexité nécessaire à la résilience
L’ingénierie logicielle est un domaine en constante évolution. La complexité ne peut être évitée, mais elle peut être maîtrisée. Stroustrup insiste sur le fait que les outils qui offrent le plus de contrôle et la plus grande flexibilité sont ceux qui, à long terme, se révèlent les plus fiables. Il ne s’agit pas de simplifier à tout prix, mais de comprendre les compromis et de choisir les bons outils pour chaque tâche. La robustesse et la longévité sont, après tout, les véritables gages de succès.
