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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Actualités Discussion :

La Fondation Mozilla publie Rust 0.1

  1. #41
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2008
    Messages : 1 505
    Points : 2 795
    Points
    2 795
    Par défaut
    Je suis comme __skip, plutôt très enthousiasmé par ce que je vois du langage, et des choix qui ont été faits (il n’y a guère que la syntaxe dont je ne suis pas fan). Au contraire de go, qui m’avait laissé dubitatif.

    Un langage fortement typé, avec peu de mutables ou d’aliasing, c’est le genre de choses qui se prête très bien à de la vérification statique. Et de ce côté là, il y a une vraie valeur ajoutée à créer.

  2. #42
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    décembre 2008
    Messages
    830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : décembre 2008
    Messages : 830
    Points : 2 604
    Points
    2 604
    Par défaut
    Citation Envoyé par Uther Voir le message
    En effet les développeur C et C++ font n'importe quoi car ces langages font qu'il est très facile de faire des bêtises sans s'en rendre compte.
    Et même les meilleurs peuvent se faire avoir.
    I'm impatient. Can you give a brief summary of the salient features?
    Safety oriented:
    Memory safe. No null pointers, wild pointers, etc. Automatic storage management.
    Mutability control. Immutable by default. No shared mutable state across tasks.
    Dynamic execution safety: task failure / unwinding, trapping, logging. RAII / dtors.
    Je suis d'accord, C++ utilise un peu trop les pointeurs bruts (je pense qu'il s'agit d'une des pires causes de problèmes, en seconde position, je miserai volontiers sur les Ctor par copie). En fait, C++ ne proposait pas de mécanique correcte pour gérer la mémoire avant le standard 2011, mais je trouve que le std::unique_ptr résout pas trop mal le problème (même si j'aurai apprécié une variante de weak_ptr pour les unique...).
    Côté pointeurs et C++, personnellement, je ne m'en sers que pour le polymorphisme et l'interfaçage avec du code qui les utilise (genre une lib C). Dans ce dernier cas, il m'arrive très souvent d'encapsuler ces pointeurs dans une classe spécialisée, histoire de me décharger de cette responsabilité inutile.
    Je leur préfère de très loin les références et les conteneurs standards, ce qui en fait correspond à la fonctionnalité de Rust "Memory safe. No null pointers, wild pointers, etc. Automatic storage management."

    La seconde de leur fonctionnalité niveau sécurité, "Mutability control. Immutable by default. No shared mutable state across tasks." est, encore, présente en C++. Quoique, peut-être pas le dernier élément, je ne suis pas pointu (jamais vraiment touché à ça pour le moment) en multitâche pour le dire.

    Le 3ème argument semble plus pertinent, au moins au niveau des retours: je ne crois pas qu'un système de log soit intégré au C++, bien qu'il soit faisable via les mécanismes d'exception et de surcharge des new&delete.
    Quant à la RAII, je crois bien que j'ai un mal fou à m'en passer, ce n'est pas vraiment une nouveauté.

    D'ailleurs, tout ces points valables en C++ me semblent aussi présents voire meilleurs dans d'autres langages déjà existants.

    J'ai du mal à voir en quoi le langage serait pas assez permissif. A priori, tout est réalisable avec seulement la contrainte de devoir utiliser des blocs "unsafe" si on veut briser les contrôles de sécurité en connaissance de cause.

    Je dirais que Rust comme C++ est à la fois de haut et bas niveau car il offre clairement les fonctionnalités que tu as cités mais permet un accès direct au ressources du systèmes et reste orienté performances.
    Personnellement, j'ai l'impression que Rust vise a pallier les faiblesses de C++ dans le multi-tâche.
    C'est en tout cas la seule chose qu'il semble avoir que C++ n'a (n'avais avant 2011?) pas, puisque la sécurité du code, C++ à des mécanismes qui lui permettent d'être stable, il faut simplement arrêter de ne penser qu'a la compatibilité C (bon, ok, j'utilise certaines fonctions du C: printf/scanf, parce que j'abhorre les flux en C++) et utiliser les références, le mot-clé "const" et utiliser les conteneurs plutôt que de vouloir faire de l'allocation dynamique manuelle. Et quand on veut de l'alloc dynamique manuelle, rien n'empêche de faire une classe qui ne fasse que ça, plutôt que de noyer les responsabilités dans 20K LoC.

    Pour le multitâche, je ne sais pas si Rust apporte beaucoup. Tout simplement parce que je n'ai jamais essayé d'en faire en C++.

    La lenteur de compilation du C++, on en parle souvent, et c'est vrai qu'il y a un certain souci, mais est-ce que le souci ne viens pas aussi en partie de notre habitude de regrouper toutes les implémentations des méthodes d'une classe dans un seul fichier? Certes, c'est plus simple à lire, et c'est aussi ce que je fait, mais ça implique que modifier une fonction déclenche la compilation de l'ensemble du fichier. Si il n'y avait qu'un fichier par implémentation, je me demande comment seraient les temps de compilation? Je pense que la compilation totale serait plus longue, mais la compilation incrémentale accélèrerait, non?

    Perso, je pense qu'un des plus gros défaut de C++ est la complexité même du langage pour les compilateurs: certains mots-clefs n'ont pas la même signification selon l'endroit ou ils sont par exemple...


    PS: je n'ai parlé que de comparaison avec C++, puisqu'ils semblent vouloir un langage multi-paradigme et compilé, et que C++ est le seul que je connaisse qui aie ces propriétés.

  3. #43
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Inscrit en
    avril 2002
    Messages
    4 294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : avril 2002
    Messages : 4 294
    Points : 12 917
    Points
    12 917
    Par défaut
    Citation Envoyé par Freem Voir le message
    Je suis d'accord, C++ utilise un peu trop les pointeurs bruts (je pense qu'il s'agit d'une des pires causes de problèmes, en seconde position, je miserai volontiers sur les Ctor par copie). En fait, C++ ne proposait pas de mécanique correcte pour gérer la mémoire avant le standard 2011, mais je trouve que le std::unique_ptr résout pas trop mal le problème (même si j'aurai apprécié une variante de weak_ptr pour les unique...).
    Sauf qu'en Rust ces notions sont intégrés au langage, pas dans les bibliothèque standard. ce qui permet au compilateur de contrôler leur bon usage

    Citation Envoyé par Freem Voir le message
    La seconde de leur fonctionnalité niveau sécurité, "Mutability control. Immutable by default. No shared mutable state across tasks." est, encore, présente en C++. Quoique, peut-être pas le dernier élément, je ne suis pas pointu (jamais vraiment touché à ça pour le moment) en multitâche pour le dire.
    Je suis pas un expert en C++ et je ne connais pas la dernière norme par coeur, mais je ne vois pas comment C++ pourrait avoir des types immuables pas défaut. Ça briserait toute la compatibilité antérieure.

    Citation Envoyé par Freem Voir le message
    C'est en tout cas la seule chose qu'il semble avoir que C++ n'a (n'avais avant 2011?) pas, puisque la sécurité du code, C++ à des mécanismes qui lui permettent d'être stable, il faut simplement arrêter de ne penser qu'a la compatibilité C (bon, ok, j'utilise certaines fonctions du C: printf/scanf, parce que j'abhorre les flux en C++) et utiliser les références, le mot-clé "const" et utiliser les conteneurs plutôt que de vouloir faire de l'allocation dynamique manuelle. Et quand on veut de l'alloc dynamique manuelle, rien n'empêche de faire une classe qui ne fasse que ça, plutôt que de noyer les responsabilités dans 20K LoC.
    Sauf que toute ces chose qu'il faut penser a faire en C++, sont faites par défaut en Rust.

    Citation Envoyé par Freem Voir le message
    La lenteur de compilation du C++, on en parle souvent, et c'est vrai qu'il y a un certain souci, mais est-ce que le souci ne viens pas aussi en partie de notre habitude de regrouper toutes les implémentations des méthodes d'une classe dans un seul fichier?
    Je ne crois pas que l'on ait parlé de lenteur de compilation. en tout cas ce n'est absolument pas un objectif prioritaire de Rust.

  4. #44
    Membre expert Avatar de air-dex
    Homme Profil pro
    Inscrit en
    août 2010
    Messages
    1 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : août 2010
    Messages : 1 621
    Points : 3 644
    Points
    3 644
    Par défaut
    Citation Envoyé par Uther Voir le message
    Je ne crois pas que l'on ait parlé de lenteur de compilation. en tout cas ce n'est absolument pas un objectif prioritaire de Rust.
    Cela avait été évoqué pour Google Go.
    "Ils ne savaient pas que c'était impossible alors ils l'ont fait." Mark Twain

    Mon client Twitter Qt cross-platform Windows et Linux. (en cours de développement).

  5. #45
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    mars 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mars 2012
    Messages : 10
    Points : 21
    Points
    21
    Par défaut
    J'ai testé le Rust hier avec la dernière version stable du compilateur rustc.

    Je suis un adepte du C++ et j'ai trouvé plein de choses super dans de Rust. La grammaire du langage semble bien plus simple que celle du C++ : le meilleur exemple est la distinction dans la déclaration des fonctions ou des variables qui sont forcément précédées de fn ou de let. La compilation via des outils comme llvm doit être bien plus rapide et plus "déterministe" ...

    Ensuite le langage apporte un gros plus sur la gestion de la mémoire : la pile, le tas, ou des variables partagées pour le multithreading. Il y a peu de langages qui permettent ça et en C++ c'est pas simple du tout de faire des programmes qui utilises plusieurs coeurs. Il y a bien des trucs comme MPI ou openmp pour avoir testé et pour y être confronté en ce moment même, mais il n'y a absolument aucun moyen de faire quelque chose de simple dès qu'un projet devient complexe et le principal problème c'est justement le partage des variables en mémoire.

    Il y a d'autres différences avec le C++, comme par exemple le fait que par défaut toutes les variables sont "constantes" si on utilise pas le mot-clé "mut". L'api par défaut semble plus évoluée, du moins plus simple à l'image d'autres langages comme le C# ou le Java, même si elle est encore incomplète. Le côté généricité à l'air d'être un peu mieux penser mais je ne vais pas trop m'avancer. Pour moi c'est vraiment sur le mlti-tâche que le langage va se distinguer, mais pour ça il faut qu'il soit performant. SI un programme C++ non multi-tâche est plus rapide qu'un programme Rust multi-tâche (comme c'est souvent le cas avec certaines bibliothèques ou d'autres langages), alors l'intérêt du diminue beaucoup.

    Finalement j'ai fais tourner un petit code (un test de primalité) en Rust, en C++ et même en D et en Python avec le même niveau d'optimisation (sauf en Python, yen a pas). Il en résulte que Rust est actuellement 2,2 fois plus lent que le C++.

    Je possède un core i7 sur un portable récent, et le code tourne sur un seul coeur (rien de spécial donc)

    C++ : 4.3s
    D: 5.1s
    Rust: 9.5s
    Python: > 2min

    Voilà ma petite contribution pour ceux que ça intéresse, néamoins le langage n'en est qu'à ses débuts et je pense qu'il a les moyens d'être beaucoup plus rapide que ça

  6. #46
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : novembre 2005
    Messages : 2 898
    Points : 7 688
    Points
    7 688
    Par défaut
    Et bien merci pour ce retour très intéressant. On sent que le ressenti global est assez positif. D'un point de vue langage je pense aussi que les références mutables devraient être des exceptions plutôt que des règles en ce sens je suis assez d'accord avec l'approche de rust qui est de dire "ça bouge pas sauf si vraiment ça doit".

    Pour les performances je pense que tu as juste, la plupart des compilos C++ ont des années d'optimisation derrière eux, il faudra surement attendre que rust soit feature complete avant que vraiment les gens se mettent à se focaliser sur la vitesse d'exécution.

  7. #47
    Modérateur
    Avatar de Flaburgan
    Homme Profil pro
    Développeur Web
    Inscrit en
    avril 2010
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : avril 2010
    Messages : 1 229
    Points : 3 542
    Points
    3 542
    Par défaut
    Le langage à l'air de plus en plus intéressant au fur et à mesure que je lis l'avis des gens

    Je vais attendre encore quelques mois, et quand il se sera plus stabilisé, je l'essayerai, et si j'ai le courage, peut être un petit tuto sur dvp.com
    "Historiquement, techniquement, économiquement et moralement, Internet ne peut pas être contrôlé. Autant s’y faire." Laurent Chemla

    Je soutiens Diaspora*, le réseau social libre.

    Veillez à porter une attention toute particulière à l'orthographe...

    Blog collaboratif avec des amis : http://geexxx.fr

    Mon avatar a été fait par chiqitos, merci à lui !

  8. #48
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Inscrit en
    avril 2002
    Messages
    4 294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : avril 2002
    Messages : 4 294
    Points : 12 917
    Points
    12 917
    Par défaut
    Je suis un peu la mailing list des développeurs, je ne conseillerais pas de s'y mettre tout de suite, si ce n'est pour participer a l'élaboration du langage(développement, tests, retour d'expérience...). Le langage est encore en train d'évoluer lourdement, sur y compris sur des notions fondamentales qui brisent la compatibilité ascendante.
    Pas mal de notions sont supprimées pour être remplacées par d'autres. Par exemple les interfaces vont disparaitre pour être remplacées par des traits, la notation des closures et des pointeurs change, ...
    Je pense c'est encore trop tôt pour faire des tutoriels sur developpez.com.

    Pour ce qui est de la simplicité de la bibliothèque standard, elle vient surtout de sa pauvreté. Là encore Rust est loin d'être prêt pour une utilisation massive par tous.
    Heureusement on peut s'interfacer avec des bibliothèques C/C++.

    Pour le moment les deux seul gros projets qui utilisent le langage Rust, c'est le compilateur Rust lui même et Servo, le moteur de rendu encore très expérimental de Mozilla qui remplacera peut-être Gecko un jour.

  9. #49
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Inscrit en
    avril 2002
    Messages
    4 294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : avril 2002
    Messages : 4 294
    Points : 12 917
    Points
    12 917
    Par défaut
    Pour info Rust 0.4 est disponible: https://github.com/mozilla/rust/wiki/Doc-releases

    C'est toujours destiné a ceux qui veulent participer a l'élaboration du langage(codage, test, documentation, création d'outils, ...) C'est encore incomplet, buggé, et les API sont toujours minimales et partiellement documentées.
    Ils ont essayé de placer le plus possible des changements de syntaxe prévus dans cette version pour la stabiliser par la suite. Mais il en reste encore quelques a venir.

    J'aime bien la façon dont il évolue, c'est un langage qui n'est clairement pas évident a prendre en main. Il exige de bien comprendre comment il gère la mémoire. Mais le bon point c'est qu'il encadre plutôt bien de manière à empêcher les mauvais usages.

  10. #50
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2007
    Messages : 4 570
    Points : 252 325
    Points
    252 325
    Billets dans le blog
    117
    Par défaut
    Rust 0.6 disponible avec plus de 2 100 changements
    Le « C/C++ killer » de Mozilla obtient l’appui de Samsung et vante ses performances avec Servo

    Dans la foulée de la présentation de Servo, Mozilla a sorti une nouvelle version de Rust, le langage de développement qui a été utilisé pour le nouveau moteur de rendu Web (Servo).

    Rust 0.6 marque une étape très importante dans la stabilisation du langage, qui atteindra bientôt une version finale 1.0, mettant fin aux modifications de syntaxe.

    Pour rappel, Rust a été développé comme un « C/C++ killer » et reprend une grande partie de la syntaxe de ceux-ci, avec un point d’honneur accordé à la sécurité, la performance et la concurrence. L'objectif de Mozilla est de "concevoir et implémenter un langage orienté objet statique, typé, sûr, concurrentiel et efficace".

    Pour mettre en avant l’aspect sécurité de Rust, Mozilla note, par exemple, le hack de tous les navigateurs au concours Pwn2Own. L’organisme explique que plusieurs vulnérabilités seraient dues à l’utilisation du C++ et que Rust mettrait fin à cela.

    La nouvelle version de Rust et de son compilateur apportent plus de 2100 changements, de nombreuses corrections de bugs et des améliorations de la stabilité. Ces modifications touchent la syntaxe, la sémantique et les bibliothèques.

    Il faut noter par ailleurs que Rust bénéficie du soutien de Samsung qui aurait fait participer près d’une vingtaine de développeurs aux projets Rust et Servo.

    À l’état actuel, Rust semble être sur le bon chemin pour son adoption par les développeurs. La sortie de Servo permettra d’avoir un premier aperçu de ses performances.

    Rust 0.6 est disponible sous une licence open source MIT pour Linux, Windows, Mac OSX et FreeBSD. Elle est principalement à destination des early adopters.

    Télécharger Rust sur GitHub


    Source : Mozilla


    Et vous ?

    Avez-vous testé Rust ? Que pensez-vous du langage ?

    Allez-vous l'adopter ?

    Le support de Samsung pourrait-il stimuler l'adoption du langage ?
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  11. #51
    Membre éprouvé
    Profil pro
    Inscrit en
    juillet 2010
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : juillet 2010
    Messages : 657
    Points : 1 230
    Points
    1 230
    Par défaut
    Pour rappel, Rust a été développé comme un « C/C++ killer »
    Chez Mozilla peut être , Rust n'a pas "killé" beaucoup de projets en C ou C++ jusqu'à présent.

  12. #52
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Inscrit en
    avril 2002
    Messages
    4 294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : avril 2002
    Messages : 4 294
    Points : 12 917
    Points
    12 917
    Par défaut
    La fondation Mozilla voit certes, Rust comme alternative au C++ dans ses projets futurs, mais elle n'a jamais prétendu que Rust devait être un C++ killer, c'est une extrapolation de l'auteur de l'article. Il est toujours tentant quand on on présente une nouvelle technologie de l'annoncer en tant que killer d'une autre.

    D'ailleurs Rust aurait du mal a remplacer le C++ dès à présent. Le langage n'a pas encore une syntaxe totalement stabilisée, même s'il s'en rapproche très fortement.
    Et pour ce qui est des bibliothèques standard une grosse partie reste a faire, et une autre grosse partie est à refaire.

  13. #53
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2007
    Messages : 4 570
    Points : 252 325
    Points
    252 325
    Billets dans le blog
    117
    Par défaut
    Rust passe à la version 0.7 avec plus de 2 000 changements
    le langage dérivé du C/C++ de Mozilla gagne en maturité et s’approche de la version stable

    Rust, le langage de programmation de la fondation Mozilla, suit son évolution et atteindra bientôt la version stable 1.0.

    Pour rappel, Rust a été développé comme une alternative aux langages C et C++. Il reprend une grande partie de la syntaxe de ceux-ci, avec un point d’honneur accordé à la sécurité par rapport à la performance. L'objectif de Mozilla est de « concevoir et implémenter un langage orienté objet statique, typé, sûr, concurrentiel et efficace ».

    Rust a été développé à la base comme un projet autonome par Graydon Hoare, de la fondation Mozilla, en 2006. Le langage a été dévoilé publiquement en 2010 et est sorti en version 1.0 pour les « early adopters » en janvier 2012.

    Depuis cette date, Rust a gagné en maturité et fonctionnalités, et est désormais utilisé pour le développement de Servo, le prochain moteur de rendu Web de la fondation Mozilla. Il bénéficie également du soutien de Samsung.




    Avec la version 0.7, Rust devient plus stable et moins volatile. Les modifications permettant des ruptures avec la version précédente ne sont pas nombreuses. Mozilla a continué à affiner son langage en apportant plus de 2 000 modifications à celui-ci.

    Parmi les modifications, on va noter la suppression du mot clé « copy » en faveur de « clone ». La transition vers l’utilisation des nouveaux types d’itérateurs continue. Le passage complet vers les nouveaux types d’itérateurs va permettre de gagner en souplesse et en nouveautés.

    Le système expérimental rustpkg bénéficie de quelques améliorations, notamment l’utilisation d’une URL comme ID de package pour designer des packages locaux ou distants, la possibilité de télécharger des packages directement à partir de GitHub, le « versioning » explicite, etc. Les types numériques gagnent également en maturité.

    La bibliothèque centrale a été renommée en « std » avec cette version. De nouveaux modes permettent d’identifier les variables inutilisées, les blocs dangereux et inutiles, des variables non lues, etc.


    Rust 0.7 est disponible sous une licence open source MIT ou Apache 2 pour Linux, Windows, OS X et FreeBSD. Elle est principalement à destination des early adopters et ne devrait pas être utilisée en environnement de production.

    Télécharger Rust 0.7

    Source : Notes de version
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  14. #54
    Chroniqueur Actualités

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    mars 2013
    Messages
    6 355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : mars 2013
    Messages : 6 355
    Points : 154 790
    Points
    154 790
    Par défaut Rust 0.8 disponible en téléchargement
    Rust 0.8 disponible en téléchargement,
    l'alternative au C/C++ revient avec environ 2 200 changements

    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 ?
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  15. #55
    Membre chevronné
    Inscrit en
    janvier 2006
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : janvier 2006
    Messages : 603
    Points : 2 065
    Points
    2 065
    Par défaut Comme en C?
    Excusez-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?

  16. #56
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Inscrit en
    avril 2002
    Messages
    4 294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : avril 2002
    Messages : 4 294
    Points : 12 917
    Points
    12 917
    Par défaut
    Je suis assez d’accord sur le fait que le Rust ne doit pas être considéré simplement comme un remplaçant du C/C++ même s'il semble tout a fait adapté pour pouvoir le faire à terme. La syntaxe a quelques points commun (accolades, opérateurs, ...) mais aussi pas mal de différences(déclarations, types de pointeurs, closures, pattern matching). Les développeur se sont légèrement inspirés de C++, Go ou Ruby. Mais si on les écoutes leurs principales références sont Erlang(pour la concurrence) et Haskell(pour le typage).

    Je serais moins d'accord vis a vis de la comparaison a Go. Rust est plus orienté vers le bas niveau(gestion fine de la mémoire, GC optionnel,...)
    Un langage n'a pas besoin de faire la une en permanence pour être efficace et utilisé. Go a une communauté qui ne fait pas beaucoup de bruit mais qui est plutôt active au vu de son jeune age.
    La communauté autour de Rust est plus restreinte mais aussi très active ce qui est encore plus impressionnant si on considère que le langage, n'a même pas encore une syntaxe stabilisée.

  17. #57
    Membre averti
    Homme Profil pro
    Inscrit en
    mars 2005
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : mars 2005
    Messages : 249
    Points : 348
    Points
    348
    Par défaut
    Il me semble aussi que la comparaison avec C/C++ tient plus des applications visées (orientées performances) que du langage en lui-même. Même si d'après les quelques benchs que j'ai pu voir rust est encore loin d'avoir le même niveau de perfs, ça tient sans doute en partie à la jeunesse du langage.

    J'ai "essayé d'essayer" rust pour faire un mini jeu, mais c'est assez chaud pour le moment, il va falloir attendre encore un moment que le langage gagne en maturité avant de voir se développer un petit écosystème de bibliothèques... J'ai l'impression que le langage continue d'évoluer assez massivement, les documentations / tutos qu'on peut trouver ça et là sont souvent périmés, l'interfaçage avec le C++ semble être encore en cours d'élaboration donc c'est pas encore le moment de se jeter dessus à corps perdu!

  18. #58
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Inscrit en
    avril 2002
    Messages
    4 294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : avril 2002
    Messages : 4 294
    Points : 12 917
    Points
    12 917
    Par défaut
    Le langage continue encore d'évoluer lourdement. J'avais mis sur ce sujet un lien vers un article à jour mais malheureusement, les modérateurs n’apprécient pas que l'on mette des liens vers des tutoriels venant d'autre sites que developpez.com
    Si tu es intéressé par le développement de jeu, il y a une communauté active qui travaille sur rust.

    L’interfaçage avec le C++ ne sera probablement jamais totalement possible car le modèle objet de C++ est assez différent de celui de Rust. Par contre l’interfaçage avec le C fonctionne bien. Si on fait un wrapper C++ utilisant des extern "C", cela fonctionne.

  19. #59
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2007
    Messages : 4 570
    Points : 252 325
    Points
    252 325
    Billets dans le blog
    117
    Par défaut
    Rust s’approche de sa première version stable
    Mozilla publie une nouvelle préversion de son langage dérivé de C/C++

    Avec Rust, Mozilla ambitionne de renvoyer dans les tiroirs les célèbres langages de programmation C et C++, en proposant un langage qui s’inspire de ce qui a fait leur succès, mais qui propose en plus une meilleure sécurité.

    L'objectif de Mozilla est de « concevoir et implémenter un langage orienté objet statique, typé, sûr, concurrentiel et efficace ».

    Rust a été développé à la base comme un projet autonome par Graydon Hoare, de la fondation Mozilla, en 2006. Le langage a été dévoilé publiquement en 2010 et est sorti en version 0.1 pour les « early adopters » en janvier 2012.




    Mozilla vient de publier la version 0.9 du langage, qui marque probablement la dernière étape avant la publication de la version stable 1.0. Rust 0.9 apporte un lot d’améliorations, dont la possibilité pour les développeurs de choisir s’ils veulent construire des bibliothèques dynamiques ou statiques.

    Les bibliothèques natives sont désormais des éléments de « première classe », ce qui permet de développer et distribuer une bibliothèque Rust sans que les bibliothèques natives ne soient incluses dans le package.

    Les développeurs de Rust ont procédé à une révision complète de l’infrastructure d’E/S. Toutes les fonctionnalités d’E/S sont désormais disponibles au niveau de std::io, qui a été entièrement réécrit. À ce niveau, Rust s’enrichit de deux nouvelles bibliothèques : libgreen et libnative.

    Des changements ont également été apportés à la façon dont les pointeurs sont traités.

    Rust est disponible en open source pour Windows, Linux, Mac OS X et FreeBSD. La version 1.0 du langage sortira avant la fin de l’année.

    Télécharger Rust 0.9

    Source : notes de version


    Et vous ?

    Avez-vous testé Rust ? Allez-vous l’adopter ?
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  20. #60
    Membre confirmé
    Profil pro
    Inscrit en
    septembre 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2009
    Messages : 204
    Points : 525
    Points
    525
    Par défaut
    J' ai du mal à trouver des informations quant à la rétro-compatibilité de Rust avec le C/C++. (Je pense que pour le C c'est quasiment certain, mais pour le C++ j'ai des doutes) C'est pour moi une grosse différence, parce que le langage a beau être prometteur sur le papier, s'il ne peut pas utiliser toutes les librairies C/C++ disponibles à ce jour ca reste un sacré frein à son adoption.

    EDIT: au vue du précédent message je crois bien que j'ai ma réponse.

Discussions similaires

  1. Réponses: 21
    Dernier message: 29/11/2010, 17h33
  2. Réponses: 5
    Dernier message: 16/06/2010, 09h34
  3. Réponses: 4
    Dernier message: 16/03/2010, 15h24
  4. Réponses: 12
    Dernier message: 23/11/2009, 19h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo