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 !

Microsoft annonce Rust preview pour Windows,
Alors que la comparaison entre Rust et C++ reste un sujet d'actualité

Le , par Bruno

172PARTAGES

14  0 
Microsoft a annoncé Rust preview pour Windows, elle permettra la création d'applications Rust pour le célèbre système d’exploitation de Microsoft en utilisant n'importe quelle API Windows. Avec Rust pour Windows, les développeurs peuvent désormais non seulement utiliser Rust sur Windows, mais aussi développer des applications pour Windows en utilisant Rust. Cependant, s’il y a une question qui revient dans la communauté des développeurs, c’est celle de savoir pourquoi les entreprises et les scientifiques se tournent vers le langage Rust.

Faisant référence à un cours récemment publié par Microsoft sur les premiers pas avec Rust, Miguel de Icaza, ingénieur distingué de Microsoft a tweeté : « le "Rustening" a commencé chez Microsoft ». Ce que la plupart des adeptes de Rust sur Twitter voient comme un signe que l'entreprise augmente encore ses faveurs pour son langage de prédilection. Bien sûr, ce n'est pas la première fois que Microsoft se tourne vers Rust pour gérer les 70 % de vulnérabilités de Microsoft qui, selon l'entreprise, proviennent de l'utilisation du langage de programmation C++, peu sûr pour la mémoire, dans ses logiciels.


La comparaison entre Rust et C++ reste un sujet d'actualité, car ces langages de programmation sont en concurrence dans des domaines comme le développement système et l'embarqué. Du point de vue technique, les deux langages partagent de nombreuses similitudes dans leur syntaxe. Cependant, Rust et C++ présentent des différences significatives. Pour certains analystes, le C++ possède des bases plus solides en ce qui concerne la communauté et les informations générales sur ses principes. En outre, par rapport au C++, Rust est un nouveau venu dans le monde de la programmation, et de nombreux développeurs hésitent à s'y intéresser.

Ce développement ne semble pas être du goût de Linus Torvalds, ingénieur logiciel, créateur principal et développeur du noyau Linux, pour lui, le C++ est un langage horrible, le créateur du noyau Linux n’a d’ailleurs pas hésité à traiter également le C++ de langage de merde. Dans un post publié sur son blog le 14 avril, l’équipe de développement de Google a annoncé qu’elle participe à l'évaluation du langage Rust pour le développement du noyau Linux. Suite à cette déclaration, Linus Torvalds a déclaré lors d’une interview que des discussions sur le sujet seraient beaucoup plus importantes qu'un long post de Google sur le langage. Interrogé sur la suggestion d'un internaute qui a indiqué que, « la solution ici est simple : il suffit d'utiliser C++ au lieu de Rust », Linus Torvalds n'a pas pu se retenir et aurait traité le C++ de « langage de merde ».

Si pour certains internautes, les termes utilisés par Linus Torvalds pour qualifier le C++ sont compréhensibles, pour d’autres par contre, Linus serait simplement rancunier vis-à-vis du C++. « Quand le mec dit que le C est mieux que le C++ pour son kernel pour ensuite nous répondre que le C++ est un langage casse-gueule niveau sécurité, c'est l’hôpital qui se moque de la charité. J'ai juste l'impression que Linus a une dent contre le C++, sans jamais donner un seul argument autre qu'un bon ", c'est de la merde" », a déclaré un membre actif du club developpez.com connu sur le pseudonyme intelligide.

C++ est un langage de programmation compilé permettant la programmation sous de multiples paradigmes, dont la programmation procédurale, la programmation orientée objet et la programmation générique. Ses bonnes performances, et sa compatibilité avec le C en font un des langages de programmation les plus utilisés dans les applications où la performance est critique. C++ serait même le langage de programmation qui a permis de créer des systèmes d'exploitation comme Microsoft Windows. Si aujourd’hui, Microsoft se tourne vers le langage Rust, une question reste au bout des lèves.

