Overblog Tous les blogs
Editer l'article Suivre ce blog Administration + Créer mon blog
MENU
Laurent COCAULT
Publicité

Faut-il s'intéresser à Rust ?

Faut-il s'intéresser à Rust ?
Publicité

Le 26 février dernier, la Maison Blanche invitait les développeurs, entre autres dispositions, à choisir des langages de programmation qui permettent de minimiser la surface d'attaque dans un contexte de menace croissante sur le cyberespace. La seconde partie du rapport énumère les trois caractéristiques que doit vérifier un langage sûr.

  • "First, the language must allow the code to be close to the kernel so that it can tightly interact with both software and hardware" Cette première recommandation met à mal nombre de langages modernes qui proposent justement un niveau d'abstraction permettant de s'affranchir des problématiques de bas niveau. Un langage tel que Python semble de fait écarté de la liste proposée par les autorités américaines.
  • "Second, the language must support determinism so the timing of the outputs are consistent." Cette seconde recommandation met en avant les langages dits "temps réel" qui permettent de maîtriser la synchronisation des tâches et d'assurer une gestion fine du temps.
  • "Third, the language must not have – or be able to override – the “garbage collector,” a function that automatically reclaims memory allocated by the computer program that is no longer in use." Avec cette troisième recommandation, la Maison Blanche invite à ne pas utiliser les langages prenant en charge la gestion des allocations dynamiques de mémoire pour le développeur. Cette troisième règle écarte un langage tel que Java.

La suite du rapport s'intéresse aux langages les plus largement utilisés qui répondent à l'ensemble des caractéristiques, précisant: "The most widely used languages that meet all three properties are C and C++, which are not memory safe programming languages. Rust, one example of a memory safe programming language, has the three requisite properties above, but has not yet been proven in space systems." Il n'en fallait pas plus pour que de nombreux articles annoncent que la Maison Blanche invitait les développeurs à passer sous Rust. Notre culture française pourrait nous inviter à objecter que notre pays a œuvré depuis des années pour l'adoption de langages sûrs tels que Ada (dont on se souviendra qu'il a été proposé par Bull pour répondre aux exigences du département de la défense américaine) ou Esterel, langages qui n'ont eu de succès que dans des contextes où la sûreté de fonctionnement en environnement temps réel joue un rôle essentiel. Mais la proposition des autorités américaines est à considérer avec intérêt, le langage Rust présentant en effet de nombreux atouts.

Cela fait une dizaine d'années que certaines développeurs me recommandent d'utiliser ce langage créé par Graydon Hoare, employé de Mozilla, dans le cadre de la création de Servo, un moteur de rendu pour navigateur Web, passé depuis dans le giron de la fondation Linux. Au fil des années, le langage Rust s'est progressivement fait une place mais peine à entrer dans le haut du classement. En restant sous la barre des 13% d'adoption par la communauté des développeurs, Rust est loin de concurrencer les poids lourds du classement que sont JavaScript, Python et Java. Pourtant, Rust est depuis plusieurs années dans le haut du classement des langages les plus désirés et très souvent mentionné comme le langage le plus admiré.

Faut-il s'intéresser à Rust ?

L'écart entre ces deux statistiques tient certainement en partie à la barrière d'entrée pour se familiariser avec le langage. Le gouvernement américain ne s'est pas trompé en voyant en Rust un candidat de choix pour développer des programmes sûrs, mais cette sûreté à un un prix qui se paye dès la compilation. La syntaxe du langage exige du développeur une rigueur qui peut être parfois décourageante. Pour ma part, mes premières expériences avec le langage ont été difficiles sur ce plan. L'utilisant de manière très occasionnelle depuis 2019, j'ai plusieurs fois abandonné l'idée de développer un "side project" avec ce langage pour revenir sur des langages moins contraignants tels que Java ou Python. Pourtant, je ne me lasse pas de revenir vers ce langage régulièrement. Au delà des arguments avancées par la Maison Blanche que je partage, l'un des arguments qui m'a récemment convaincu qu'on ne pourrait par ignorer ce langage plus longtemps, est qu'il s'agit d'une alternative moderne au langage C pour développer des programmes frugaux. Même si ce classement a souvent été remis en cause depuis sa large diffusion, je ne peux pas m'empêcher de noter que Rust apparaît en excellente position sur le classement des langages les plus verts.

Publicité
Faut-il s'intéresser à Rust ?

Voyant en Rust un langage de programmation de bas niveau destiné à la programmation des pilotes de périphériques ou des fonctions de base des systèmes d'exploitation (notons au passage que le noyau Linux a ouvert ses portes au langage il y a quelques mois), je m'étais résigné à penser que l'industrie rechignerait à s'appuyer sur un tel langage pour construire des applications complexes. Mais une série d'articles m'a invité à effectuer quelques recherches qui m'ont fait changer d'avis: l'écosystème Rust n'est pas aussi minimaliste qu'on pourrait le croire. Autour de ce langage, on trouve des frameworks qui permettent de s'interfacer avec des bases de données et des bus de communication, d'exposer des interfaces de Web Services, de construire des interfaces graphiques, et même de proposer des IHM Web via Web Assembly.

Sécure, Green et Full-Stack, le langage Rust mérite qu'on s'y intéresse et cet article devrait être le premier d'une série destinée à illustrer les possibilités offertes par ce langage.

Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article
D
Je commence à pas mal m'y intéresser, j'aime bien et ca évolue dans le bons sens !
Répondre
S
Le principal problème de Rust à l'heure actuelle est le manque de compilateur. Quand la suite GCC pourra compiler la dernière version de Rust, ce sera plus sur. Il est compliqué de pleinement s'investir dans un langage en ayant qu'un unique compilateur, notamment pour du bas niveau, compilateur qui n'a pas autant de cible que GCC par exemple.
Répondre