Bjarne Stroustrup

Dans les années 80 et 90, alors qu'il était chercheur chez AT&T Bell Labs, l'informaticien d'origine danoise Bjarne Stroustrup a conçu C++, sans doute le langage de programmation le plus influent des 25 dernières années. Pour autant, le C++ est controversé. Le langage est largement détesté par les millions de programmeurs qui l'utilisent, en grande partie parce qu'il est notoirement difficile à apprendre et à utiliser, et parce que la conception de Stroustrup leur permet de commettre de graves erreurs de programmation dans l'intérêt de maximiser leur liberté d'expression. Aujourd'hui, Stroustrup est professeur d'informatique à la Texas A&M University.





Bjarne Stroustrup, l'inventeur du langage de programmation C++

Examen de la technologie : Pourquoi la plupart des logiciels sont-ils si mauvais ?

Tout ce que vous pouvez faire, je peux le faire méta

Cette histoire faisait partie de notre numéro de janvier 2007



  • Voir le reste du numéro
  • S'abonner

Bjarne Stroustrup : Certains logiciels sont en fait assez bons, quel que soit le standard. Pensez aux Mars Rovers, à Google et au Human Genome Project. À présent, c'est logiciel de qualité ! Notre civilisation technologique dépend du logiciel, donc si le logiciel avait été aussi mauvais que sa pire réputation, la plupart d'entre nous seraient morts maintenant.

D'un autre côté, le code logiciel moyen peut me faire pleurer. Les programmeurs n'ont clairement pas réfléchi à l'exactitude, aux algorithmes, aux structures de données ou à la maintenabilité. La plupart des gens ne savent pas à quel point c'est grave parce qu'ils ne lisent pas le code : ils voient simplement Windows se bloquer ou leur téléphone portable interrompt un appel.

ENFANTS : Comment pouvons-nous réparer le gâchis dans lequel nous sommes ?



BS : Nous ne pouvons pas simplement arrêter le monde pendant une décennie pendant que nous reprogrammons tout, de nos machines à café à nos systèmes financiers. D'un autre côté, s'embrouiller est coûteux, dangereux et déprimant. Des améliorations significatives sont nécessaires, et elles ne peuvent venir que progressivement. Mais ils doivent venir sur un large front ; aucun changement ne sera suffisant.

En regardant mon propre domaine étroit de conception de langage de programmation, mon point de vue est qu'un bon langage peut être un atout majeur, mais seulement lorsqu'il est utilisé de manière appropriée et bien. Une langue ne résout pas les problèmes ; il ne fait qu'aider à l'expression de solutions.

ENFANTS : Qu'est-ce qui fait un bon langage de programmation ?



BS : Tout ce qui aide les gens à exprimer leurs idées rend une langue meilleure. Une langue doit être bonne dans les tâches quotidiennes entre les mains de bons artisans. Peu importe que la langue soit belle en soi. Il y a plus de systèmes utiles développés dans des langues considérées comme horribles que dans des langues louées pour être belles – beaucoup plus.

ENFANTS : L'élégance n'est-elle pas importante ?

BS : L'élégance est essentielle, mais comment mesurer l'élégance ? Le plus petit nombre de caractères pour exprimer la solution à un problème ? Je pense que nous devrions rechercher l'élégance dans les applications construites, plutôt que dans les langages eux-mêmes. Ce serait exagéré d'appeler l'ensemble compliqué d'outils d'un menuisier (beaucoup sont assez dangereux) élégant . D'un autre côté, ma table et mes chaises de salle à manger sont élégantes, vraiment belles. Cela dit, il serait bien sûr préférable que la langue elle-même soit une belle œuvre d'art.



ENFANTS : Le C++ est-il trop difficile pour la plupart des programmeurs ?

BS : Cela ne devrait pas être. Pour bien utiliser C++, vous devez comprendre les techniques de conception et de programmation. Dans un sens, mes critiques ont raison : tout le monde ne devrait pas écrire du C++, mais je n'ai jamais prétendu qu'ils devraient le faire. C++ est conçu pour vous permettre d'exprimer des idées, mais si vous n'avez pas d'idées ou n'avez aucune idée de la façon de les exprimer, C++ n'offre pas beaucoup d'aide.

ENFANTS : Comment expliquez-vous le fait que le C++ soit largement critiqué et ressenti par de nombreux programmeurs, mais qu'il soit en même temps très largement utilisé ?

BS : La réponse simple serait, il n'y a que deux sortes de langages : ceux dont tout le monde se plaint et ceux que personne n'utilise. La principale raison du succès de C++ est simplement qu'il répond à ses objectifs de conception limités : il peut exprimer une vaste gamme d'idées directement et efficacement.

ENFANTS : Dans ton livre La conception et l'évolution du C++ , vous prétendez que Kierkegaard a eu une influence sur votre conception de la langue. C'est une blague ?

BS : Un peu prétentieux, peut-être, mais pas une blague. Une grande partie de la réflexion sur le développement logiciel se concentre sur le groupe. Les pratiques des entreprises peuvent être directement hostiles aux individus dotés de compétences et d'initiatives exceptionnelles. Je considère une telle gestion de personnes exceptionnelles à la fois cruelle et inutile. Kierkegaard était un fervent partisan de l'individuel contre la foule. Je ne peux pas indiquer une caractéristique spécifique du C++ et dire, voyez, il y a l'influence du philosophe du 19ème siècle, mais il est l'une des racines de ma réticence à éliminer les fonctionnalités de niveau expert. Je n'aime pas particulièrement sa philosophie religieuse, cependant.

ENFANTS : Que regrettez-vous le plus ?

BS : Pas de regrets! Eh bien, bien sûr, je rêve de ce que j'aurais pu faire différemment et mieux, mais qui suis-je pour deviner, disons, le Bjarne de 1984 ? Il avait peut-être moins d'expérience que moi, mais il n'était pas moins intelligent, probablement plus intelligent, et il avait une meilleure compréhension du monde de 1984 que moi. C++ a été utilisé pour construire de nombreux systèmes qui améliorent nos vies, et il a eu une influence positive significative sur les langages et les systèmes ultérieurs. C'est quelque chose dont on peut être fier.

cacher