Pourquoi les entreprises se tournent vers Rust ?

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 d'un million de dollars pour deux ans. 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. Google a également annoncé que l'Android Open Source Project (AOSP) prendra désormais en charge le langage Rust pour le développement de son système d’exploitation mobile. « Outre les langages à mémoire sécurisée comme Kotlin et Java, nous sommes heureux d'annoncer que le projet Android Open Source prend désormais en charge le langage de programmation Rust pour le développement du système d'exploitation Android », a déclaré Google sur son blog.

Google a récemment déclaré que : « 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. Et ce, malgré les efforts considérables déployés par l'entreprise et d'autres contributeurs au projet Open Source Android, pour investir ou inventer diverses technologies, notamment l'AddressSanitizer, des allocateurs de mémoire améliorés et de nombreux fuzzers et autres outils de vérification du code ».

Pour Ashley Williams, Directeur exécutif par intérim de la fondation Rust, le langage « donne du pouvoir » à tout le monde, mais surtout aux gens qui pensent que la programmation système n'est pas pour eux. « L'une des forces motrices les plus puissantes du projet Rust est la croyance simultanée dans le pouvoir de la programmation système et l'engagement à faire en sorte que ce pouvoir soit utilisable par tous », a-t-il déclaré lors de son discours d’ouverture de la RustConf 2020.


Selon Shane Miller, responsable de l'équipe Rust chez AWS et également professeur d'université, la raison pour laquelle les ingénieurs choisissent Rust pour créer des services est que cela leur permet d'offrir aux clients des expériences qui répondent à leurs exigences de qualité et de sécurité beaucoup plus rapidement et à moindre coût.

Le mois dernier, le tout premier support permettant l'utilisation du langage de programmation Rust dans le noyau Linux est apparu dans l'arbre Linux-Next pour des tests plus étendus avant son inclusion éventuelle dans le noyau principal. Plus tôt ce mois, Miguel Ojeda, développeur du noyau Linux, a lancé une proposition de RFC (Request For Comments) sur la liste de diffusion du noyau Linux.

Et vous ?

Que pense-vous de l'annonce de Rust preview pour Windows ?

À votre avis, l'adoption du langage Rust par les grandes entreprises aura-t-elle un impact sur les autres langages comme le C++ ?

Êtes-vous prêt à migrer vers le langage Rust ?

Voir aussi :

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

Linus Torvalds : le "C++ est un langage horrible", en justifiant le choix du C pour le système de gestion de version Git

Google annonce la prise en charge du langage Rust pour le développement d'Android, l'intérêt est de résoudre les problèmes de sécurité de la mémoire

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

Avatar de abriotde
Membre chevronné https://www.developpez.com
Le 26/04/2021 à 17:40
Mais non, quand Linus Torwarld dis que C++ est de la merde, il a des arguments qui sont largement débattu dans des fils de discutions. Il dis ça pour écourter les arguments des opposant quand on a déjà fais le tour de la question et qu'il a tranché.

1) Pour faire simple, Linus ne dis pas que C++ est un langage de merde. Mais que C++ pour une application critique comme un noyau est un langage de merde.
2) Il dit ça car en C++ on ne sais pas aussi bien qu'avec C ce que fais le système et surtout quand. C'est vrai pour les structures et pour l'ordre des destructeurs... C'est principalement vrai sur les smart-pointeur que Linus a dans sa ligne de mire. C'est magique mais on ne sait pas quand précisément il libère la mémoire ni dans quel ordre ni quand il va utiliser du processeur.
3) Il n'aime par C++ car il est extrêmement lourd a tous les points de vue. Sa documentation est grosse (et non libre de droit mais cela ne gêne pas Linus). La gestion du préprocesseur est très complexe...

C++ reste un excellent langage, mais moins pour les système très critiques. C'est surtout que Rust est indéniablement plus sûr et meilleur a tout point de vue. Rust fais au minimum aussi bien que C++ mais de manière plus joli et plus propre. Et d'un point de vue sécurité Rust est un cran au dessus. Dire que C++ est capable d'être sécurisé c'est un peu comme dire regardez la Ford T avait la boite automatique, je vois pas l'intérêt de la boite automatique complexe d'une Renault Clio.
7  3 
Avatar de Astraya
Membre chevronné https://www.developpez.com
Le 26/04/2021 à 20:51
Citation Envoyé par abriotde Voir le message
Mais non, quand Linus Torwarld dis que C++ est de la merde, il a des arguments qui sont largement débattu dans des fils de discutions. Il dis ça pour écourter les arguments des opposant quand on a déjà fais le tour de la question et qu'il a tranché.

