5 points par GN⁺ 4 시간 전 | 1 commentaires | Partager sur WhatsApp
  • Un documentaire qui retrace en un seul film les 40 ans d’histoire de C++, depuis ses débuts chez Bell Labs jusqu’à son adoption mondiale et sa croissance actuelle, avec la participation de figures ayant contribué à son histoire, à sa standardisation et à son écosystème d’outils
  • C++ est né de C with Classes, créé par Bjarne Stroustrup chez Bell Labs pour combiner le contrôle matériel de C et l’abstraction orientée objet de Simula, avant d’évoluer en langage d’abstraction efficace pour les systèmes de grande taille
  • La première implémentation, CFront, traduisait C++ en code C afin de réutiliser telle quelle l’infrastructure et les bibliothèques C existantes, et à mesure que le nombre d’utilisateurs augmentait après 1983, la compatibilité est devenue un enjeu central
  • La standardisation ANSI/ISO, lancée sous la pression d’IBM, HP et Sun, a empêché l’éclatement entre implémentations selon les éditeurs, et le standard de 1997 a intégré les namespaces, les exceptions, les templates et la STL
  • Au début des années 2000, Java et C#, l’éclatement de la bulle internet et la hausse rapide des performances CPU ont provoqué un hiver du C++, mais vers 2004, l’arrêt du frequency scaling et l’importance croissante du parallélisme ont ouvert la voie à la renaissance de C++11
  • Aujourd’hui, C++ est utilisé au CERN, dans le jeu vidéo, la finance, l’IA et le HPC basés sur CUDA, ainsi que dans les systèmes embarqués, tandis que la sûreté mémoire, la complexité, la taille du comité de standardisation et le manque de financement restent des défis majeurs

C with Classes, né chez Bell Labs

  • C++ a plus de 40 ans et, à l’époque de sa création, il n’existait pas d’outils comme les éditeurs modernes, la coloration syntaxique, la navigation dans le code, l’autocomplétion ou le refactoring, et de nombreux développeurs utilisaient BASIC ou des assembleurs différents selon les puces
  • À une période où des programmes plus grands et plus complexes devenaient nécessaires, Bjarne Stroustrup cherchait à construire des systèmes distribués chez Bell Labs, et il lui fallait un langage de bas niveau pour manipuler des éléments comme les pilotes de périphériques, les interfaces réseau, les gestionnaires de mémoire et les processus
  • C permettait un contrôle total du matériel et convenait bien à la programmation système, mais il montrait ses limites pour exprimer des structures comme des modules, des canaux de communication ou des protocoles à mesure que les programmes grossissaient
  • Stroustrup appréciait la forte sûreté de typage, les types définis par l’utilisateur, les classes et les hiérarchies de classes de Simula, qu’il avait utilisé à Cambridge, mais il jugeait Simula trop lent et trop gourmand en mémoire
  • Il a donc créé C with Classes en ajoutant à C les fonctionnalités de base de Simula, puis a fait évoluer C++ pendant près de 40 ans dans la direction d’un langage capable de faire tout ce que Simula et C permettaient de faire

