Ajouter un commentaire

RUST va tuer C et C++. Pas si vite...

Par:
ftonic

lun, 26/09/2022 - 08:22

Mark Russinovich, un des ingénieurs les plus respectés de Microsoft, lançait sur Twitter : il est temps d'arrêter les nouveaux projets en C et C++ et d'utiliser RUST pour les scenarios dans lesquels un langage non garbage collector est requis. Par souci de sécurité et de fiabilité, l'industrie devrait déclarer ces languages comme obsolètes. (20 septembre). Le 21, il précisa tout de même : "There is an enormous amount of C/C++ that will be maintained and evolve for decades (or longer). Last night I coded a feature for Handle, adding to the roughly 85,000 lines of Sysinternals C/C++ code I've written. That said, I'll bias towards Rust for new tools.". En gros, "Il existe une énorme quantité de code C, C++ qui sera maintenu et qui évoluera pendant des décennies (ou plus). La nuit dernière, j'ai codé une fonctionnalité pour Handle, j'ai rajouté 85 000 lignes de Sysinternals en code C et C++. Cela dit, je privilégerai Rust pour les nouveaux outils". 

Il n'a pas suffi plus de mots pour que l'information soit reprise pour dire que C et C++ est mort et que Microsoft miserait sur RUST. Cependant, la précision du 21 septembre est importante car finalement, Mark précise sa pensée du 20 septembre même s'il met toujours RUST en avant et le préconise pour les nouveaux outils. C++ est réputé complexe et difficile même s'il reste une référence incontournable pour les développeurs systèmes, bas niveaux et hautes performances. 

Rust est beaucoup plus récent, il profite des langages à la syntaxe plus simple et plus clair. Il est réputé plus stable, notamment grâce à une structure de code plus limpide, et plus sécurité par conception. 

Précisons de suite que Mark Russinovich ne dit absolument pas de remplacer C et C++ partout et encore moins de remplacer ces langages natifs dans les développements actuels. Il serait tout aussi impensable et illusoire de coder Windows en Rust. Il faudrait sans doute plus de 10 ans, des milliers de développeurs et un budget colossal. Linus pousse Rust dans Linux et le langage est devenu le 2e langage officiel du noyau. Sa première mission sera surtout de créer les nouveaux pilotes et de nouvelles extensions. Meta, Microsoft, Google utilisent Rust dans certains développements. 

Il est dommage que de nombreux medias et blogs IT extrapolent sur "RUST va remplacer le C et C++". Quand on regarde en détails les commentaires de Mark, et des autres éditeurs, les propos sont plus précis et prudents. Mark garde les langages natifs pour certains développements et il ne dit pas de jeter le code C et C++ pour le remplacer par Rust. Et surtout, est-ce que Rust est au niveau de C++ et est-ce qu'il apporte de meilleures réponses ? Chaque développeur peut se faire son avis.

Rust a des qualités indéniables mais le langage reste jeune et est toujours en développement intensif même si le core code est stabilisé. Difficile de le comparer à C++ pour tout. L'apprentissage de Rust n'est pas forcément le plus simple et le développeur doit apprendre une autre logique. Google met en avant Kotlin mais Java reste LE langage référence dans Android. Apple a lancé Swift mais le coeur des OS reste en C++. L'approche hydribe est un classique : un core code en langage natif et un autre langage au-dessus.

Les ingénieurs Google en charge de Chrome avaient publié un très intéressant post sur la sécurité en C++. La conclusion résume bien la situation : C++ permet d'écrire du code très performant mais cela a un prix : la sécurité. L'équipe parle de l'intérêt d'utiliser le marquage matérielle de la mémoire (memory tagging). Sur cette approche de sécurité en C++, une publication de 2018, de plusieurs développeurs Google, est particulièrement éclairante : Memory tagging and how it improves C/C++ memory safety.

 

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 H  H  X   X  L     BBBB   H  H 
H H X X L B B H H
HHHH X L BBBB HHHH
H H X X L B B H H
H H X X LLLL BBBB H H