1) Pour faire simple, Linus ne dis pas que C++ est un langage de merde. Mais que C++ pour une application critique comme un noyau est un langage de merde.
2) Il dit ça car en C++ on ne sais pas aussi bien qu'avec C ce que fais le système et surtout quand. C'est vrai pour les structures et pour l'ordre des destructeurs... C'est principalement vrai sur les smart-pointeur que Linus a dans sa ligne de mire. C'est magique mais on ne sait pas quand précisément il libère la mémoire ni dans quel ordre ni quand il va utiliser du processeur.
3) Il n'aime par C++ car il est extrêmement lourd a tous les points de vue. Sa documentation est grosse (et non libre de droit mais cela ne gêne pas Linus). La gestion du préprocesseur est très complexe...

C++ reste un excellent langage, mais moins pour les système très critiques. C'est surtout que Rust est indéniablement plus sûr et meilleur a tout point de vue. Rust fais au minimum aussi bien que C++ mais de manière plus joli et plus propre. Et d'un point de vue sécurité Rust est un cran au dessus. Dire que C++ est capable d'être sécurisé c'est un peu comme dire regardez la Ford T avait la boite automatique, je vois pas l'intérêt de la boite automatique complexe d'une Renault Clio.
Ordre des destructeurs: https://isocpp.org/wiki/faq/dtors#or...ors-for-locals
Libération de la mémoire: comme en C, sauf que new appelle le constructeur après le malloc sur la mémoire allouée.
Il y a rien de magique.
Depuis quand la taille de la documentation est un point négatif ??? Le Pré processeur C++ ajoute des tokens supplémentaires mais n'est pas si différent de C. Pour preuve un include de fichier .h avec du C fonctionne très bien.
Rust n'est pas au dessus de C++. Rust est bien meilleur que C++ sur la sécurité Oui, sur la productivité j'ai des doutes avec le "fight against compiler", le manque de librairie et les templates et autres choses faites à la compilation.
5  1 
Avatar de Axel Mattauch
Membre régulier https://www.developpez.com
Le 01/05/2021 à 13:01
Si aujourd’hui, Microsoft se tourne vers le langage Rust, une question reste au bout des lèves: Pourquoi les entreprises se tournent [-elles] vers Rust ?
Si je lis bien: l'argument est
les défauts de sécurité de la mémoire
que présentent d'autres langages.

Vu de Sirius (ou similaire) ce n'est pas la syntaxe du langage qui va opposer Rust à C++.
Ce ne sont apparemment pas non plus les performances comparées.

J'en déduis que C++ serait {un peu, beaucoup, notablement plus} vulnérable que Rust? Voire que C++ l'est et Rust pas du tout? Le savoir faire du programmeur n'a pas d'impact sur ce problème?

Et aussi: quel C++? Et quels codes de référence?
Nul besoin d'être spécialiste pour postuler que du code écrit p.e. il y a 30 ans en C++ ne bénéficie pas des avancées conceptuelles et techniques d'un C++20 ou RUST2020.

À votre avis, l'adoption du langage Rust par les grandes entreprises aura-t-elle un impact sur les autres langages comme le C++ ?
A voir. Ça peut être pour le meilleur ou pas. Ça dépendra des garanties d'ouverture de Rust. Le risque étant que quelques T.REX ne noyautent le langage par des bibliothèques propriétaires.
C'est une vraie question, car apparemment Rust se positionne dans le même créneau que C++ ou peu s'en faut. Donc il y a risque de casse.
2  0 
Avatar de ManPaq
Membre actif https://www.developpez.com
Le 04/05/2021 à 15:57
c et c++ ont des normes ansi et iso à la différence de Rust (malgrès les tonnes de sous).
1  0 
Avatar de moldavi
Membre extrêmement actif https://www.developpez.com
Le 28/04/2021 à 0:40
Citation Envoyé par abriotde Voir le message


