• [^] # Re: Les avantages de C++ ne sont pas bien différentes avec Rust

    Posté par . En réponse à la dépêche Faut‐il continuer à apprendre le C++ ?. Évalué à 2.

    Oui, mais un écosystème ça met potentiellement un temps encore plus important à se mettre en branle. 2011 c'est la date de sortie de la spec, ...

    La norme a été finalisée en 2011 mais elle a été discutée pendant des années et une grosse partie des fonctionnalités était déjà implémentée dans les compilateurs.

    l'intérêt du C++ c'est sa compatibilité à toute épreuve ?

    Quasiment, oui. Il me semble qu'un code C++98/03 compile bien en C++11. Après certains compilateurs n'implémentaient pas parfaitement les normes pré-C++11 (je ne citerai pas de nom...) et donc des erreurs tolérées avant ne passaient plus sur la nouvelle version. Mais ça c'est un problème de compilateur, pas du langage.

    le C++ est cool

    Non, le C++ est juste un outil avec des avantages et des inconvénients.

    Cet interfaçage demande à faire une couche de translation C ou C++98 vers C++11. Hors ces 3 langages sont presque totalement compatibles donc il est assez subtile de s'assurer que l'on ne leak pas du C dans le reste de ton programme.

    Oui c'est le principe de la compatibilité. Si tu veux compiler du C ou du C++98 directement dans du C++11, tu peux. Si tu veux interfacer proprement, tu peux. Tu aurais voulu quoi ? Que le C++11 interdise tout code antérieur et demande de tout réécrire en Rust ? Quand tu appelles du code C depuis le FFI, Rust ne vérifie pas non plus magiquement que ce code est sûr.

    cppcheck se contente de voir les bugs, non ?

    Je ne sais pas ce que tu appelles bugs mais cppcheck est capable de détecter des problèmes comme les fuites mémoires. Je ne pense pas que ce soit fiable à 100% cependant.

    Tu peux lui dire d'interdire l'utilisation des pointeurs nus par exemple ? De bien déprécier tout ce qui a était rendu smell par C++11 ?

    Interdire des fonctionnalités n'est pas la "façon de penser" de C++ et ça casserait la compatibilité.

    ça restera en langage dangereux

    Oui c'est vrai. Et c'est le cas de tous les langages qui autorisent du bas niveau, même de Rust en unsafe. Maintenant on peut en discuter des heures mais il n'y a pas de langage parfait (à part haskell installé par nix sur minix, bien-sûr), il faut forcément faire des compromis qui forcément ne plairont pas à tout le monde.