CFront, le nom et la première diffusion

  • C with Classes a d’abord été conçu comme une forme de préprocesseur C, puis, à mesure que d’autres personnes ont commencé à l’utiliser, Stroustrup a estimé que l’écart avec C n’était pas encore suffisant et a consacré un an à améliorer le compilateur et le langage
  • CFront ne produisait pas directement du code machine avec un backend traditionnel, mais compilait en code C, ce qui permettait aux utilisateurs de C++ de conserver leur environnement C existant sans adopter toute une nouvelle infrastructure ni de nouvelles bibliothèques
  • CFront a été créé en 1983 et c’était un véritable compilateur réalisant l’analyse lexicale, l’analyse syntaxique, la vérification des types, la génération d’une représentation en arbre et l’optimisation de cet arbre
  • Le nom C++ vient du fait que l’opérateur ++ en C signifie l’incrémentation ; sur le plan du sens, ++C aurait été plus juste, mais C++ a été retenu pour des raisons pratiques d’indexation et de référence
  • AT&T a tenté de vendre des compilateurs C++ en entrant dans l’activité informatique et logicielle, mais le matériel ne s’est pas suffisamment vendu, et les premières implémentations de C++ ont pu être diffusées très largement grâce à un coût de bande faible et à des redevances commerciales minimes
  • Pendant un temps, Stroustrup s’est occupé seul de la documentation, du compilateur, de l’implémentation du langage et du support, tandis que l’investissement d’AT&T restait très faible ; à une occasion, 5 000 dollars ont été alloués pour trois ans à la diffusion d’un langage de programmation généraliste
  • Dans CFront 2.0, un bug a été découvert dans la gestion de l’héritage multiple, et comme une fonctionnalité essentielle déjà promise risquait d’être cassée d’une manière impossible à corriger une fois déployée, un correctif a été préparé et diffusé en quelques jours
  • Comme il fallait conserver le même numéro de release, la version a été publiée sous 2.0.0 au lieu de 2.0.1, et la compatibilité est devenue une exigence si dominante qu’on la surnommait en plaisantant le « mot en C »

Standardisation et STL

  • C++ était un outil destiné à améliorer la productivité en interne chez AT&T, mais un langage enfermé dans une seule entreprise ne pouvait pas réussir ; il lui fallait des développeurs externes et un écosystème de bibliothèques
  • Avant le Web, des groupes comme comp.lang.c++ sur Usenet et des magazines informatiques comme Byte servaient à diffuser l’information, et Stroustrup a fait connaître le langage à la fin des années 1980 à travers des conférences dans diverses entreprises et organisations
  • L’usage a progressé sans campagne publicitaire ni sponsor puissant, mais plusieurs éditeurs, dont Borland, Microsoft, IBM et Sun, ont chacun créé leur propre implémentation de C++ et leur propre conception des templates, ce qui a gravement fragmenté la compatibilité du code
  • Des représentants d’IBM, HP et Sun ont demandé à Stroustrup de lancer la standardisation de C++ dans le cadre des règles ANSI ; Stroustrup jugeait cela prématuré, mais a finalement accepté de préparer un document de base pour la standardisation un an plus tard
  • L’Annotated Reference Manual, ou ARM, est devenu le document d’entrée pour la standardisation et a conduit à l’intégration de fonctionnalités comme les templates, les exceptions et les namespaces
  • Le standard a été défini comme un contrat entre les personnes qui écrivent du code C++ et les implémentations de C++, afin que plusieurs éditeurs interprètent le même code avec le même sens
  • La STL, créée par Alexander Stepanov, repose sur l’idée centrale de faire fonctionner les algorithmes sur toutes les structures de données auxquelles ils peuvent s’appliquer, et de permettre à ces structures d’échanger et de remplir leurs données entre elles
  • Avant la STL, chacun concevait à sa manière tableaux, listes, arbres, conteneurs et algorithmes, mais la STL a proposé une méthode unique et puissante pour définir algorithmes et conteneurs
  • La proposition STL a suscité des objections, jugée trop tardive et trop volumineuse pour le calendrier de standardisation, et de grandes entreprises comme Microsoft s’y opposaient, mais après les présentations et les discussions, environ 80 % du comité a voté pour son inclusion dans le standard
  • C++ a été standardisé en novembre 1997, avec l’ajout comme fonctionnalités fondamentales des namespaces, des exceptions, des templates et de la Standard Template Library
  • LLVM ayant démarré après cette standardisation, il a pu utiliser les nouvelles fonctionnalités comme elles avaient été conçues, sans avoir à supporter le poids de la migration de code ancien

