Faut-il tout réécrire en Rust ?
mer, 24/02/2016 - 16:23
Le débat est lancé par Robert O'Callahan, de la fondation Mozilla, dans un billet. Pour rappel, Rust est le premier langage tout rouillé à l'état natif. Rust est développé par Mozilla. Il est multi paradigme (programmation impérative, objet, fonctionnelle) C'est un langage compilé qui permet de travailler au plus bas niveau. Pour cela, il a l'ambition de concurrencer C/C++ sur leur terrain.
Le point de départ du billet est la toute dernière faille détectée dans la glibc de GNU Linux. Il écrit :
Malheureusement ce n'est qu'une des très très nombreuses vulnérabilités critiques qui font de la sécurité informatique une plaisanterie.
Ce n'est pas un secret, continue-t-il que nous avons la technologie pour prévenir la plus grande partie de ces bugs. [...] Jusqu'à récemment, il y avait de bonnes excuses pour cela; les langages de 'programmation sûre' était inadaptés à la programmation système, car ils ne donnaient pas un complet contrôle sur les ressources, et ils nécessitaient la présence d'un runtime complexe [ Robert parle-t-il de Java ce langage qui a toujours été présenté comme sûr et dont les récentes failles récentes de sécurité ont beaucoup fait parler ? ;-) ] qui convient pas à certains contexte comme par exemple les noyaux.
Rust change tout ça. Nous avons un langage sûr qui offre le contrôle en programmation système. [ C'est bien de Rust dont parle Robert, pas de ADA ;-) ]
Pour le bien de l'Internet et de l'humanité, nous devons migrer notre logiciel [Firefox ? Oou tous les applicatifs de l'Univers ? Le billet n'est pas vraiment clair là-dessus ] de C/C++ vers Rust, aussi vite que possible.
Le billet continue en expliquant sans rire comment vérifier le code Rust non sûr (unsafe).
Le débat est donc lancé. Bon vieux troll. Les langages sûrs et performants, il y en a eu d'autres, mais C et C++ sont toujours là :-) On pourrait lui répondre qu'Objective Caml c'est très bien aussi, et qu'en regard du billet son seul défaut c'est de ne pas s'appeler Rust. On pourrait aussi argumenter que former des développeurs qui écrivent du code sans bug, n'est pas nécessairement utopique. Enfin Rust ou pas, bon nombre de bugs proviennent du fait que le développeur n'a pas le temps de travailler bien, voire de bien réfléchir avant de coder, ou qu'il y a un manque de ressources financières.
Qu'en pensez-vous ?
Commentaires
Les systèmes sont complexes, ce qui rend aussi la programmation/tests difficiles. Comme souligné en fin d'article, c'est aussi généralement le manque de budget qui pose problème. Malgré toute la bonne volonté du monde, les premières versions de logiciels sont et seront toujours des passoires tant qu'on n'aura pas compris l'importance des tests.
Il faut plusieurs refontes complètes de soft avant d'aboutir à une version véritablement stable et qui plait au client, mais encore une fois: l'argent pose problème. La plupart des sociétés vont chercher le profit immédiat ou sur du moyen terme.
Pas convaincu par son discours, je demande des preuves concrètes.