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 !

« Choisir Rust est opter pour une meilleure sécurisation des logiciels qu'avec le C, mais une efficacité énergétique et une performance d'exécution que seul le C offre »,
D'après l'équipe AWS

Le , par Patrick Ruiz

153PARTAGES

12  2 
Rust de Mozilla Research est le type de langage de programmation auquel ceux qui écrivent du code pour des systèmes d’entrée/sortie de base (BIOS), des chargeurs d’amorce, des systèmes d’exploitation, etc. portent un intérêt. D’avis d’observateurs avertis, c’est le futur de la programmation système en lieu et place du langage C. En effet, des experts sont d’avis qu’il offre de meilleures garanties de sécurisation des logiciels que le couple C/C++. Chez AWS on est d’avis que choisir Rust pour ses projets de développement c’est ajouter l’efficacité énergétique et la performance d’exécution du C à l’atout sécurité.

En effet, cette étude sur les langages les plus voraces en énergie établit que le langage C offre les meilleures performances sur les axes de l’efficacité énergétique et de la performance d’exécution.


On en vient donc à se poser la question de savoir pourquoi tant de voix s’élèvent pour appeler à la venue d’un successeur au langage C. Il y a seulement que les rapports de chercheurs en sécurité s’enchaînent et ne cessent de mettre le doigt sur l’une des plus grosses tares que les langages C et C++ traînent : les problèmes liés à la gestion de la mémoire – dépassements de mémoire tampon, allocations non libérées, accès à des zones mémoire invalides ou libérées, etc. Les chiffres du dictionnaire Common Vulnerabilities and Exposure (CVE) abondent dans le même sens : 15,9 % des 2288 vulnérabilités qui ont affecté le noyau Linux en 20 ans sont liées à des dépassements de mémoire tampon.

Ryan Levick de Microsoft souligne ces détails dans le cadre de sa présentation et coupe court : « Quels que soient les investissements que les entreprises de la filière du développement de logiciels peuvent mettre sur pied, le fait est que C++ [C] n’est pas par essence un langage fait pour la mise sur pied d’applications sécurisées. » Alex Gaynor – un ex contributeur de l’équipe sécurité du navigateur Firefox – émet un avis similaire : « Le C++ moderne ne nous sauvera pas, car il est moins sécurisé que les nouveaux langages [Rust, Swift]). »


En 2012, Linus Torvalds a déclaré que « il n’y a rien de mieux que le langage C pour le développement de systèmes d’exploitation. » La sortie de Linus Torvalds était antérieure à la publication de la première version stable de Rust – le langage de programmation pressenti comme remplaçant du C sur le terrain du contrôle du hardware. En fait, au moment où Linus s’exprimait, Rust n’en était qu’au stade de l’enfance.


Depuis, son regard sur le langage Rust a changé. En effet, la prise en charge de Rust pour le développement du noyau Linux commence à prendre forme et est vue comme une « une étape importante vers la capacité d'écrire les pilotes dans un langage plus sûr. »

Source : Amazon

Et vous ?

Pourquoi le langage C pourrait encore avoir de longues années devant lui ?
Le C a-t-il vraiment besoin d’un remplaçant en matière de programmation système ?
Le problème avec le C n’est-il pas plutôt le mauvais usage que certains développeurs en font ?
Voyez-vous des firmes comme Intel faire migrer des projets comme l’UEFI vers le Rust ? Doivent-elles plutôt envisager de passer au Rust pour leurs futurs projets ?
Que cache l'immense adoption de Rust par les Big Tech ?

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
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
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.
8  0 
Avatar de smarties
Expert confirmé 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 disedorgue
Expert éminent sénior https://www.developpez.com
Le 07/10/2022 à 21:24
J'aime, java est bien classé et perl est dernier de la classe...

Alors, petite histoire réelle:
La demande au près des dev (java), hasher les mots de passe d'une BDD (environ 120 millions de compte à faire) , résultats: le rendu java mets plus de 4 jours pour faire le boulot en perf sur un env iso prod.
Petit dev en perl (car fait par un non developpeur ) pour faire le même boulot : le rendu se fait en moins de 4 heures sur le même environnement.

Pour le coup, lequel ici à une grosse empreinte carbone ?