L’hiver puis la renaissance de C++11

  • Dans les années 1990, C++ est devenu, dans des domaines comme les logiciels et le calcul en physique des hautes énergies au CERN, le langage qui a fait évoluer le développement jusque-là centré sur Fortran, et de nombreuses bibliothèques et bases de code existantes ont été portées vers C++ ou recréées pour lui
  • Dans le développement de jeux, l’arrivée de cartes vidéo et d’API prenant en charge les tâches de bas niveau a favorisé le passage du C et de l’assembleur vers C++, qui s’est imposé dans des écosystèmes de moteurs comme Unreal
  • Dans la finance, l’essor du trading automatisé et du trading à haute fréquence a rendu cruciale une latence à l’échelle de la microseconde, et C++ s’est imposé comme un langage permettant d’obtenir une faible latence sans micro-optimiser chaque ligne
  • Avec l’éclatement de la bulle internet en 2000, Java s’est imposé, porté par le marketing puissant de Sun, comme le « langage du futur » et le « langage d’Internet », et Java est apparu comme une réponse explicite à la complexité de C++
  • Chez Microsoft, il existait une volonté de combiner la facilité du développement d’interfaces par formulaires de Visual Basic avec les performances et la puissance d’expression de C++, et cela a donné naissance à C#
  • Entre 2000 et 2005, il ne s’est pas agi d’une simple stagnation mais d’un véritable déclin de C++, dans une période où la fréquence des CPU continuait d’augmenter et où de nombreux concepteurs de langages et développeurs accordaient moins d’importance aux performances
  • Vers 2004, la montée en fréquence des processeurs a atteint ses limites, et avec les plafonds de performance et de consommation du monocœur ainsi que les rendements décroissants du parallélisme au niveau des instructions, l’époque où le matériel rendait automatiquement les programmes plus rapides a pris fin
  • Le multicœur et le parallélisme sont alors devenus essentiels, mais le standard C++ de l’époque ne disait absolument rien sur le threading, et l’e-mail de Herb Sutter, « C++ multi-threading: is the standardization committee listening », a mis le problème en lumière
  • C++0X a démarré en 2002 avec un objectif d’achèvement entre 2007 et 2009, mais l’ajout continu de fonctionnalités importantes l’a sans cesse retardé, au point que le processus a pris 13 ans
  • C++11 a introduit les move semantics, la concurrence, auto, les boucles for basées sur des plages, les smart pointers, les lambdas et constexpr, devenant le premier standard d’un langage de la famille C à traiter officiellement du threading
  • C++11 a marqué une renaissance, grâce à la rencontre entre le besoin de fonctionnalités de langage plus simples et plus sûres et la nécessité d’exploiter au maximum les performances du matériel
  • Un train model a ensuite été adopté pour publier les standards à échéance fixe, et le comité a choisi un cycle de trois ans plutôt que de deux ans
  • C++14 a été une petite release regroupant des éléments qui n’avaient pas pu entrer dans C++11 ainsi que des corrections de bugs, tandis que C++17 et C++23 ont ajouté de nombreuses fonctionnalités au langage et à la bibliothèque standard

