• [^] # Re: Phobie du GC

    Posté par (site web personnel) . En réponse à la dépêche Faut‐il continuer à apprendre le C++ ?. Évalué à 3. Dernière modification le 14 août 2018 à 22:31.

    Je le mentionnais dans mon message pour expliquer que le nombre de domaines applicatifs perçus comme "ne tolérant pas un GC" diminue, longtemps les jeux vidéos ont été cités en exemple, ce n'est plus pertinent aujourd'hui.

    Je ne suis pas d'accord. Les jeux vidéos ont, sont toujours, et seront toujours en C++ ( du moins à court terme ). Ce qui est en C# c'est l'interface de scripting des jeux pour Unity, ce qui est normale et n'a rien de révolutionnaire. Elle était en Lua, python ou home made script ( Unreal script ) pendant très longtemps.

    Le C# ne remplacera jamais le core même de l'Engine car critique. Il rend juste l'interface externe plus "accessible". Tout comme le calcul scientifique ne sera jamais entièrement fait en python.... Il rend juste l'interfaçage à BLAS plus accessible. Tout comme la plupart des frameworks de machine learning ne seront jamais fait entièrement en Lua / Python / JS.... ils wrappent simplement des libs systèmes existante.

    Je pense au contraire l'opposé. Dans le sense où le temps des languages frameworks monolitiques géants, vivant sur leur propre ecosystème, le tout tournant sur un Garbage Collector comme Java est révolu.

    Ils perdent de la vitesse et tend à disparaitres en ce faisant remplacer par des languages de scripts haut niveau ( donc souvent à GC ) associés à des libs systèmes justement codé en C, C++ ou Rust.

    − C'est le cas de Python devenu le de-factor standard en Calcul Scientifique ( Même si Julia tente de se faire une place )

    • C'est le cas de Python / Lua pour quasiment TOUS les frameworks de Machine learning.

    • C'est le cas de Golang qui crée des binaires static, AOT tout en incluant directement des fichier objets en code C pour s'interfacé avec les libs tiers.

    • C'est le cas de Swift qui a trés justement éviter les erreurs faites avec Java & Android en se basant sur une grosse stack existante en ObjectiveC.

    Prends un bon 90% des logiciels que tu vois sur ton écran à l'instant ils suivent ce pattern :

    • Ton Web Browser: un core en C++ et un scripting en JS

    • Ton Environment GNOME SHELL ou PLASMA : Un core en C ou C++ et un language de scripting

    • Ton client mail, ton file browser, Même trés certainement le GUI de l'ordinateur de bord voiture fonctionne pareillement... Le mien est en JavaScript avec un Backend en C.

    Les languages système sans GC comme C++ ne disparaîtront pas, trés loin de là, ils sont derrière un peu prés tous les outils que l'ont utilise tous les jours, et encore pendant trés longtemps.... Le code "métier" par contre, le code "GLUE" entre les composants... lui ira de plus en plus vers des languages de haut niveau pour des raisons d'accessibilité.... Trés vraisemblablement.