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)
#1
Vivement la fin de gecko. Genre, vraiment.
#2
Il va falloir que tu attends quelques années.
#3
En fait, c’est plus compliqué que ça… Il y a déjà des bouts de Servo dans Gecko.
#4
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).
#5
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.
#6
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 ?
#7
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.
#8
#9
#10
#11
Huuu, merci pour ces mises au point, mais ça répond pas à la question =D
#12
#13
Oh ok j’avais loupé ça, merci !
#14
Merci, je viens de parcourir vite-fait le papier, il m’a l’air vraiment intéressant et bien écrit. :)
#15
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 ?
#16
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é.
#17
#18
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..
#19
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
#20
#21
#22
Des avis sur swift ?
#23
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.
#24
Ah c’est sûr que c’est pas des commentaires du même niveau que les news Apple " />
" />
#25
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. :/
#26
#27
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.
#28
#29
#30
#31
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.
#32
#33
#34
@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.
#35
#36
#37
Ça ne répond absolument pas à la question. :-) Et pour info j’en ai déjà bien mangé, donc merci mais non merci.
#38