Échelle actuelle et défis

  • La complexité de C++ a continué à croître, suscitant des critiques sur la multiplicité des façons d’initialiser les variables et des jugements très sévères parlant d’une « complexité difficile à comprendre »
  • Le comité de standardisation s’est lui aussi fortement agrandi jusqu’à atteindre 527 membres, certains s’inquiétant de voir apparaître autant de comités et de présidents qu’il n’y avait de participants au départ
  • En conception de langage, il est possible d’ajouter des éléments mais presque impossible d’en retirer ; la question cruciale n’est donc pas seulement quoi inclure, mais à quel moment dire non
  • C++ est utilisé dans la production d’énergie, les éoliennes, les cuiseurs à riz, les bowlings, les films hollywoodiens, l’automobile, la finance, les appareils photo et bien d’autres domaines, au point qu’on le décrit comme présent « à peu près partout »
  • Le codebase C++ de HRT dépasse le million de lignes réparties dans 15 000 fichiers, et à lui seul, l’année 2025 aurait vu environ 800 développeurs produire 84 000 commits
  • Dans le jeu vidéo, Unity utilise C# tandis qu’Unreal utilise C++, et des jeux comme Call of Duty, qui exigent un framerate élevé et des graphismes rapides, s’appuient sur C++ pour des raisons de vitesse
  • Chez Nvidia et dans le calcul accéléré aussi, C++ reste important ; même lorsqu’on utilise Python en surface, la charge réelle de calcul est assurée par des bibliothèques CUDA hautement optimisées
  • Rust et C++ sont cités parmi les langages à la croissance la plus rapide, avec une estimation du nombre de développeurs C++ passant de 9,4 millions en 2022 à 16,3 millions en 2025
  • La demande pour des langages offrant une forte efficacité énergétique par rapport aux performances se maintient, ce qui donne à C++ des usages d’excellence difficiles à remplacer
  • En parallèle, des inquiétudes existent sur une possible baisse du financement de C++ à mesure que les grands acteurs se tournent vers l’IA
  • Pendant la pandémie, des gouvernements et régulateurs ont commencé à encourager l’abandon de langages comme C++ qui n’offrent pas la sûreté mémoire par défaut, et la sûreté mémoire est présentée comme le problème le plus important à résoudre
  • Dans C++26, pour renforcer les logiciels, les variables non initialisées ne relèveront plus de l’undefined behavior, et la bibliothèque standard de C++26 proposera des options de bounds safety pour des types courants comme string, span et vector
  • La static reflection de C++26 permettra au code du programme d’observer le code du programme lui-même, et elle est présentée comme la fonctionnalité standardisée unique la plus influente
  • La conclusion reste qu’il est possible que l’IA transforme profondément la sûreté des langages et la manière d’utiliser les langages de programmation, mais qu’il est encore impossible de savoir exactement ce qui va se passer

