Rust 1.7 : le langage de Mozilla renforce encore ses bibliothèques
Sta-bi-li-sa-tion
Le 07 mars 2016 à 14h30
2 min
Logiciel
Logiciel
Mozilla a publié la version 1.7 de Rust. Depuis sa mouture finale lancée en mai dernier, le langage a beaucoup évolué et ses bibliothèques en particulier ont été étoffées. Le travail continu sur ce point, avec un accent particulier sur les fonctionnalités.
Rust est un langage développé par Mozilla pour répondre avant tout à ses propres besoins. L’idée de départ est d’obtenir un résultat proche des performances du C ou du C++, mais avec certains des avantages apportés par les langages de plus haut niveau, comme Java. Rust est l’outil principal de l’éditeur pour travailler sur le remplaçant du moteur de rendu Gecko de Firefox, Servo.
Depuis plusieurs versions, l’accent est mis sur le renforcement des bibliothèques et dans le nombre de fonctionnalités accessibles à travers elles. C’est encore le cas avec la version 1.7, même si Mozilla indique qu’à cause des périodes de vacances, certains apports n’arriveront que dans de futures moutures.
L’une des plus grosses nouveautés est le support stabilisé des algorithmes de hash personnalisés. Jusqu’à présent, Rust ne supportait que SipHash, conçu pour empêcher les attaques par déni de service. Le problème de cette méthode est qu’elle offrait des performances jugées insuffisantes, surtout quand il fallait hacher de petites clés de chiffrement. Désormais, les développeurs pourront se servir d’autres algorithmes à travers le type HashMap
Parmi les autres nouveautés, signalons une dépréciation de la méthode relative-from, désormais renommée en strip_prefix. Cargo, le gestionnaire de paquets de Rust, évolue également. Il peut ainsi être averti quand des modifications interviennent dans les dépendances, afin de ne relancer les scripts de compilation qu’en ces cas précis. Enfin, et c’est tout aussi important, Rust 1.7 contient environ 1 300 correctifs divers.
Commentaires (38)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 08/03/2016 à 14h41
Le 08/03/2016 à 15h49
Le 08/03/2016 à 16h04
Ça ne répond absolument pas à la question. :-) Et pour info j’en ai déjà bien mangé, donc merci mais non merci.
Le 08/03/2016 à 20h07
Le 07/03/2016 à 14h46
Vivement la fin de gecko. Genre, vraiment.
Le 07/03/2016 à 15h05
Il va falloir que tu attends quelques années.
Le 07/03/2016 à 15h08
En fait, c’est plus compliqué que ça… Il y a déjà des bouts de Servo dans Gecko.
Le 07/03/2016 à 15h09
Langage intéressant IMHO, un peu testé, mais la gestion des références est à s’arracher les cheveux (définir le scope des références à la main est très bizarre par exemple).
Dommage qu’à vouloir faire du ‘safe’ on arrive à quelque chose moins simple à programmer que du Go par exemple, sans être forcément plus fiable (à moins que quelqu’un puisse me contredire, je n’attends que ca).
Le 07/03/2016 à 15h17
brokensoul a écrit :
Dommage qu’à vouloir faire du ‘safe’ on arrive à quelque chose moins simple à programmer que du Go par exemple, sans être forcément plus fiable (à moins que quelqu’un puisse me contredire, je n’attends que ca).
Si quelqu’un a une réponse à ça, je veux bien. J’aimerai me faire la main sur un digne successeur du C, plus moderne, avec des fonctionnalités qu’on est en droit d’attendre : gestion de la mémoire moins abrupte voire directement gérée par le compilateur, simplicité du langage (pas totalement bloated façon C++), gestion clean des dépendances, compilable avec des perfs proches du C (voire 2 ou 3 fois plus lent, c’est pas un problème), qu’il soit stable et pas qui bouge tous les 6 mois…
Oh, et Haskell ça poutre. Mais il me faut un langage complémentaire compréhensible par les humains dans mes bagages.
Le 07/03/2016 à 15h55
A propos de ces langages modernes “bifaces” (ie. ergonomiques et performants) comme go, rust ou D, qu’en est-il de celui de l’équipe de microsoft qu’on a un temps appelé M# ?
Je trouve peu d’infos récentes à son sujet.
Quelqu’un sait ?
Le 07/03/2016 à 15h59
La dernière fois que j’avais regardé, rust c’était pas ça niveau stabilité (le langage est jeune et peu mature donc les api évoluent encore). Pour les autres je ne sais pas, mais ça fait un certain temps que go me fait de l’œil.
Le 07/03/2016 à 16h05
Le 07/03/2016 à 16h16
Le 07/03/2016 à 16h17
Le 07/03/2016 à 16h23
Huuu, merci pour ces mises au point, mais ça répond pas à la question =D
Le 07/03/2016 à 16h32
Le 07/03/2016 à 16h35
Oh ok j’avais loupé ça, merci !
Le 07/03/2016 à 16h36
Merci, je viens de parcourir vite-fait le papier, il m’a l’air vraiment intéressant et bien écrit. :)
Le 07/03/2016 à 17h02
Rust est un langage développé par Mozilla pour répondre avant tout à ses propres besoins.
Il n’y a pas d’autres projets majeurs qui l’utilise ? Parce qu’à moins d’aider Mozilla, quelle peut être la motivation à apprendre ce langage, s’il n’est pas adopté ailleurs ?
Le 07/03/2016 à 17h11
Tout le monde ne fait pas de la pub sur les langages qu’il utilisent. Si on parle prioritairement de Mozilla, c’est que se sont eux qui ont initié le projet et restent un contributeur majeur, tout comme on parle naturelement de Google quand on parle de Go et de Oracle quand on parle de Java.
Rust est déjà utilisé en interne par plusieurs sociétés dont DropBox. Le langage peut potentiellement intéresser tout ceux qui veulent faire de la programmation bas niveau et/ou orienté sécurité.
Le 07/03/2016 à 17h58
Le 07/03/2016 à 18h29
L’un des dev de MS Midori poste surhttp://joeduffyblog.com/
Il espère toujours que le M# deviennent open source mais c’est vrai que ça ne bouge plus trop de ce côté..
Sinon y a le projet Wavefront qui vise à automatiquement convertir du code C++ existant en code plus safe mais ce n’est que le début du projet..
Le 07/03/2016 à 19h14
Pour faire du C# avec des performances similaires au C++, il suffit de compiler le C# en natif, non ?
Ça manque de benchmark récent huit ça :p
Le 07/03/2016 à 19h31
Le 07/03/2016 à 19h48
Le 07/03/2016 à 20h25
Des avis sur swift ?
Le 07/03/2016 à 21h18
C’est un très bon langage. Ses auteurs sont parmi les rares personnes à comprendre la direction dans laquelle les langages de programmation doivent véritablement aller et ils ont fait une synthèse réussie d’horizons très divers (pas de fonctionnalité innovante mais un mélange harmonieux et efficace).
Certains choix sont tout de même regrettables, notamment du fait du passif objective-C : ARC plutôt qu’un vrai GC, accolades, préciosité qui transforme un bête T* en un UnsafeMutablePointer. Parce qu’un vrai programmeur aime les types à rallonge et les accolades.
Cela dit son plus gros point faible c’est qu’en pratique il est exclusif au monde Apple. Dommage, espérons que ça change d’ici quelques années. Mais au moins il fait de la pire plateforme pour développer (Apple) une des meilleures.
Le 07/03/2016 à 21h25
Ah c’est sûr que c’est pas des commentaires du même niveau que les news Apple " />
" />
Le 07/03/2016 à 22h07
Il y avait un soucis avec ce langage qui me faisait le rejeter, il me semble que c’était une histoire de licence un peu nulle sur le compilateur je crois, je ne m’en souviens plus. :/
Le 07/03/2016 à 23h32
Le 08/03/2016 à 00h36
Je vois que beaucoup de gens comparent Rust et C/C++.
Sauf que comme beaucoup de langages, la philosophie de Rust est de rendre plus facile certaines choses. Cela peut avoir un avantage… mais ce n’est pas la même philosophie.
Quand est ce que les gens comprendront que ce qui fait l’intéret de C/C++, ce n’est pas les aides à la conduite, mais justement la possibilité de s’en passer.
Le 08/03/2016 à 00h40
Le 08/03/2016 à 06h31
Le 08/03/2016 à 07h50
Le 08/03/2016 à 09h10
Actuellement il y a dans les Nightly de Firefox un parseur de fichier mp4 en Rust. Il ne fait pas encore partie de Servo vu que Servo ne gère pas encore la vidéo. Mais il semble que les parseurs d’URL et de CSS de Servo sont en cour d’intégration aussi.
C’est certes une quantité de code marginale pour le moment, mais ça prouve que Mozilla a bien l’intension de “Rustifier” Gecko sur la durée.
Le 08/03/2016 à 09h40
Le 08/03/2016 à 10h15
Le 08/03/2016 à 10h57
@Brokensoul>
La différence a ce niveau c’est que Rust va empêcher la plupart des erreurs en amont à la compilation en te forçant a réfléchir aux problématiques mémoire plutôt que de te laisser faire n’importe quoi et d’essayer de détecter les erreurs a postériori. L’analyse dynamique c’est bien, mais ça n’attrape pas forcément tout.
Après je ne nie pas que c’est parfois lourd de réussir à faire compiler du Rust surtout au début, mais dans la très grosse majorité des cas, je pense que c’est compensé par le temps économisé en débogage.