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

138PARTAGES

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-le nous !

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.
16  0 
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 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 
Avatar de eclesia
Rédacteur https://www.developpez.com
Le 22/02/2022 à 16:09
Citation Envoyé par zecreator Voir le message
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.
C'est vrai que Rust n'est pas simple, mais reste plus simple que du C/C++ et encore bien plus si tu ajoutes les outils qui vont avec.
Pour moi qui vient du monde Java, je n'ai jamais réussi a vraiment comprendre la logique et toute la misère autour des templates,génériques,preprocessing de C/C++
mais Rust je n'ai pas eu de soucis, c'est tellement plus carré.

Pour dire vrai, c'est le seul language que je trouve supérieur à Java (j'inclus l'environnement).
J'ai commencé en Java 1.4 il y a quoi presque 15ans ? c'est mon premier vrai changement de language.

Faire un build, lancer des tests, gérer les dépendances, la génération de la doc, le déploiement... bonne chance avec cmake, ant ou autre.
l'outil Cargo est un petit bijou, et surtout tous les projets Rust sont dessus, c'est une sorte de Maven+++.

Bref ce n'est que mon avis, Rust est un bon cheval.
4  0 
Avatar de
https://www.developpez.com
Le 24/02/2022 à 3:14
Citation Envoyé par zecreator
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.
Comment "bien prendre le temps de former des développeurs en école" si la matière évolue chaque année et "se révolutionne" en moyenne tous les 5 ans ?

Vous pouvez avoir les meilleurs profs du monde et des moyens considérables à disposition, "bien prendre le temps de former" demeure une illusion.

D'ailleurs, ce n'est pas dans les écoles que se forment les développeurs. Il est démontré que les meilleurs d'entre eux sont majoritairement des autodidactes aux capacités d'adaptation hors normes.

L'école, c'est surtout pour avoir des diplômes.
4  0 
Avatar de AoCannaille
Expert confirmé https://www.developpez.com
Le 24/02/2022 à 14:36
Citation Envoyé par zecreator Voir le message

C'est juste que dans l'offre des langages proposée aujourd'hui, aucun d'entre eux ne crée de vraie vocation
Les langages sont des outils pour faire quelque chose. Je n'ai jamais entendu dire un ébéniste "Cette scie circulaire m'a créée une vocation". Non, la vocation, c'est de faire des meubles beaux/pratiques/durables en fonction du contexte.

C'est pareil pour le logiciel, on veut faire des logiciels beaux/utiles/durables en fonction du contexte.

être passionné par un langage, c'est comme être passionné par un tournevis, c'est absurde, et c'est se limiter inutilement le champs des possibles.

Et surtout, pour boucler la métaphore filée, c'est se diriger tout droit sur le fameux adage : "Quand le seul outils qu'on maitrise c'est un marteau, alors tous les problèmes ressemblent à des clous".

Et si tu n'es pas anglophone, bon courage pour comprendre les tutos.
Je connais une communauté géniale avec un corpus de tutoriel francophone incroyable, je te conseille d'y faire un tour : https://www.developpez.net
4  0 
Avatar de thamn
Membre actif https://www.developpez.com
Le 28/02/2022 à 20:31
Citation Envoyé par zecreator Voir le message
Les projets dont tu parles, avec des millions de lignes, difficiles à maintenir sans une équipe de plusieurs devs, c'est sans doute aussi un coût énorme pour les entreprises.
Je pense que tu comprends que ces projets n'on pas dans leur specifications un point qui indique une nécessite d'avoir des millions de lignes, si ils finissent avec des millions de lignes c'est par necessite et pas un objectif en soit (j'ai du mal a croire que je suis en train d'expliquer ca mais bon . Le no-code comme tu appelle ça (ce qui est tentancieux puisque si tu le dessine ou que tu l'ecrive, tu manipule toujours un moyen de communiquer avec un automate) est déjà utilise pour pas mal d'application (par exemple, scripting dans le jeux video, edition de VFX toujours dans le JV, generation procedurale, ou meme musique / video avec Max4Live, Reaktor, PureData), et ce n'est pas magique, tous ce que tu n'as pas a faire toi meme pour que ca tourne correctement c'est parce que quelqu'un l'a deja fait pour toi.
De même que les programmes capable de générer du code ne font rien de magique, et comme toujours avec l'apprentissage statistique, tu a enormement de possibilite de variation importante entre le resultat que tu espere et le resultat qui tu obtiendras, alors tu pense vraiment qu'on va bien vouloir faire des plans sur la cometes en esperant que l'IA qui va generer le code dont tu as besoin va effectivement generer du code qui te peteras pas dans les doigts?

Ce no code est un vieux serpent de mer qui ne marche qu'au oreilles des gens qui ne comprenne rien au difficultés de la programmation. Encore une fois, torcher un programme qui a l'air de faire ce qu'il faut c'est possible rapidement, faire un programme performant qui gère bien les erreurs et est fiable, c'est une autre affaire. Mais je pense que ça demande évidement de le vivre pour le comprendre j'imagine.
De meme, si c'etait possible d'avoir une recette miracle pour avoir des programmes qui ont toutes les qualites qu'on attend d'un programme, tu pense bien qu'on aurait automatise ca.. Enfin apres si t'as une vrai solution, moi je suis flemard dont je sera i preneur si tu trouvais une recette magique
4  0 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 22/02/2022 à 18:08
Citation Envoyé par zecreator Voir le message
Tous les 5 ans on tourne la grande roue des langages de programmation.
Cette année c'est tombé sur Rust.
C'est pas parce qu'il y a un nouveau langage disponible, que qui que ce soit va imposer qu'on l'utilise partout.

