IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Rust peut-il sauver la planète ? Un composant JavaScript a été réécrit en Rust
Et aurait une amélioration de 50 % de la latence, une réduction de 75 % de l'utilisation du CPU et 95 % de la mémoire

Le , par Bruno

154PARTAGES

19  2 
Apocalypse ou pas ? Notre époque n’a jamais été aussi schizophrénique. Alors que les uns se plaignent d’une possible destruction de notre planète du fait des différentes technologies en place aujourd’hui, les autres pensent au contraire que la technologie peut résoudre les problèmes environnementaux. Lors d’une conférence d’AWS tenue cette année, Shane Miller, présidente de la Fondation Rust, et Carl Lerche, chef de projet de Tokio, ont plaidé en faveur de l'utilisation de Rust pour minimiser l'impact environnemental, tout en précisant que sa courbe d'apprentissage abrupte rendait la tâche difficile.

Rust est un langage de programmation compilé multiparadigme, conçu par Graydon Hore alors employé chez Mozilla Research, avec la contribution du créateur de JavaScript Brendan Eich. Utilisé par plusieurs grandes entreprises et par de nombreux développeurs dans le monde, Rust est devenu le langage de base pour certaines des fonctionnalités fondamentales du navigateur Firefox et de son moteur Gecko, ainsi que pour le moteur Servo de Mozilla.

AWS utilise Rust pour fournir des services tels qu'Amazon Simple Storage Service (Amazon S3), Amazon Elastic Compute Cloud (Amazon EC2), Amazon CloudFront, et plus encore. Récemment, l’entreprise a lancé Bottlerocket, un système d'exploitation basé sur Linux et écrit en Rust. L’équipe Amazon EC2 utilise le langage Rust pour développer les nouveaux composants du système Nitro d'AWS, y compris les applications sensibles, telles que les enclaves Nitro.

Dans une étude intitulée : Efficacité énergétique dans les différents langages de programmation et publiée en 2019, six chercheurs de trois universités portugaises ont révélé que Perl, Python et Ruby sont les langages de programmations les plus voraces en énergie. Pour comparer correctement l'efficacité énergétique entre différents langages, il faut obtenir des implémentations comparables de solutions à un ensemble représentatif de problèmes. Et c’est ce qui avait été fait par les chercheurs des universités portugaises.

Rust est l’un des langages de programmation les plus appréciés et dont la croissance est la plus rapide à l'heure actuelle. Selon Google, les défauts de sécurité de la mémoire menacent fréquemment la sécurité des appareils, en particulier pour les applications et les systèmes d'exploitation. Par exemple, sur le système d'exploitation mobile Android, Google dit avoir constaté que plus de la moitié des vulnérabilités de sécurité traitées en 2019 résultaient de bogues de sécurité de la mémoire. Rust s'est avéré efficace pour fournir une couche de protection supplémentaire au-delà même de ces outils dans de nombreux autres projets, y compris les navigateurs, les jeux et même les bibliothèques clés.

Microsoft a récemment formé une équipe Rust pour contribuer aux efforts d'ingénierie de l'écosystème du langage. L’entreprise spécialisée dans le développement de logiciel prévoit de travailler avec la communauté Rust sur le compilateur, les outils de base, la documentation et bien plus. Selon Nell Shamrell Harrington, Ingénieur logiciel chez Microsoft et directeur du conseil d'administration de la Fondation Rust, les logiciels et les langages open source sont d'une importance capitale pour son entreprise et pour l'ensemble de l'industrie technologique. « Au fur et à mesure que l'utilisation de Rust se développe chez Microsoft, nous savons qu'il ne suffit pas de l'utiliser uniquement comme logiciel open source. Nous devons également y contribuer », a-t-il déclaré sur le billet de blog publié ce 8 février par Microsoft. « Rejoindre la Fondation Rust est une façon pour nous de soutenir financièrement le projet et de nous engager plus profondément avec la communauté Rust », précise Harrington.

Comment Rust peut-il sauver la planète ?