1 commentaires

 
GN⁺ 4 시간 전
Commentaires Hacker News
  • La critique de Ken Thompson qualifiant C++ de tas d’idées incohérentes et complexes me parle encore aujourd’hui. La dernière fois que je l’ai utilisé au travail, c’était en C++98, et je n’ai touché à 11/17/20 que par curiosité
    Si c++/cfront n’avait pas profité de l’aura du C, je doute qu’il se serait autant répandu, et je pense que c’était à la fois au cœur de son identité et une limite que C++ n’a jamais vraiment cherché à dépasser. C’est extrêmement agaçant de passer presque autant de temps à assainir les implémentations avec des outils comme Coverity/Valgrind qu’à laisser le compilateur faire ce qu’il aurait pu faire lui-même
    À l’époque de C++98, on pouvait encore assez bien comprendre ce qui se passait grâce au livre de Bjarne sur la structure interne du langage, mais ensuite toute une industrie de livres du genre “effective, more effective, proficient, performant C++” a explosé, au point qu’avant l’arrivée des LLM, j’avais renoncé à espérer comprendre du code existant écrit par d’autres. J’ai trouvé bien plus satisfaisant de consacrer mon temps à apprendre le domaine du problème
    Je regarderai quand même le documentaire, ne serait-ce que parce qu’on y voit des figures que j’apprécie comme Kernighan et Stepanov

    • Fait peu connu : quand Zortech C envisageait de s’étendre à C++, nous nous inquiétions de la propriété intellectuelle d’AT&T, alors nous avons contacté Ryan Williams, avocat IP chez AT&T
      Nous lui avons demandé s’il fallait une licence pour créer un compilateur C++, et s’il fallait appeler ça autrement que C++. Il a ri et nous a dit de faire comme bon nous semblait, ajoutant qu’il nous remerciait parce que nous étions les seuls à avoir pensé à demander. J’ai vu son avis de décès il y a quelques années ; c’était quelqu’un de bien
    • Le tremplin du succès de C++ a été Zortech C++. À l’époque, 90 % de la programmation se faisait sous MS-DOS, et cfront était pratiquement inutilisable sur DOS
      La compilation était douloureusement lente, et il ne gérait pas les pointeurs near/far, indispensables pour toute application un peu sérieuse. Zortech C++ a résolu ces problèmes, s’est vendu comme des petits pains et a créé la masse critique nécessaire au succès de C++
      Le trafic sur comp.lang.c++ a bondi, Borland a vu nos ventes et a abandonné son propre produit de langage orienté objet pour créer Turbo C++. Microsoft aussi a vu le succès de Borland et a développé son propre C++
      Nous avons aussi vendu beaucoup de compilateurs Zortech C++ à Microsoft, qui s’en est servi pour développer COM. J’ai aussi entendu des rumeurs selon lesquelles Microsoft développait son propre C orienté objet appelé C*, mais je ne l’ai jamais confirmé
    • Beaucoup passent à côté de ça, mais il est très possible que C ait survécu grâce à l’existence de C++. Sans C++, la pression pour ajouter toujours plus de fonctionnalités directement à C aurait probablement été énorme
      Si le comité C a pu tenir si longtemps sans trop en ajouter, c’est en partie parce qu’il pouvait pointer vers C++ et dire : “ça, c’est leur affaire, pas la nôtre”. Sans C++, qui sait si C ne serait pas devenu un langage avec classes, templates et lambdas
    • C++98 est déjà assez différent de C++11. Le livre de Bjarne sur C++11 se lisait d’une manière totalement différente de l’édition sur 98
    • J’ai énormément de respect pour Ken Thompson et les anciennes figures d’UNIX, mais je pense qu’eux aussi reconnaîtraient que le monde réel est désordonné et que la meilleure solution en vase clos ne l’emporte pas toujours
      Le C et UNIX qu’ils ont créés ont eux-mêmes supplanté des systèmes LISP et Smalltalk plus avancés, justement parce que leur mise en œuvre était plus simple. Même leur propre système d’exploitation plus avancé, basé sur Plan 9, n’a pas réussi à évincer les systèmes de type Unix déjà plus répandus
      Au final, la capacité de diffusion et le “suffisamment bon” semblent toujours l’emporter. Les langages dynamiques comme Perl, Python, Ruby, JavaScript et PHP, ainsi que Java fortement marketé, ont offert des fonctionnalités de haut niveau suffisamment bonnes pour détourner les gens de Lisp et Smalltalk
      Vu sous cet angle, C++ a peut-être été le moyen d’ajouter des fonctionnalités de haut niveau à un langage bas niveau performant déjà largement adopté, afin d’en faire une technologie suffisamment bonne pour être adoptée à grande échelle
  • Je travaille beaucoup en C++ en ce moment, donc j’ai décidé de regarder la vidéo en attendant la fin d’un build. La durée tombait parfaitement, et heureusement la vidéo était très bonne

    • J’ai essayé de lire tout ce que je pouvais sur l’histoire de C++, et cette vidéo aussi m’intéresse. Je trouve que la manière dont C++ a évolué est vraiment fascinante
    • Je me demande si c’est juste une blague, ou si le build prend réellement près d’une heure. Si c’est le cas, c’est complètement absurde
  • Personnellement, parmi tous les langages que j’ai utilisés depuis environ 15 ans, C++ est le plus élégant. Si vous êtes du type “systématiseur” et que vous voulez avoir un modèle mental extrêmement précis de ce que vous avez écrit, jusqu’au dernier bit, rien n’égale C++
    Je reconnais les limites et les incertitudes liées au compilateur et au reste, mais je le pense quand même

    • Pourrais-tu donner un exemple de ce que tu entends par modèle mental précis d’un objet donné ?
    • Je pense qu’on pourrait dire la même chose de Rust
    • Un langage élégant est un langage qui accomplit beaucoup avec très peu. Forth et Scheme sont des langages élégants
      Vous êtes libre d’aimer travailler en C++, et il est vrai qu’on peut accomplir beaucoup avec, mais il serait difficilement contestable de dire que C++ y parvient avec “très peu”
  • Je suis content qu’Andrei Alexandrescu soit présent dans ce documentaire. Son livre Modern C++ Design m’a vraiment ouvert l’esprit quand je l’ai lu, et il pourrait encore le faire aujourd’hui. Quelqu’un l’a lu ?

    • Ses conférences font partie de mes préférées. C’est un excellent orateur, très captivant, avec un grand sens de l’humour dont il sait très bien se servir
    • Je les trouve toujours intéressants, mais les livres d’Andrei ont aussi été le coup de grâce qui m’a éloigné du C++ pendant des années. C’étaient d’excellents livres, et ils ont aussi renforcé mon envie de passer à un autre langage. À l’époque, c’était Go
    • D’accord. Modern C++ Design est probablement le livre de programmation qui m’a le plus apporté de toute ma carrière
    • Même impression pour moi. J’ai rencontré Andrei une fois lors d’un Meetup à Munich, et quand je lui ai dit qu’il m’avait appris à penser, la conversation est devenue un peu gênante. Cela dit, j’ai quand même passé un bon moment
    • Je l’ai lu récemment. Certains chapitres étaient très bons, et j’ai trouvé particulièrement intéressant la façon dont les policy classes corrigent certains problèmes de la conception orientée objet
      Je recommande de faire résumer chaque chapitre par un chatbot IA et de lui demander quels en sont les équivalents modernes. Certains idiomes ont déjà été améliorés, et une section entière semblait pouvoir être remplacée par l’usage de std::variant et std::visit
  • C++ doit disparaître. Je comprends que beaucoup de gens y ont investi et qu’une énorme quantité de code a été écrite en C++. J’en étais fan autrefois, et c’est encore aujourd’hui mon principal langage de travail, mais en 2026, avec des LLM capables de trouver toutes les vulnérabilités et des attaquants toujours plus nombreux, il faut des langages où la sécurité est le choix par défaut
    C++ est un langage où il faut activer la sécurité de manière optionnelle et rester extrêmement vigilant pour l’obtenir. Ça ne fonctionne pas, et des décennies d’expérience l’ont prouvé

    • Alors, par quoi le remplacer ?
    • Si les LLM peuvent trouver toutes les vulnérabilités même sans le code source, ne devraient-ils pas les trouver encore plus facilement quand le code est disponible ?
    • C++ était un excellent langage pour son époque. Il n’existait pas de langage plus rapide offrant des abstractions aussi puissantes. Avec C++11 et l’arrivée de choses comme shared_ptr, il a aussi montré à quel point on pouvait faire évoluer un langage
      Il a absorbé presque toutes les idées, et on a fini par voir sur le terrain ce qui marchait et ce qui ne marchait pas. On peut garder RAII, la distinction entre déplacement et copie, les smart pointers, placement-new, les génériques
      En revanche, on peut jeter auto_ptr, la copie par défaut, certaines façons d’implémenter les exceptions, l’héritage virtuel multiple, et les templates qui réécrivent le code en bloc. À mon avis, le débat est terminé, et Rust est le meilleur condensé de ce qui a fonctionné. Le fait qu’il ait aussi hérité des temps de compilation est un bonus
  • Je suis surpris que la dynamique de développement de C++ continue. Quand un jeu ou un programme est fait en C++, c’est généralement rassurant parce que les performances sont à peu près garanties, mais si on me disait d’écrire directement en C++, j’aurais envie de pleurer
    Il y a beaucoup trop de choses à mémoriser, et les standards sont trop variés. Quand j’arrive sur un projet à maintenir et que c’est du C++, je perds aussitôt mon énergie. C’est juste trop difficile. Je veux bien que d’autres en écrivent, mais ce n’est pas un langage que j’ai envie d’utiliser moi-même

    • Personnellement, je ne trouve pas la programmation en C++ si difficile. Son principal défaut, c’est qu’il faut échauffer son cerveau, et le refaire pour chaque projet, mais une fois que le volant d’inertie est lancé, j’écris du code presque sans effort
      Quel que soit le langage, il faut un échauffement similaire, donc pour moi ce n’est pas très différent de Python, Go ou Java
    • Dans le jeu vidéo, C++ devient un langage bien plus simple. C’est parce que les codebases de jeux ignorent généralement la majeure partie de la bibliothèque standard C++, et il y a de bonnes raisons à cela. Voir par exemple [0]
      Sans la bibliothèque standard, C++ est plutôt correct
      Le principal problème de l’écosystème C++, c’est que chacun taille son propre sous-ensemble du langage. Résultat, ce n’est pas un seul écosystème, mais plusieurs écosystèmes avec des styles incompatibles et des sous-ensembles différents du langage et de la bibliothèque standard. Du coup, la réutilisation du code via des bibliothèques devient bien plus difficile qu’elle ne devrait l’être
      [0] https://hftuniversity.com/post/the-c-standard-library-has-be...
    • Il est vrai que C++ a beaucoup de fonctionnalités. Mais comme je l’ai dit ailleurs, la plupart des projets définissent leurs propres règles et le sous-ensemble de fonctionnalités qu’ils utilisent
      L’ampleur de cet ensemble est aussi un grand avantage : C++ permet d’utiliser de bonnes abstractions du très bas niveau jusqu’au très haut niveau. On peut faire du bas niveau avec de l’assembleur inline, des opérations sur les bits, de la manipulation mémoire directe, et on peut aussi l’utiliser à un niveau presque aussi élevé qu’un langage de script. Quels que soient les besoins du domaine, C++ peut les couvrir
    • On peut être assez productif en n’en connaissant que 70 %. Dire que C++ ne convient qu’à des domaines comme les moteurs de jeu est une idée reçue ; il est aussi tout à fait valable pour le développement applicatif
      Au passage, d’après les informations de ton profil, à moins que tu ne sois en Corée du Nord, tu devrais ajouter un zéro à ton tarif. Tu attireras ainsi des clients plus durables et plus soucieux de la qualité
    • L’un de mes loisirs consiste à fouiller les magasins d’occasion, admirer les objets ringards d’époques révolues, écarter les babioles modernes mal conçues, et me réjouir quand je tombe sur un outil simple et robuste
      Vivre comme programmeur C++, c’est exactement cette sensation
  • Chaque fois que j’enseigne à des développeurs web, je leur dis que le langage d’Internet n’est pas JavaScript, mais C++. Les développeurs web ne sont que des utilisateurs qui jouent à l’intérieur de programmes écrits par des développeurs C++

    • En poursuivant cette analogie, les développeurs de navigateurs ne sont eux aussi que des utilisateurs qui jouent à l’intérieur de programmes en C / du système d’exploitation / du noyau
    • Pour ma part, je considère le web et Internet comme deux choses différentes. S’il fallait choisir un langage du web, je dirais sans doute HTML
      Ce qu’est le langage d’Internet est beaucoup moins clair
  • Les documentaires gratuits sur des sujets qui me passionnent, c’est vraiment super. Merci
    Cela dit, je suis un peu particulier : je n’arrive pas à regarder les documentaires construits à partir de gens qui enchaînent de courtes phrases. Je comprends l’intention de “les laisser raconter l’histoire”, mais je trouve ça dispersé, donc j’ai besoin d’un narrateur qui me dise à quoi penser
    Cela dit, j’envoie tout de même mon affection aux créateurs

  • J’ai raté les tendances récentes, mais il y a eu récemment des documentaires sur Python, Clojure, et sans doute d’autres langages. Est-ce que les mêmes personnes font une série sur plusieurs langages ? Est-ce une coïncidence ? Ou bien est-ce maintenant la mode où tous les langages de programmation se mettent à produire leur propre documentaire vidéo ?

    • Oui, c’est bien fait par les mêmes personnes : https://www.cultrepo.com/
      On dirait qu’ils font des documentaires sur les logiciels open source
  • Chandler Carruth a un point de vue intéressant sur ce sujet : https://hachyderm.io/@chandlerc/116694268329657881

    • C’est pertinent. La vidéo ressemblait clairement davantage à une hagiographie, et j’ai aussi trouvé qu’il manquait de voix critiques
      Ce n’est que dans les dix dernières minutes qu’elle aborde un peu des critiques courantes comme la complexité croissante ou la sûreté mémoire. Malgré cela, j’ai pris plaisir à la regarder