Les ingénieurs en logiciel du constructeur automobile Volvo ont expliqué en détail pourquoi ils sont fans du langage de programmation Rust et soutiennent que Rust est en fait « bon pour votre voiture ».
Il semble que tout le monde aime Rust, des équipes Windows et Azure de Microsoft aux mainteneurs du noyau Linux, en passant par Amazon Web Services, Meta, le projet Android Open Source, etc. Et maintenant, il est temps d’ajouter les ingénieurs logiciels de Volvo à cette liste.
Julius Gustavsson, expert technique et architecte système chez Volvo Cars Corporation, explique « pourquoi Rust est en fait bon pour votre voiture » dans une interview sur Medium avec un autre ingénieur logiciel de Volvo, Johannes Foufas.
Rust est un langage relativement jeune qui aide les développeurs à éviter les bugs liés à la mémoire, ce que C et C++ ne font pas automatiquement, d’où la popularité croissante de Rust dans la programmation des systèmes. Les bugs liés à la mémoire sont les problèmes de sécurité graves les plus courants, selon l’équipe Chrome de Microsoft et de Google.
Le potentiel de Rust
Volvo, ainsi que l’industrie automobile en général, se tourne vers les « voitures définies par logiciel » pour personnaliser, différencier et améliorer les véhicules après leur sortie de l’usine.
Les principaux avantages que Julius Gustavsson voit dans Rust sont les suivants : ne pas avoir à penser aux conditions de course et à la corruption de la mémoire, et à la sécurité de la mémoire en général. « Vous savez, simplement écrire un code correct et robuste dès le départ », précise-t-il.
Julius Gustavsson raconte qu’il a commencé à introduire Rust chez Volvo avec le nœud à faible consommation de l’ordinateur central. L’expert technique voit un avenir brillant pour Rust chez Volvo, mais cela ne signifie pas qu’il faut l’utiliser pour remplacer un code déjà fonctionnel qui a été testé de manière adéquate. Il note que le nouveau code Rust peut coexister avec « une granularité presque arbitraire » avec le C et le C++ existants, et qu’il pourrait être judicieux de choisir des parties pour réécrire Rust si ce composant a besoin de cybersécurité.
« Nous voulons étendre Rust ici chez Volvo Cars pour l’activer sur davantage de nœuds et pour cela, nous devons obtenir le support du compilateur pour certaines cibles matérielles et le support du système d’exploitation pour d’autres cibles. Il ne sert à rien de remplacer du code déjà développé et bien testé, mais le code développé à partir de zéro doit absolument être développé en Rust, si possible », explique-t-il.
« Cela ne veut pas dire que Rust est une panacée. Rust a encore des aspérités et il vous oblige à faire certains compromis qui ne sont pas toujours les meilleurs. Mais, dans l’ensemble, je pense que Rust a un énorme potentiel pour nous permettre de produire un code de meilleure qualité dès le départ et à moindre coût, ce qui réduirait nos coûts de garantie. C’est donc une situation gagnant-gagnant pour le résultat final. »
Groupes de travail
Volvo n’est pas le seul constructeur automobile à s’intéresser à Rust. Autosar, un groupe dont l’objectif est de développer un cadre technique standardisé dans l’automobile, et qui compte parmi ses membres Ford, GM, BMW, Bosch, Volkswagen, Toyota, Volvo et bien d’autres, a annoncé en avril la création d’un nouveau sous-groupe au sein de son groupe de travail sur la sécurité fonctionnelle (WG-SAF) afin d’étudier comment Rust pourrait être utilisé dans l’une de ses plateformes de référence.
SAE International a également mis en place un groupe de travail pour étudier l’utilisation de Rust dans l’industrie automobile pour les systèmes liés à la sécurité.
Rust a également été mentionné par Mark Russinovich, directeur de la technologie de Microsoft Azure, qui indique que les développeurs devraient éviter d’utiliser les langages de programmation C ou C++ dans les nouveaux projets et plutôt utiliser Rust.
Source : ZDNet.com
(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/fr_FR/all.js#appId=243265768935&xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));