La réponse est qu'un code plus efficace nécessite moins de ressources pour fonctionner, ce qui se traduit par une réduction de la consommation d'énergie dans les centres de données, ainsi que de l'impact environnemental de la fabrication des équipements informatiques et de leur expédition dans le monde entier. « Les centres de données consomment ... 1 % de toute l'énergie mondiale », a déclaré Miller, ajoutant toutefois que l'énergie totale consommée avait peu évolué en dix ans, grâce aux progrès technologiques et au fait que le cloud tend à réduire la proportion de ressources inutilisées.

La deuxième partie de l'argument est que Rust fait partie des langages de programmation les plus efficaces. La source citée pour cela est l’article susmentionné, de 2017, qui a mesuré les performances, l'utilisation de la mémoire et l'efficacité énergétique de 27 langages de programmation, et a placé C comme le plus efficace, mais Rust juste derrière avec seulement trois pour cent de plus d'utilisation d'énergie. Java utilise près du double d'énergie, C# plus de trois fois, et Python plus de 75 fois, selon l'étude.

Résultat global normalisé pour le temps d'énergie et la mémoire


Le top 5 des langages qui consomment le moins d'énergie est donc C (1,00), Rust (1,03), C++ (1,34), Ada (1,70) et Java (1,98). À l'opposé, les langages les plus voraces en énergie sont Perl (79,58), Python (75,88), Ruby (69,91), Jruby (46,54) et Lua (45,98).

La recherche est problématique, comme l'ont fait remarquer plusieurs participants à la conference, non pas par manque de soin, mais parce que les langages ont de nombreuses implémentations et compilateurs, dont certains sont plus efficaces que d'autres. Il est également étrange de constater que TypeScript est 10 fois moins efficace que JavaScript, étant donné qu'il se compile en JavaScript et qu'un code similaire peut être écrit dans les deux.

Cependant, cela n'est pas si important car l'efficacité de Rust en tant que langage de systèmes ne fait aucun doute, et Miller et Lerche ne se sont pas basés uniquement sur cette recherche. Miller a également fait référence à des études de cas de Discord et de Tenable qui ont montré d'énormes gains d'efficacité. Dans le cas de Tenable, un composant JavaScript a été réécrit en Rust et aurait obtenu une amélioration de 50 % de la latence, une réduction de 75 % de l'utilisation du CPU et une réduction de 95 % de l'utilisation de la mémoire. « C'est assez fou, a déclaré Miller. C'est une économie substantielle, pas seulement dans l'infrastructure, cela se traduit par des économies d'énergie. »

Les langages ramasse-miettes sont intrinsèquement moins efficaces, a déclaré Lerche. Le ramasse-miettes est un moyen courant d'automatiser la gestion de la mémoire et fonctionne en identifiant les objets qui sont hors de portée et en libérant leur mémoire. Mais, « si nous voulons atteindre les objectifs de réduction des émissions de carbone, nous devrons écrire la plupart des nouveaux logiciels dans des langages économes en énergie comme C ou Rust.

Rust a une courbe d'apprentissage quelque peu notoire... Nous assistons à son adoption, mais pas partout. », a jouté Lerche qui est par ailleurs ingénieur principal chez AWS.


« Là où je vois Rust se développer le plus, c'est là où il y a un gain de performance surdimensionné, donc les services de base de données à haut volume, également dans les petits environnements limités en ressources comme l'IoT et l'embarqué. Nous ne le voyons pas tant que ça : vous écrivez un back-end pour une application JavaScript. »

Le problème est que coder en Rust est difficile. L'une des raisons pour lesquelles des langages comme Java, JavaScript et Python ont été si largement adoptés est que les programmeurs peuvent devenir plus rapidement productifs. C'est donc l'éléphant dans la pièce, « la fameuse courbe d'apprentissage », a déclaré Miller. Dans une enquête récente, parmi les ingénieurs qui ont déclaré ne plus utiliser le langage, 55 % ont cité l'apprentissage et la productivité comme raison de leur abandon. « Les ingénieurs expérimentés ont besoin de trois à six mois d'études soutenues par un expert en la matière avant d'être productifs avec le langage. »