C'est surtout que Rust est indéniablement plus sûr et meilleur a tout point de vue. Rust fais au minimum aussi bien que C++ mais de manière plus joli et plus propre. Et d'un point de vue sécurité Rust est un cran au dessus. Dire que C++ est capable d'être sécurisé c'est un peu comme dire regardez la Ford T avait la boite automatique, je vois pas l'intérêt de la boite automatique complexe d'une Renault Clio.
J'aime bien le phrases comme "Rust est indéniablement plus sûr et meilleur". Je ne sais pas pourquoi, mais je n'y crois pas une seule seconde. C'es trop marketing, je pense.
2  2 
Avatar de fdecode
Candidat au Club https://www.developpez.com
Le 10/05/2021 à 14:21
Citation Envoyé par moldavi Voir le message
J'aime bien le phrases comme "Rust est indéniablement plus sûr et meilleur". Je ne sais pas pourquoi, mais je n'y crois pas une seule seconde. C'es trop marketing, je pense.
En tant que développeur amateur, je change de langage comme de chemise et en fonction de ce que cela m'apporte.
La chronologie de ceux que j'ai vraiment utilisés: C, C++, java, scala, rust depuis 4 ans. Et quand je trouverai mieux, je changerai de nouveau de langage.

Et pour l'instant, effectivement, rust m'apporte exactement ce que j'ai recherché tout ce temps. Du haut niveau, des performances, et une vraie sécurité de développement.
J'en ai été convaincu suite à mon premier projet en rust: 1 mois d'apprentissage, puis développement (from scratch) d'un environnement multithreadé modulaire pour tester des algos de R&D qu'on a greffé à un simulateur de la boite.
Cela s'est fait sans problème de gestion de la mémoire, et avec quasiment aucun problème de synchronicité des données partagées (induit par ma structure de donnée, mais facile à identifier et à corriger).
Évidemment, les contrôles à la compilation ne font pas tout, mais cela aide grandement.

J'avais aimé dans scala l’esthétique et la concision du langage, le retour au fonctionnel, les capacités de parallélisme bien encadrées, la programmation par traits, le mécanisme de macros. Je n'aimais pas la machinerie java.
J'ai retrouvé une bonne partie de cela dans rust et bien plus (le système de macro permet des choses étonnantes et fort utiles), avec une compilation native et un accès direct et sécurisé à la mémoire.

Alors, oui, je me réjouis de l'investissement grandissant des GAFAM dans rust. Je développe principalement sous windows, et je vais certainement m'intéresser à cette crate de microsoft.
0  0 
Avatar de fdecode
Candidat au Club https://www.developpez.com
Le 10/05/2021 à 15:36
Citation Envoyé par Astraya Voir le message
sur la productivité j'ai des doutes avec le "fight against compiler", le manque de librairie et les templates et autres choses faites à la compilation.
Le compiler rust est un maître dur mais pédagogue.
Je ne sais pas quelle est votre expérience en rust, mais en ce qui me concerne, je ne perds plus beaucoup de temps dans la phase de compilation, ayant appris certains réflexes.

Bien entendu, le choix de librairies est moindre qu'en c++ ou en java.
Il y a une certaine facilité toutefois à wrapper des codes C voire c++ (je l'ai fait moi même), et de nombreuses crates font ce travail pour les librairies C/C++ classiques.
Je favorise les implémentations en pur rust dans mes projets. Même en faisant cela, je ne me suis pas retrouvé en manque de librairies.
Et une des richesses des crates ce sont les macros qui permettent de nombreuses dérivation à la compilation (voir l'exemple de la crate serde pour la sérialisation automatique).

Je ne comprends pas votre remarque sur les templates, compte tenu des capacités de généricité de rust (qui vont déjà très loin selon moi en termes de conditionnement des variables de type dans le typage): une grande partie de la librairie standard et des crates de contributeurs est définie de manière générique, avec des implémentations conditionnelles.
Par ailleurs, on dispose désormais de fonctionnalités pour paramétrer le typage par des paramètres constants, et ces fonctionnalités continuent à se développer.
0  0