Morale: avant d'incriminer un langage ou un autre sur son empreinte carbone, faudrait peut-être voir ce qui se passe entre la chaise et le clavier car bien souvent le problème est plutot là !!!
7  0 
Avatar de Bousk
Rédacteur/Modérateur https://www.developpez.com
Le 28/02/2022 à 14:54
Tous les X ans y'a une nouvelle tentative/percée de "nocode" et des marketteux et business non techniques s'emballent et se voient déjà contrôler parfaitement une machine pour faire leurs tâches.
Ça reste un rêve, et le restera imo. Ne serait-ce que parce que ces mêmes personnes on sait très bien ne sont pas capables d'écrire des specs correctes ce qui ne facilite jamais les développements.
Il existe des langages qui le permettent, et c'est suffisant pour certains, mais c'est pas possible que ça couvre tous les cas.
Je prends ce qui se fait dans le jeu-vidéo : le blueprint de Unreal Engine est formidable, tu peux faire ton jeu entier en BP. Presque tout ce qui est faisable en C++ l'est en BP.
Et certains le font.
Mais ce truc est aussi un puit à performance, et si le projet est un peu gros ou vise un peu de performances, il faudra les réécrire en C++.
C'est aussi pour ça que les frameworks web à la Magento, Joomla, Wordpress etc ont été créés. Et pour avoir un site correct au bout du compte il faut quelqu'un pour les personnaliser.

RDV dans 5 ans pour la prochaine poussée de la lubie nocode.
5  0 
Avatar de GLDavid
Expert confirmé https://www.developpez.com
Le 07/10/2022 à 8:01
Bonjour

Mouais, étude encore une fois qui montre que les langages scriptés ne sont pas supers en performance et donc consomment du CPU inutilement.
Mais, on le sait déjà... Alors, j'ai été programmeur Perl, je dois donc faire une excuse public d'avoir utilisé ce langage parce que j'ai trop pollué ?
Comme dit plus haut, des langages comme Perl ou Python sont de très bons compléments au Shell. Après, leurs librairies étant gigantesques, on peut piocher dedans pour faire des projets plus évolués. C'est là peut être que se trouve l'erreur car on ne regarde pas la performance.
Mais pour moi, l'étude est bidon et joue la 'hype' sur l'écologie pour dénoncer les performances des langages. Dénoncer est une chose, peut être trop fait, remédier ou optimiser en est une autre...

@++
5  0 
Avatar de Guesset
Expert confirmé https://www.developpez.com
Le 07/10/2022 à 12:28
Bonjour,

Il y a des arguments assez classiques de détournement. Cette technique, très utilisée par les hommes politiques, consiste à comparer à pire : "Quand on voit la consommation de xyz on se demande pourquoi s'intéresser à sss", "avant de s'intéresser à sss on ferait mieux de régler le cas de xyz". En général, on prend un pire cas difficile à résoudre et à la limite du domaine pour éviter les retours de manivelles par des experts. Cela présuppose un règlement purement séquentiel des difficultés et donc une hiérarchisation (instauration d'une relation d'ordre dirait un informaticien). D'une part, la hiérarchisation est impossible car nous sommes en multidimensionnel (coûts, domaines, impacts sociétaux etc.). D'autre part, même en informatique le multi-tâche existe, rien n'impose le séquentiel sinon le désir de repousser aux calendes grecques.

Il y a la relativisation, technique, proche, mais qui apparaît plus honnête : "quand on voit que l'empreinte environnementale de production, distribution et recyclage représente 90% on se dit que gagner sur le code est très marginal". Ce qui est gênant dans cette démarche d'élargissement est qu'elle reste restreinte. Supposons, c'est juste une illustration, que le code divise par 2 sa consommation, cela jouera aussi sur la durée de vie de la batterie donc sur les 90 % car, après le goût de la nouveauté (très peu écologique), c'est le coût de remplacement de la batterie qui incite le plus au renouvellement.

Il y a aussi un argument qui fait sourire à propos des langages interprétés : "Ils ne peuvent pas être si mauvais puisque leurs bibliothèques sont écrites en C ou C++". En résumé, ils sont bons là où ils ne sont pas

Nous sommes souvent attaché à un langage plus qu'aux autres pour des raisons objectives mais également subjectives (souvent historiques). C'est pourquoi, il me semble utile de maîtriser plusieurs langages et d'en connaître plus encore (les apprendre, les tester sans nécessairement faire des programmes ambitieux).

Comme je l'ai déjà écrit, oui je radote, les langages qui réussissent sont souvent des langages de formation initiale. C'est un peu dommage que les langages utilisés professionnellement n'aient pas été choisi pour leur adéquation mais pour la disponibilité des compétences économiques.

Pour ma part, j'évite les langages interprétés et intermédiaires (semi-compilés, machines virtuelles...) pour tout projet moyennement ambitieux.

Salutations
7  2