Les langages 'sûrs' tels que Rust ne sont pas supérieurs à C++ selon Bjarne Stroustrup
mer, 25/01/2023 - 11:50
Bjarne Stroustrup a publié un intéressant document en réponse à une publication de la NSA recommandant l'usage de langages de programmation qu'elle considère comme sûrs au niveau de la gestion de la mémoire, comme C#, Go, Java, Ruby, Rust, and Swift, au détriment de C et de C++.
Pour Bjarne Stroustrup, les choses ne sont pas aussi simples "Maintenant, si je considérais l'un de ces langages "sûrs" comme supérieur au C++ pour la gamme d'utilisations qui m'intéresse, je ne considérerais pas la disparition de C/C++ comme une mauvaise chose, mais ce n'est pas le cas. Aussi, comme décrit, "sûr" est limité à la sécurité de la mémoire, laissant de côté une douzaine d'autres façons dont un langage pourrait (et sera) utilisé pour violer une certaine forme de sûreté et de sécurité.Maintenant, je ne peux pas dire que je suis surpris. [...] Il n'y a pas qu'une seule définition de la « sécurité » et nous pouvons obtenir divers types de sécurité grâce à une combinaison de styles de programmation, de bibliothèques de support et d'application via une analyse statique. P2410r0 donne un bref résumé de la démarche. J'envisage des options de compilateur et des annotations de code pour demander règles à faire respecter. La plus évidente serait de demander une sécurité totale garantie du type et des ressources. [...] Le code C++ ne disparaîtra pas comme par magie, et même le code "sûr" (dans n'importe quelle langage) devra appeler code C ou C++ ou être appelé par du code traditionnel n'offrant pas de garanties de sécurité particulières."
La réponse de Bjarne Stroutrup à la NSA peut être lue ici.
Dans sa réponse Bjarne Stroustrue mentionne la possibilité d'utiliser des bibliothèques de support. De telles solutions existent, effectivement, comme par exemple SLIMalloc que nous vous avons présenté il y a quelques jours.