En début d’année, AWS, Huawei, Google, Microsoft et Mozilla se sont associées pour lancer la fondation Rust et se sont engagées à lui consacrer un budget de deux ans à hauteur d'un million de dollars. Ce budget permettra au projet de développer des services, des programmes et des événements qui aideront les responsables du projet Rust à développer le meilleur Rust possible. Ces Big Tech ont été rejoint par Facebook quelques mois plus tard. L'annonce avait été faite par Ashley Williams, Directeur exécutif par intérim de la fondation, le 8 février sur le site Internet de l'organisation.

« Aujourd'hui, au nom de l'équipe de Rust, je suis heureux d'annoncer la création de la Fondation Rust, une nouvelle organisation indépendante à but non lucratif chargée de gérer le langage de programmation et l'écosystème Rust, en mettant l'accent sur le soutien de l'ensemble des responsables qui régissent et développent le projet ». Pour Ashley Williams, Rust est un langage qui donne du pouvoir à tout le monde.

Et vous ?

« Coder en Rust serait difficile », qu'en pensez-vous ?

Utilisez-vous le langage Rust ? Avez-vous essayé de l'apprendre ?

Quel commentaire faites-vous de l'immense adoption de Rust par les Big Tech ?

« Rust doit être adopté par les développeurs pour minimiser l'impact environnemental », qu'en pensez-vous ? Le choix du compilateur ne serait-t-il pas plus interessant ?

Selon vous, la Technologie peut-elle résoudre les problèmes environnementaux ?

Voir aussi :

Programmation : une étude révèle les langages les plus voraces en énergie, Perl, Python et Ruby en tête, C, Rust et C++, les langages les plus verts

Linus Torvalds souligne une bonne avancée du langage Rust dans le développement du noyau Linux, et aurait qualifié le C++ de « langage de m... », après le message de Google

Microsoft, Google, AWS, Huawei et Mozilla s'associent pour créer la Fondation Rust, une organisation à but non lucratif chargée de gérer le langage de programmation

Facebook rejoint AWS, Huawei, Google, Microsoft et Mozilla dans la Fondation Rust, et renforce son équipe Rust par des nouveaux talents

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 23/02/2022 à 7:42
Citation Envoyé par zecreator Voir le message
A la finalité qu'est-ce qui fait un bon développement ? Le langage ou le développeur ?

On peut avoir le langage le plus performant et eco-responsable du Monde, si tu codes comme un barbare, ça s'annule.
Alors peut-être qu'au lieu de nous inventer des langages plus relou chaque année, on devrait commencer par prendre le temps de bien former les développeurs en école.
A peut près tous les gros (Microsoft, Oracle, Mozilla, Apple, Google, ...) qui ont fait la mesure sur leurs applications C++ sont arrivés au même résultat : plus des 2/3 des failles de sécurité critiques sur ces applications sont causées par des erreurs qui sont impossible en Rust "safe". Pourtant elles ne sont pas codées par des charlots ni des débutants et ils ont une vraie politique de revue et d'analyse de sécurité.

Mais un développeur reste un humain faillible, sur une quantité de code significative et complexe, même les meilleurs finissent fatalement par laisser passer des erreurs.
Avoir des développeurs compétents et bien formés, c'est bien mais pas suffisant. Avoir un bon outil qui empêche de faire certaines erreur, c'est aussi une bonne chose. Les deux ne sont pas du tout exclusif.
18  0 
Avatar de bizulk
Membre confirmé https://www.developpez.com
Le 01/12/2021 à 10:48
"De la même façon, l'assembleur produira un binaire généralement plus compact et rapide que le C."

Je t'invite à tenter de concurrencer un compilateur C avec ton source en langage d'assemblage.
15  1 
Avatar de walfrat
Membre émérite https://www.developpez.com
Le 01/12/2021 à 9:21
Combien ça représenterais d'énergie vraiment économisée ?

Combien ça pèserai face au flx stream 4k voir 8k qui saturent nos réseaux ?
14  1 
Avatar de
https://www.developpez.com
Le 01/12/2021 à 8:32
Il est clair que les codes compilés statiquement apportent un gros plus en terme d'usage CPU et d'empreinte mémoire par rapport aux langages interprétés ou compilés à la volée.