Citation Envoyé par zecreator Voir le message
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.
Rust est en effet complexe a apprendre, mais au contraire, quand on le connait, il est très facile a installer et utiliser grâce aux divers outils (build, dépendances, test, doc, ...) très bien intégrés.
Après si tu veux un langage ultra simple que les non développeurs peuvent apprendre en un rien de temps, en effet Rust ne sera certainement pas ton premier choix, et ça tombe bien, il y a Python ou Go pour ça.

Citation Envoyé par zecreator Voir le message
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.
Je connais pas d'entreprise qui marchent comme ça. On ne change pas de langage en fonction du sens du vent, ça n’empêche pas de se renseigner sur l'existant pour ne pas vivre dans le passé non plus.

Citation Envoyé par esperanto Voir le message
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?
Heu non, l'écologie, c'est d'utiliser une solution performante quand on a besoin de performance et ne pas compenser une solution logiciel mal optimisée en utilisant des solution matérielles surdimensionnées. Ça peut malheureusement être tentent de nos jours avec les solutions cloud avec lesquelles c'est facile d'obtenir immédiatement plus de puissance de calcul.
Ça ne veut pas non plus dire qu'il faut utiliser Rust ou C partout, juste là ou ça fait sens. Les performances de calcul brutes ne sont pas toujours le facteur le plus important.
3  0 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 24/02/2022 à 1:21
Citation Envoyé par denisys Voir le message
Non !!!
C’est pour cela que tu devrais développer une calculatrice, en langage : Rust
Parce cette calculatrice, te permettrais de comprendre qu’il y a une différence entre :
3 %
Et
0.03 %
!!
Pourtant, même si la pertinence des données de ce tableau est très discutable, la lecture qu'en fait zecreator est bien la bonne. Le langage C a l'indice 1 et Rust l'indice 1.03, ce qui fait bien 3% d'écart. Pour le coup c'est toi qui fait erreur, et là c'est une erreur de calcul, du type contre lequel Rust n'aide pas vraiment.

Citation Envoyé par zecreator Voir le message
Donc, sommes-nous certains que continuer à créer des langages de plus en plus complexes et de continuer à facturer très chères les prestations de dev aux entreprises, soient la bonne direction à prendre ?
Encore une fois il y a divers besoins avec diverses solutions :
  • Si on a besoin de langage accessibles aux débutants on a Python, Lua, Basic, ...
  • Si on a besoin d'un peu plus mais pas forcément besoin de développeurs formés aux subtilités du bas niveau, on partira plutôt sur Go, Java, C#...
  • Pour de la programmation système (pour des composant qui requièrent de la performance et/ou de la maitrise du bas niveau) par des gens avec un minimum de connaissances en informatique, on a C, C++, Ada ou Rust.
4  1 
Avatar de walfrat
Membre chevronné https://www.developpez.com
Le 24/02/2022 à 14:47
Citation Envoyé par zecreator Voir le message
Sincèrement, je n'en peux plus de ces environnements de programmation qui s'installent à partir du Terminal en X lignes de commandes qui foirent 1 fois sur 2 à cause d'une Lib qui n'est pas à jour ou d'un module en version beta dont le dev est totalement abandonné. Sans compter qu'il faut souvent recompiler les binaires depuis les sources pour que ça fonctionne.

Comment voulez-vous que des débutants soient motivés quand déjà l'installation demande le niveau de connaissance d'un ingénieur informatique. C'est tout le problème des outils codés par des développeurs pour des développeurs. Y a plus aucun raisonnement.

Hé Ho, on est en 2022, c'est fini l'époque du terminal. Bientôt on va revenir à la disquette et au disque-dur en cire d'abeille.
Ahah, le sujet ici c'est d'écrire des programmes qui sont non seulement sécurisés du point de vue des attaques mais aussi de la stabilité du programme dans le cadre de la programmation système.

La programmation système, c'est juste pas abordable par un débutant. Il faut déjà connaître comment fonctionne le système pour lequel tu développes.
De plus, que ce soit en Rust ou en C mais même aussi en Java,C#,PHP, tout ce que tu veux, faire une application complexe mais parfaitement stable et performante, ce n'est pas à la portée d'un débutant.

Voir le message
Et pourtant des gamins qui ne sont même pas encore au lycée parviennent à mettre en défaut des infrastructures, systèmes et logiciels "si savamment" conçus par les personnes dont vous parlez.
Ces gamins, pour la quasi totalité, télécharge un outil, il entre un site web, il clic sur un bouton et c'est tout. Et c'est pas des gamins qui ont coder le fameux outil qui a été téléchargé.

J'ai du mal a comprendre comment sur un forum de devs, on est pas foutu capable de réaliser cela.


C'est pareil pour le logiciel, on veut faire des logiciels beaux/utiles/durable en fonction du contexte.
"Vous êtes trop cher monsieurs, au revoir".
4  1