Rust 1.1 disponible en version stable avec la bêta de Rust 1.2
Le langage de programmation de Mozilla améliore de 32% le temps de compilation
Le 2015-07-01 14:55:55, par Hinault Romaric, Responsable .NET
Les développeurs responsables du développement du langage de programmation Rust viennent d’annoncer la publication de la version 1.1, moins d’un mois et demi après la sortie de la première version stable de Rust.
Cette première itération de la branche 1.0 se concentre sur l’amélioration des performances de la plateforme. Rust 1.1 améliore de 32% le temps de compilation par rapport à Rust 1.0 (tel que mesurer par bootstrapping).
Des améliorations ont également été apportées aux messages d’erreurs lors de la compilation. Une grande partie des erreurs de compilation dispose désormais d’explications étendues qui s’affichent lorsqu’on clique sur le drapeau « -- ».
En dehors de ces améliorations, Rust 1.1 apporte de nouvelles fonctionnalités intéressantes, dont :
La sortie de cette version s’accompagne de la publication de la bêta de Rust 1.2, conformément au cycle de développement du langage de programmation.
Rust 1.2 bêta est disponible en téléchargement avec ses outils. L’amélioration des performances est également au centre de cette version. Grâce aux optimisations qui ont été apportées à cette dernière, sa vitesse de compilation est améliorée de 30% par rapport à Rust 1.1. La compilation pour Cargo est également plus rapide de 18%.
Le gestionnaire de packages du langage a bénéficié de plusieurs autres améliorations de performances.
Rust 1.2 bêta marque la première étape pour l’intégration de la prise en charge de MSVC (Microsoft Visual C). Selon les développeurs du langage, cela représente un grand pas pour la prise en charge de Windows et rend plus facile la liaison entre le code Rust et le code compilé en utilisant la chaine de compilation native.
Rust 1.2 sera publié en version stable dans six semaines, avec la version bêta de Rust 1.3.
À titre de rappel, Rust est un langage de programmation compilé, multiparadigme (orienté objet, fonctionnel et procédural) qui tire parti des langages fonctionnels comme Haskell et ML, du langage orienté objet C++ et bien plus.
Le but de Mozilla est de mettre à la disposition des développeurs « un langage orienté objet statique, typé, sûr, concurrentiel et efficace ». Selon la fondation Mozilla, il s’agit d’un nouveau langage de programmation visant à rendre plus facile le développement des systèmes fiables et efficaces.
Sur le site du projet, on peut lire en guise d’introduction que « Rust est un langage de programmation système qui fonctionne incroyablement rapidement, empêche presque toutes les erreurs de segmentation, et garantit la sécurité des threads. »
Ce qui rend Rust différent des autres langages de programmation est son système de type, selon Mozilla. Le langage fournit la sécurité et la commodité des langages modernes, tout en maintenant l’efficacité et le contrôle de bas niveau des langages C et C++.
Le langage de Mozilla semble disposer de plusieurs caractéristiques intéressantes. Mais, sont-elles suffisantes pour permettre à celui-ci de s’imposer dans l’écosystème de l’IT ?
Télécharger Rust 1.1 et Rust 1.2 bêta
Source : Blog Rust
Et vous ?
Avez-vous testé le langage de programmation Rust ? Qu’en pensez-vous ?
A-t-il du potentiel pour se faire une place devant les ténors ?
Allez-vous adopter ce langage ?
Cette première itération de la branche 1.0 se concentre sur l’amélioration des performances de la plateforme. Rust 1.1 améliore de 32% le temps de compilation par rapport à Rust 1.0 (tel que mesurer par bootstrapping).
Des améliorations ont également été apportées aux messages d’erreurs lors de la compilation. Une grande partie des erreurs de compilation dispose désormais d’explications étendues qui s’affichent lorsqu’on clique sur le drapeau « -- ».
En dehors de ces améliorations, Rust 1.1 apporte de nouvelles fonctionnalités intéressantes, dont :
- la disponibilité en version stable de la nouvelle API « std::fs » : cette fonctionnalité rend stable un grand nombre d’extensions pour les API du système de fichiers. Ce qui permet, par exemple, de compiler le gestionnaire de packages Cargo sur Rust ;
- support de musl : il est désormais possible de cibler musl sur Linux. Les binaires générés de cette façon sont liés statiquement et n’ont aucune dépendance ;
- l’intégration de cargo rustc : cette fonctionnalité permet de générer des packages Cargo en passant un drapeau pour invoquer rustc.
La sortie de cette version s’accompagne de la publication de la bêta de Rust 1.2, conformément au cycle de développement du langage de programmation.
Rust 1.2 bêta est disponible en téléchargement avec ses outils. L’amélioration des performances est également au centre de cette version. Grâce aux optimisations qui ont été apportées à cette dernière, sa vitesse de compilation est améliorée de 30% par rapport à Rust 1.1. La compilation pour Cargo est également plus rapide de 18%.
Le gestionnaire de packages du langage a bénéficié de plusieurs autres améliorations de performances.
Rust 1.2 bêta marque la première étape pour l’intégration de la prise en charge de MSVC (Microsoft Visual C). Selon les développeurs du langage, cela représente un grand pas pour la prise en charge de Windows et rend plus facile la liaison entre le code Rust et le code compilé en utilisant la chaine de compilation native.
Rust 1.2 sera publié en version stable dans six semaines, avec la version bêta de Rust 1.3.
À titre de rappel, Rust est un langage de programmation compilé, multiparadigme (orienté objet, fonctionnel et procédural) qui tire parti des langages fonctionnels comme Haskell et ML, du langage orienté objet C++ et bien plus.
Le but de Mozilla est de mettre à la disposition des développeurs « un langage orienté objet statique, typé, sûr, concurrentiel et efficace ». Selon la fondation Mozilla, il s’agit d’un nouveau langage de programmation visant à rendre plus facile le développement des systèmes fiables et efficaces.
Sur le site du projet, on peut lire en guise d’introduction que « Rust est un langage de programmation système qui fonctionne incroyablement rapidement, empêche presque toutes les erreurs de segmentation, et garantit la sécurité des threads. »
Ce qui rend Rust différent des autres langages de programmation est son système de type, selon Mozilla. Le langage fournit la sécurité et la commodité des langages modernes, tout en maintenant l’efficacité et le contrôle de bas niveau des langages C et C++.
Le langage de Mozilla semble disposer de plusieurs caractéristiques intéressantes. Mais, sont-elles suffisantes pour permettre à celui-ci de s’imposer dans l’écosystème de l’IT ?
Source : Blog Rust
Et vous ?
-
CrejakMembre à l'essaiJe connaissais le langage depuis la 0.9 (fin 2014) et je m'y suis remis après la sortie de la 1.0. C'est vrai qu'au début j'étais un peu sceptique mais une fois qu'on a compris la logique du compilateur, c'est vraiment un plaisir de l'utiliser. Quand par exemple le slogan dit "empêche presque toutes les erreurs de segmentation", c'est vrai ! Venant des langages C / C++ où les segfaults sont un véritable calvaire, et malheureusement assez fréquentes, Rust permet, en forçant à s'adapter au compilateur, de coder de telle sorte qu'il n'y ait jamais de pointeurs invalides, de buffer overflow... Et c'est vraiment très agréable qu'une fois notre code compilé, on est (quasiment) sûr qu'il ne plantera pas.
Cependant, le fait qu'il soit exigeant n'apporte pas que du bon. La gestion des chaînes de caractères par exemple est particulièrement tordue ^^. Mais encore une fois, quand on a compris comment ça marche, on peut faire de réeles économies de mémoire et de calculs (au prix de quelques heures passées sur la doc). A-t-il du potentiel pour se faire une place devant les ténors ?
Un autre éléments valorisant ce langage est la mise à disposition d'outils permettant de compiler et de gérer ses projets simplement. Le logiciel cargo, fourni avec Rust sur le site (il me semble), est en effet un gestionnaire de projet complet. En le couplant avec un éditeur de texte (j'utilise personnellement Atom, sorti en 1.0 très récemment, qui compte déjà plusieurs plugins concernant Rust), on a un environnement de développement multi-plateformes et complet.Allez-vous adopter ce langage ?le 01/07/2015 à 16:02 -
psykokarlMembre confirméAutant le fait d'oublier un ";" me fait redouter un return non désirés (les pires des erreur de programmation sont celles qui sont syntaxiquement correctes...), autant l'avantage sur l’opérateur ternaire dans le cas de if ou de switch me parait évident en terme de lisibilité.
Pour les closures je ne suis pas convaincu, pour peu qu'elle se complexifient. L'idéal étant pour moi étant de garder les return obligatoire pour les fonction. Assez pratique pour retourner une ligne à l'arrache sans avoir a commenter ce qui suit...le 01/07/2015 à 22:39 -
psykokarlMembre confirméSi ce n'était que pour l'exemple simple de Uther, l’intérêt vis à vis de l’opérateur ternaire est quasi nul et de mon point de vue, ce n'est pas qu'une question de "poor style" ou de recommandation.
Si on compare
Code : x = (x > 20) ? "geant" : (x > 15) ? "grand" : (x > 10) ? "moyen" : (x > 5) ? "petit" : "minscule"
Code : x = if (x > 20) "geant" elseif (x > 15) "grand" elseif (x > 10) "moyen" elseif (x > 5) ? "petit" else "minscule"
C'est cette tendance à vouloir imposer un style qui fait que je n'adopterai jamais python en dépit de ses qualités.
A mon avis
Code : x = if(rouge) x+=1 if(vert) x+=2 if(bleu) x+=4
ou
Code : 1
2
3
4x = if(rouge) x+=1 if(vert) x+=2 if(bleu) x+=4 ...
restent plus lisible, plus facilement shuntable que
Code : 1
2
3
4x = if(rouge) x+=1 if(vert) x+=2 if(bleu) x+=4 ....
Même délire avec les return
Code : 1
2
3
4
5if(rouge) /*return*/ x+=1; if(vert) return x+=2; if(bleu) return x+=4; ... return x+=32;
le 02/07/2015 à 3:26 -
UtherExpert éminent séniorCe point de l'article est très confus.
L'outil standard pour construire les projets en Rust existe déjà et marche très bien : c'est Cargo et il était déjà disponible quelque mois avant la sortie de la version 1.0 de Rust. Depuis que Rust est officiellement disponible, Cargo a toujours été l'outil privilégié pour construire et gérer les dépendances des applications et des bibliothèques écrites en Rust.
Le problème est juste au niveau de la compilation du compilateur Rust lui même. Il a été réécrit en Rust (la première version était en OCaml), des années avant l'arrivée de Cargo, le système de construction a donc été basé sur les makefiles. Le compilateur étant assez complexe, l'adapter pour utiliser Cargo est un très gros travail qui n'était pas considéré comme prioritaire et n'a donc réellement commencé que récemment. Il n'y a pas de nouvel outil : Il s'agit juste de mettre a jour le compilateur pour utiliser l'outil standard que quasiment tous les autres projets Rust utilisent déjà.le 17/04/2016 à 9:49 -
SongbirdMembre expert
Je ne doutes pas que je finirais par en faire,
mais aujourd'hui à cet instant, la chose n'est pas évidente pour moi
et je préfère encore me tourner vers d'autres langages
partageant certains points commun avec celui ci.
Concernant la syntaxe, c'est précisément ce qui me donne envie d'étudier Rust (si l'on ne parle que d'elle), car la syntaxe me semble moins... éparpillée que le C++. Cela reste très personnel, bien entendu.
D'ailleurs, si quelque chose te rebute dans la syntaxe, des ressources existent pour expliquer littéralement ce que signifie telle ou telle expression.
Très bonne journée !le 10/06/2017 à 18:41 -
Max LothaireMembre confirméAvez-vous testé le langage de programmation Rust ? Qu’en pensez-vous ?
Par exemple :
Code : 1
2
3
4
5fn carre (x: i32) -> i64 { x * x // sans le ' ; ' }
Mais c'est surtout Cargo, l'outil de gestion de projet, que j'apprécie énormément (téléchargement automatique de dépendance, etc)
A-t-il du potentiel pour se faire une place devant les ténors ?
Allez-vous adopter ce langage ?
J'attends de voir un ce qu'il y aura comme api graphiques par exemple.le 01/07/2015 à 16:12 -
ParseCoderMembre avertiJe n'ai pas encore codé avec ce langage mais il a l'air très intéressant. Il n'y a que les life time que je trouve un peu déroutant. Je n'arrive pas à me rendre compte si cela apporte un supplément de sémantique intéressant lorsqu'on lit le code, ou si ça permet seulement d'aider le compilo au prix d'un alourdissement du code.
Si quelqu'un a pratiqué suffisamment, je suis intéressé par son point de vue.
Merci.le 01/07/2015 à 16:15 -
unoomadMembre du ClubMoi au contraire je préfère sans le return c'est ce que je suis habitué a faire en Ruby chacun ses préférences
. le 01/07/2015 à 16:17 -
UtherExpert éminent séniorLe cas que tu cites n'est qu'une conséquence d'une propriété plus générale : touts les blocs qui ne se terminent pas par ";" retournent une valeur. Si cette propriété est déroutante dans les fonction où on a l'habitude de faire "return", elle prend tout son intérêt dans les autres types de blocs comme les "if" ou les closures, ... ou l'on a besoin d'une syntaxe plus légère.
Par exemple cela permet de faire:
Code : 1
2let x = if x>0 {x} else {0}; let mut power= iter.map(|&x| {x * x});
le 01/07/2015 à 17:21 -
Max LothaireMembre confirméJe n'y avais pas pensé.
Du coup ça devient plus lisible qu'un
Code : x = y==2 ? 4 : 1
Après, ce n'est qu'un détail.le 02/07/2015 à 0:02