Mais il est fort illusoire de croire que les devs JS migrent massivement vers Rust. Et JS est une catastrophe à tout point de vue, pas qu'environnementale.
18  6 
Avatar de
https://www.developpez.com
Le 06/10/2022 à 18:24
Python reste bien plus performant énergétiquement parlant qu'un fichier Excel bourré de macros et de formules circulaires, puisque c'est a cette catégorie d'utilisateurs que ce langage s'adresse.

Ajouté à cela, la plupart des bibliothèques du langage sont des bindings vers des briques codées en C/C++.
14  2 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 06/10/2022 à 18:43
Comme expliqué, par d'autres, Python est censé être un langage de script qui n'est pas fait pour être utilisé directement pour de la performance brute. S'il est utilisé judicieusement dans son domaine, ça n'est pas un problème.

Malheureusement c'est devenu un langage généraliste très utilisé dans la data science et l'IA et souvent par des non-informaticiens pas toujours très au courant des problématiques de performance. Du coup c'est une vraie problématique sur laquelle il faut informer, d'autant que de nos jour où avec le Cloud c'est assez tentant de simplement augmenter la puissance de calcul pour compenser un manque de performances.
14  2 
Avatar de esperanto
Membre émérite https://www.developpez.com
Le 22/02/2022 à 15:14
Donc, l'écologie aujourd'hui, c'est utiliser son pc puissant comme un simple terminal pour se connecter à une machine Azure, avec toute la lourdeur de l'interface Windows 10, lancer un IDE écrit en C# genre Visual Studio... mais programmer en C parce qu'il consomme 3 pour cent de moins que Rust, c'est bien ça?
9  0 
Avatar de smarties
Membre expert https://www.developpez.com
Le 06/10/2022 à 19:28
Avant d'accuser Python, il faudrait agir en amont :
- garder le plus longtemps ses ressources informatique et ne pas renouveler tant que ça ne tombe pas en panne (et on peut généralement réparer)
- mutualiser les ressources, tous les serveurs ne demandent pas 100% de puissance ou de RAM tout le temps !

Python est certes pas très rapide mais il est adossé à plusieurs bibliothèques natives aussi ! Donc quand le programme Python ne fait pas de calcul, il ne doit pas avoir une forte emprunte énergétique.
Dans le milieu scientifique, quelle est l'emprunte de Matlab et de Scilab ?
8  0 
Avatar de
https://www.developpez.com
Le 01/12/2021 à 10:53
Citation Envoyé par vanquish Voir le message
De la même façon, l'assembleur produira un binaire généralement plus compact et rapide que le C.
C'était peut-être vrai aux débuts de l'informatique. Mais avec les processeurs RISC et les architectures matérielles de plus en plus complexes, un compilateur sortira généralement du bytecode mieux optimisé que ce qu'aurait fait un humain en assembleur.
8  1 
Avatar de herr_wann
Membre confirmé https://www.developpez.com
Le 22/02/2022 à 15:41
Tous les 5 ans on tourne la grande roue des langages de programmation.
Cette année c'est tombé sur Rust.

Un langage à la syntaxe hyper compliquée, qui est accessible uniquement pour les "déjà" développeurs.
Pourquoi les langages sont devenus aussi compliqués à installer et à utiliser ? Y a aucune raison pour cela.

Tu m'étonnes que les entreprises manquent de bons développeurs, s'il faut réapprendre un langage tous les 2 ans parce qu'il est devenu tendance.
Ce n'est pas vraiment comme cela que je l'interprète ( jeu de mot pourri inside ). Rust a été conçu comme un C/C++ amélioré afin d'éviter les erreurs les plus fréquentes de gestion de la mémoire et de programmation asynchrone/parallèle, sans impacter les performances. Il est donc apprécié malgré la courbe d'apprentissage un peu raide par les programmeurs système, drivers, jeux vidéo et blockchain. Même si on peut tout faire, ce sont surtout ces domaines où il apporte le plus de valeur ajoutée. Il est donc censé remplacer un langage vieux de 40 ou 50 ans.

De plus il est très simple à installer, il est libre et gratuit, possède de bons utilitaires de gestion de packages, le compilateur est strict mais il apporte une grande aide pour résoudre les problèmes à la compilation et non après.
7  0