Rust 0.8 disponible en téléchargement
L'alternative au C/C++ revient avec environ 2 200 changements
Le 2013-09-29 06:15:27, par Stéphane le calme, Chroniqueur Actualités
Rust est un langage structuré en blocs avec un accent particulier mis sur la sécurité et la performance. Visuellement, il ressemble à un langage de la famille du langage C mais diffère de manière significative dans les détails syntaxiques et la sémantique. Ceci vient certainement du fait qu'il a été développé comme alternative au C/C++.
La communauté Rust, de concert avec la fondation Mozilla, annonce l'arrivée de la version 0.8 du langage ainsi qu'une mise à jour de ses outils et de son compilateur.
La version 0.8 apporte près de 2 200 modifications au langage parmi lesquelles un changement dans la syntaxe de la boucle « for » qui introduit désormais les objets dans les itérations.
Une nouvelle macro est aussi apportée aux chaînes de caractères ; « format! » ambitionne de remplacer « fmt! » pour plusieurs raisons, notamment un gain de performance. Ce changement signifierait aussi que les macros basées sur « fmt! » migreront vers « format! » rapidement.
Le runtime de Rust précédemment écrit en C++ a été réécrit en Rust afin de faciliter un nouveau sous-système E/S qui intègre les boucles d'événements E/S qui ne feront pas planter le planificateur de tâches. Le système est temporairement situé dans « std::rt::io ».
Rust 0.8 est disponible sur Windows Linux et OS X. Cette version devrait être considérée comme une version alpha et ne devrait donc pas être utilisée en environnement de production.
Télécharger Rust 0.8
Source : Mozilla
Et vous ?
Avez-vous déjà utilisé Rust ? Qu'en pensez-vous ?
La communauté Rust, de concert avec la fondation Mozilla, annonce l'arrivée de la version 0.8 du langage ainsi qu'une mise à jour de ses outils et de son compilateur.
La version 0.8 apporte près de 2 200 modifications au langage parmi lesquelles un changement dans la syntaxe de la boucle « for » qui introduit désormais les objets dans les itérations.
Une nouvelle macro est aussi apportée aux chaînes de caractères ; « format! » ambitionne de remplacer « fmt! » pour plusieurs raisons, notamment un gain de performance. Ce changement signifierait aussi que les macros basées sur « fmt! » migreront vers « format! » rapidement.
Le runtime de Rust précédemment écrit en C++ a été réécrit en Rust afin de faciliter un nouveau sous-système E/S qui intègre les boucles d'événements E/S qui ne feront pas planter le planificateur de tâches. Le système est temporairement situé dans « std::rt::io ».
Rust 0.8 est disponible sur Windows Linux et OS X. Cette version devrait être considérée comme une version alpha et ne devrait donc pas être utilisée en environnement de production.
Source : Mozilla
Et vous ?
-
DonQuicheExpert confirméTu peux me donner le nom de tes produits, afin que je les évite stp ?
La sécurité devrait être une affaire d'outils et de méthodologie, pas d'égo. L'être humain est faillible.Quels langages modernes ? On croit rêver en lisant ça - c'est tout juste si les programmeurs C/C++ ne sont pas traités de vieux croutons - tout en leur reconnaissant quand même l'efficacité et le contrôle de bas niveau !
Oui, je pense qu'on peut dire que le C++ est un vieux schnoque. Mais encore nécessaire pour l'instant.
Ce qui n'est pas forcément le cas de ses utilisateurs, le C++ étant encore enseigné dans de nombreux endroits. Pourquoi en faire une affaire personnelle ?le 25/05/2015 à 7:48 -
_skipExpert éminentJe ne comprends jamais les réactions négatives dès qu'on parle d'un nouveau langage, surtout quand celui-ci s'attaque à de vrais problèmes. C'est bizarrement très récurrent sur DVP, que ce soit sur des alternatives au javascript (typescript, dart), aux langages pour la jvm (ceylon, kotlin, fantom) ou au C++ et consors (Rust ou Go).
Généralement quand un langage propose plus de sécurité on a droit à un "C'est au développeur de savoir ce qu'il fait". Il serait peut être temps de stopper une fois pour toute avec cet argument de merde parce qu'aucun mécanisme n'est là pour dispenser le développeur de savoir ce qu'il fait, ce sont des aides, des outils. On peut tout ramener à soi et estimer qu'on a pas besoin de ces facilités faites pour les tocards, mais dans la pratique on se retrouve immanquablement dans des équipes composées de différentes personnes de niveaux parfois inégaux et là, il y pas de raison de ne pas être preneur de toutes les vérifications et sécurités qu'on peut nous proposer, surtout quand elles sont gratuites et automatiques.le 25/05/2015 à 9:52 -
UtherExpert éminent séniorRust n'est pas vraiment en retard sur les performance. Il est basé sur LLVM sur lequel il se repose très lourdement pour l'optimisation ce qui lui permet d'avoir de plutôt bon résultats.
Après dire directement que les performance de Rust sont de 85% celle de C ne veux rien dire, il y a plein de situation particulières très différentes qui peuvent favoriser l'un ou l'autre. Et surtout, il faut voir que sur de sur des micro-benchmarks de langages, il est très facile d'avoir de légères différences involontaires qui ont un impact significatif. Ces derniers temps, j'ai vu beaucoup de personnes annoncer qu'un langage est beaucoup plus rapide/lent que ses concurrents avec un micro-benchmark réalisé par leur soin à l'appui, mais dès que les connaisseurs des langages en défaut se penchaient sur les détails du benchmark, on trouvait rapidement l'explication et finissait avec des résultats très proches.
Il s'avère qu'au final, s'ils sont bien écrits et travaillent dans des conditions identiques, les langages a visée système, compilés en binaire, statiquement typés et sans GC (C++, D, Nim, Rust) sont tous très rapides et ont des performance à peu près similaires. Un peu après viennent les langages compilés en binaire et statiquement typés, mais sans visée système et avec un GC comme le GO. Encore après se placent généralement les langages a VM avec GC comme C# / Java. Puis les langages dynamiquement typés comme Javascript / Ruby.
Mais là encore ça n'est que appréciation globale, si on cherche des cas particuliers, on va évidement facilement trouver des cas très particuliers ou un langage va sur-performer et inversement.
Ne t'inquiète pas Mozilla investit encore énormément plus de moyens plus dans l'amélioration de Firefox que dans Rust.
Rust et Servo sont juste des projets de leur partie R&D, que toute entreprise qui envisage d'avoir un avenir ne doit pas négliger.le 13/04/2015 à 0:36 -
DonQuicheExpert confirméSi ton programme Rust compile (en deux secondes et non pas en deux minutes contrairement au C++), alors tu es sûr que ton modèle de concurrence et ta gestion de la mémoire sont correctes (*). Y compris si certains de tes stagiaires ou programmeurs juniors ont mis leurs mains dedans ! A l'heure où les gains de performances se font sur le parallélisme de masse, c'est un très gros avantage.
Ce ne sera jamais le cas avec le C++ et ses pointeurs qui prolifèrent, au mieux tu peux t'arranger pour utiliser aussi souvent que possible des constructions sûres que peu savent correctement utiliser et dont tu sortiras pourtant régulièrement et dont tu ne pourras pas détecter et inspecter les violations (je te laisse chercher et passer en revue tous les pointeurs de ton code et examiner à la main tous les graphes d'appels conduisant à des appels asynchrones).
Clamer que le C++ 11 résout les problèmes de concurrence et de productivité, et qu'il n'y a rien à attendre des nouveaux langages, c'est comme clamer que le minitel rend Internet inutile. Quand le C++ est-il devenu une religion ?!
En même temps si un dév comprend comment gérer la mémoire manuellement en C++, il comprend tout de suite ce que Rust attend de lui. Et s'il ne le comprenait pas, mieux vaut que Rust le lui enseigne plutôt que de le laisser semer le champ de mines en C++.le 19/05/2015 à 13:55 -
white_tentacleMembre émériteOula, désolé si tu as mal pris mon propos. C’est probablement lié à mon historique personnel (j’ai fait du model-checking sur systèmes asynchrones, quand on me parle de systèmes concurrents « sûrs », ma réaction primaire est « j’ai des doutes, de manière générale on ne peut rien garantir sans faire une grosse exploration bourrine de tous les états »). Et je suis assez enthousiaste vis à vis de Rust en fait. Je pense simplement qu’il ne faut pas promettre plus que ce qui est effectivement tenable (en particulier, ton premier message semblait laisser penser que le modèle de concurrence de Rust empêchait tout blocage, d’où mon étonnement).
Si ça peut te rassurer sur le bien que je pense de Rust, il se trouve que quelque soit le langage (en général c’est C++), chaque fois que je dois faire du multithread, je conçois ça comme un ensemble de tâches asynchrones communiquant par envoi de message et transfert de données. Donc typiquement le modèle choisi par Rust. le 20/05/2015 à 10:53 -
UtherExpert éminent séniorMême s'ils continuent d'évoluer, C et C++ sont clairement plus ancien, et ont donc un historique qui va avec. Ce n'est pas insulter les utilisateur du langage que de le relever.
Une bibliothèque C++ ne résoudra pas tous les problèmes : certains sont inhérents au langage lui même. Rust garantit la sécurité mémoire à la compilation, ce qui est impossible en C++, sans casser sa compatibilité.
Une bibliothèque a souvent un coût à l'exécution et les cas d'erreur sont traités a l’exécution.
Tu m'expliqueras pourquoi dans toutes les applications les plus contrôlées au monde avec des système de revue, on découvre pourtant régulièrement des failles de sécurités. Et ce n'est pas une insulte à tes talents de programmeur, que de dire que je suis certain que tes programmes ne sont certainement pas si sur que tu le penses.
Je pense que c'est surtout que pas mal de gens ont une approche conservatrice : il voient leur langage fétiche comme un aboutissement et n'imaginent pas qu'il y en ai besoin d'autre.
Il voient un autre langage comme une remise en cause de ce qu'ils ont fait avec leur langage habituel ou craignent à tort qu'il rende le leur obsolète et de se retrouver a devoir réapprendre un nouveau langage et perdre le savoir faire qu'il ont capitalisé.le 25/05/2015 à 11:44 -
esperantoMembre émériteExcusez-moi mais j'ai comme l'impression que dans l'esprit de certains, tout ce qui a des accolades "ressemble à du C". Soit à peu près tous les langages récents, à l'exception peut-être de Python et Ruby.
Moi ce langage me fait plus penser à Perl 6 (le nouveau, avec son typage fort), avec un usage massif des fonctionnelles (oui en plus maintenant pour être plus moderne faut dire closures...) à la Ruby. Ou au niveau de la syntaxe... d'abord un brin de Caml, et puis après tout, tiens, ça me fait penser à Go tout à coup, et justement, ça faisait un bail qu'on n'en entendait plus parler. De là à penser que les deux langages vont subir le même destin...
Un effet positif quand même : il semble que les concepteurs de langages aient enfin compris qu'entre un C/C++ qui permet de faire n'importe quoi avec les pointeurs et un langage parano à la Ada, il y a de la place pour un vrai langage compilé qui soit ni trop permissif ni pas assez. En plus il y a de la demande, comme le prouvent des projets comme GCJ (compilateur java natif): plutôt que de s'obstiner avec une machine virtuelle alors qu'on sait que 90% des utilisateurs sont sous Windows (c'est encore plus criant avec C#), plutôt que le "write once run everywhere" pourquoi ne pas promouvoir le "write once, build everywhere" comme par exemple le projet Lazarus?le 03/10/2013 à 10:10 -
tomlevRédacteur/Modérateurle 19/01/2015 à 10:34
-
imperioMembre émériteEtant donné le nombre de personnes qui soutiennent ce projet, je pense que ton avis n'est pas très éclairé et encore moins représentatif de la réalité...
Envoyé par patmaba le 10/04/2015 à 10:24 -
BugFactoryMembre chevronnéJustement, Rust est un outil pour y parvenir.le 10/04/2015 à 13:28