Les rubriques (actu, forums, tutos) de Développez
Tags
Réseaux sociaux
7   0


 Discussion forum

Retrouvez le dossier complet de la rédaction
07/04 - Mozilla : Rust 1.0 disponible en version bêta
06/04 - Rust 1.0 disponible en version bêta, le langage de programmation multiparadigme de Mozilla atteindra sa première version stable le 15 mai
14/01 - Rust 1.0 disponible en version Alpha
12/01 - Rust 1.0 disponible en version Alpha, le langage de programmation multiparadigme de Mozilla se rapproche de sa première version stable
06/01 - Rust s'approche de sa première version stable
26/12 - Rust 1.0 sera disponible en version stable au printemps 2015, Mozilla publiera la version Alpha de son langage de programmation le 9 janvier 2015
24/09 - Rust atteindra bientôt sa version 1.0, Mozilla dévoile la feuille de route de son langage de programmation multi-paradigme
17/01 - Rust s'approche de sa première version stable, Mozilla publie une nouvelle préversion de son langage dérivé de C/C++
29/09 - Rust 0.8 disponible en téléchargement, l'alternative au C/C++ revient avec environ 2 200 changements
04/04 - Rust 0.6 disponible avec 2 100 changements, le « C/C++ killer » de Mozilla obtient l'appui de Samsung et vante ses performances avec Servo
13/07 - Rust 0.3 disponible : le langage de Mozilla dérivé du C/C++ gagne en maturité avec 1900 changements
18/04 - Rust 0.2 disponible : la nouvelle version du langage de Mozilla supporte FreeBSD et apporte de nouvelles fonctions
25/01 - La Fondation Mozilla publie Rust 0.1 et le compilateur pour son nouveau langage de programmation qui serait simple et plus sécurisé
01/12 - La Fondation Mozilla prépare « Rust », un langage de programmation qui serait multi-paradigme, simple, concurrentiel et pratique
Sur le même sujet

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

Le , par Hinault Romaric, Responsable Actualités
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 avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Stéphane le calme Stéphane le calme - Chroniqueur Actualités http://www.developpez.com
le 29/09/2013 à 6:15
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 ?
Avatar de esperanto esperanto - Membre actif http://www.developpez.com
le 03/10/2013 à 10:10
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?
Avatar de Uther Uther - Expert Confirmé Sénior http://www.developpez.com
le 03/10/2013 à 17:44
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.
Avatar de kremvax kremvax - Membre confirmé http://www.developpez.com
le 26/10/2013 à 15:27
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!
Avatar de Uther Uther - Expert Confirmé Sénior http://www.developpez.com
le 27/10/2013 à 0:49
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.
Avatar de Hinault Romaric Hinault Romaric - Responsable Actualités http://www.developpez.com
le 17/01/2014 à 14:39
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 ?
Avatar de codec_abc codec_abc - Membre habitué http://www.developpez.com
le 17/01/2014 à 17:18
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.
Avatar de Uther Uther - Expert Confirmé Sénior http://www.developpez.com
le 19/01/2014 à 9:23
Citation Envoyé par Hinault Romaric Voir le message
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.
En fait la prochaine version sera une 0.10 et il y aura probablement une 0.11 ensuite. A partir de la version 1.0 Rust devra gérer la compatibilité ascendante et il reste encore trop de changements incompatibles prévus pour les mois à venir.
L'équipe qui travaille sur Rust a annoncé quelle envisage de pouvoir sortir la version 1.0 de Rust vers fin 2014.

Citation Envoyé par Hinault Romaric Voir le message
Avez-vous testé Rust ? Allez-vous l’adopter ?
J'ai un peu joué avec, le principe me plait beaucoup, et je pense que je l'utiliserai pour des projets personnels lorsqu'il sera stable.

Pour le travail, je verrai si j'ai une bonne occasion de le pousser quand il sera stable, mais comme je travaille surtout sur des applications web et que les performances et la sécurité ne sont que rarement nos soucis principaux, j'en doute.

Citation Envoyé par codec_abc
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.
L’interfaçage avec du C marche déjà parfaitement bien et le langage a été prévu pour que ça soit très simple a mettre en œuvre. Il est tout de même conseillé de faire un wrapper en Rust pour gérer la sécurité, le code C étant considéré comme "unsafe".

Actuellement si on souhaite utiliser du code C++, il faut d'écrire un wrapper en C++ qui fournira à Rust une interface C (extern "C").

Le support direct et complet du C++ n'est pas vraiment possible car il y a des différences incompatibles dans la manière dont chaque langage gèrent les objets. A ma connaissance aucun langage ne le propose. Le D fournit un support limité de l’interfaçage avec C++ et les gens qui travaillent sur Rust envisagent de fournir quelque chose d'approchant à l'avenir, mais ça sera après Rust 1.0.
Avatar de _skip _skip - Expert Confirmé Sénior http://www.developpez.com
le 19/01/2014 à 9:35
Avec l'annonce récente de M# par microsoft, le D qui pourrait finalement sortir de sa grotte avec l'aide de facebook et Rust qui s'approche d'une version stable, on risque d'avoir 3 technos qui s'attaquent en même temps au même segment. Comme si tout le monde avait réalisé en même temps qu'il existait un gros vide entre le C++ et java/.Net.

Je suis globalement très enthousiaste pour Rust mais la bataille risque d'être rude.
Avatar de codec_abc codec_abc - Membre habitué http://www.developpez.com
le 19/01/2014 à 12:09
Citation Envoyé par Uther
Le support direct et complet du C++ n'est pas vraiment possible et a ma connaissance aucun langage ne la propose. Le D fournit un support limité de l’interfaçage avec C++ et les gens qui travaillent sur Rust envisagent de fournir quelque chose d'approchant à l'avenir, mais ça sera après Rust 1.0.

Techniquement l’interfaçage complet et direct avec C++ n'est pas possible, cependant on peut tout a fait utiliser du code C++ à condition d'écrire un wrapper en C++ qui fournira à Rust une interface C (extern "C").
Effectivement c'est la même solution que la totalité des autres langages qui veulent s'interfacer avec du C++. Dans la pratique, vu que c'est quelque chose que je n'ai jamais fait, comment ca se passe ? J'imagine qu'il faut d'abord compiler la librairie C++ avec le compilo de son choix. Puis linker son wrapper C avec la libraire précédemment compilé. Enfin, on peut linké son exécutable (ou sa librairie) écrit en Rust avec le wrapper. Ça me semble assez lourd comme processus. En plus, je vois un problème avec les librairies en évolution. Leur API changeant régulièrement il faut réécrire le wrapper et une partie du code Rust qui y fait appel.

Citation Envoyé par _skip
Avec l'annonce récente de M# par microsoft, le D qui pourrait finalement sortir de sa grotte avec l'aide de facebook et Rust qui s'approche d'une version stable, on risque d'avoir 3 technos qui s'attaquent en même temps au même segment. Comme si tout le monde avait réalisé en même temps qu'il existait un gros vide entre le C++ et java/.Net.

Je suis globalement très enthousiaste pour Rust mais la bataille risque d'être rude.
Il me semble qu'il y ai une différence notable entre Rust, D et M#. C'est que M# doit produire du byte code tandis que D et Rust produisent du code natif. D'ailleurs on peut aussi rajouter Go à la liste des nouveaux langages ayant pour but de "remplacer" C++.
Avatar de Uther Uther - Expert Confirmé Sénior http://www.developpez.com
le 19/01/2014 à 17:41
Citation Envoyé par codec_abc Voir le message
Effectivement c'est la même solution que la totalité des autres langages qui veulent s'interfacer avec du C++. Dans la pratique, vu que c'est quelque chose que je n'ai jamais fait, comment ça se passe ?
Certaines bibliothèque C++ fournissent déjà une interface compatible C. Si ce n'est pas le cas, il faudra réaliser soi même cette interface.
Le principe est assez simple : dans un programme C++ les fonctions déclarées extern "C" sont compilées avec une ABI compatible C. Elles sont donc utilisables dans les langages qui acceptent de s'interfacer avec le C.
Le prototype de ces fonctions ne doit pas utiliser des fonctionnalités qui n'existent pas en C, mais le corps de la fonction le peux.

Par exemple supposons la classe C++ suivante:
Code C++ :
1
2
3
4
5
6
7
// MaBibliotheque.h : Bibliothèque C++
class MaClasse {
  public:
    MaClasse(int x);
    void methode1(int x);
    int methode2(int x, int y);
}

On va pouvoir coder (toujours avec un compilateur C++) des fonctions avec une interface C qui utilisent cet objet :
Code C++ :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// MaBibliotheque_C.cpp : Wrapper C++/C 
#include "MaBibliotheque.h"
 
extern "C" {
  void* MaClasse_new(int x){
      return new MaClasse(x);
  }
 
  void MaClasse_methode1(void* object, int x){
      ((MaClasse*)object)->methode1(x);
  }
 
  int MaClasse_methode2(void* object, int x, int y){
      return ((MaClasse*)object)->methode2(x,y);
  }
}

Puis utiliser ça dans un programme rust:
Code Rust :
1
2
3
4
5
6
7
8
9
10
#[link(name = "MaBibliotheque_C")]
extern {
    fn MaClasse_new(libc::c_int) -> libc::c_void;
    fn MaClasse_methode1(ptr : libc::c_void, x : libc::c_int);
    fn MaClasse_methode2(ptr : libc::c_void, x : libc::c_int, y : libc::c_int) -> int;
}

fn main () {
    /* code utilisant les fonctions */
}


Citation Envoyé par codec_abc Voir le message
Il me semble qu'il y ai une différence notable entre Rust, D et M#. C'est que M# doit produire du byte code tandis que D et Rust produisent du code natif. D'ailleurs on peut aussi rajouter Go à la liste des nouveaux langages ayant pour but de "remplacer" C++.
On ne sait pour le moment pas grand chose de M# (d'ailleurs ce n'est certainement pas son nom officiel), mais du peu que j'ai lu, il semblerait qu'il soit bien compilé en code natif.
D et surtout Go sont moins orientés vers les systèmes et la sécurité que Rust : pas de protection contre les accès concurrents aux données, pointeurs null, gestion mémoire, GC obligatoire ou très difficilement évitable ...
Avatar de codec_abc codec_abc - Membre habitué http://www.developpez.com
le 19/01/2014 à 19:19
Merci pour la réponse. C'est bien comme ca que je l'imaginai. Je pense que ça ne doit pas être un travail passionnant pour la plupart des gens. Ceci dit, Il me semble qu'il existe des outils pour le faire automatiquement mais généralement le code produit n'est pas d'une qualité remarquable.

Sinon a propos de Rust, il me semble que le langage n'intègre pas de garbage collector. À mon niveau, ca veut dire que l'on va retrouver les problématiques de fuites mémoire dans Rust. Ça serait un peu dommage pour un langage qui se veut "sécurisé".
Avatar de Uther Uther - Expert Confirmé Sénior http://www.developpez.com
le 19/01/2014 à 21:53
Citation Envoyé par codec_abc Voir le message
Sinon a propos de Rust, il me semble que le langage n'intègre pas de garbage collector. À mon niveau, ca veut dire que l'on va retrouver les problématiques de fuites mémoire dans Rust. Ça serait un peu dommage pour un langage qui se veut "sécurisé".
En fait c'est tout le contraire : c'est un langage qui propose un contrôle précis de la durée de vie de la mémoire allouée pour permettre d'éviter les fuites, sans avoir besoin de recourir a un GC.
Ceci dit si tu ne veux pas réfléchir au problème de durée de vie des variables, il est possible de recourir à des pointeurs avec GC ou avec compteur de références. C'est par contre totalement optionnel et rien dans les bibliothèques standard ne t'oblige a les utiliser.
Avatar de partok partok - Invité de passage http://www.developpez.com
le 25/01/2014 à 15:56
Dans le style de Rust, mais encore plus confidentiel, un langage que j'apprécie beaucoup : Nimrod dont j'ai entendu parler pour la première fois ici.
Avatar de WorkInProgress WorkInProgress - Futur Membre du Club http://www.developpez.com
le 26/01/2014 à 20:31
Je viens de regarder Nimrod et la syntaxe est vraiment légère et à l'air quand même riche en possibilité. Ça fait penser à une sorte de python compilable. Ça me plait beaucoup aussi.
En ce qui concerne Rust, ça à l'air vraiment prometteur, et si ça marche bien, ça ne pourra être que bénéfique pour la fondation.
Il y a des petits truc sympas du genre :
Code :
1
2
3
4
5
6
7
8
let price =
    if item == "salad" {
        3.50
    } else if item == "muffin" {
        2.25
    } else {
        2.00
    };
ou encore :
Code :
let c = 100u;
pour forcer le typage des variable.
Mais ça reste un langage pour pro à mon avis parce que ce genre de structure fait gagner du temps mais ne rend pas l'apprentissage plus facile. Et dans l'ensemble l'apprentissage de ce langage doit être aussi laborieux que celui du C, voir encore plus étant donné le peu de doc qui existe pour l'instant (ce qui est bien normale vu la différence d'age des deux langages).
Avatar de gangsoleil gangsoleil - Modérateur http://www.developpez.com
le 27/01/2014 à 9:40
Citation Envoyé par Hinault Romaric Voir le message
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é.

[...]
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.
Les entreprises pour lesquelles j'ai travaille ont des clients sous differents linux (Red-Hat, Debian, Oracle, ...), Windows, Solaris, AIX, et HP-UX. Il manque donc au moins 3 cibles, et je n'ai pas vu de possibilite de telecharger juste les libs pour l'execution...

A mon sens, quelle que soit la qualite du langage, il n'est pas du tout oriente pour le monde professionnel actuellement.
Avatar de Uther Uther - Expert Confirmé Sénior http://www.developpez.com
le 27/01/2014 à 22:55
Citation Envoyé par WorkInProgress Voir le message
Il y a des petits truc sympas du genre :
Code :
1
2
3
4
5
6
7
8
let price =
    if item == "salad" {
        3.50
    } else if item == "muffin" {
        2.25
    } else {
        2.00
    };
Encore pour ça il y a mieux:
Code :
1
2
3
4
5
let price = match item {
        "salad" | "concombre" => 3.50 ,
        "muffin" => 2.25 ,
        _  => 2.00
}
Avatar de partok partok - Invité de passage http://www.developpez.com
le 27/01/2014 à 23:27
Et avec Nimrod:
Code :
1
2
3
4
let price = case item
            of "salad", "concombre":3.5
            of "muffin":2.5
            else:2.0
Bref, je ne sais pas si c'est déterminant... mais bon je suis HS.
Avatar de Uther Uther - Expert Confirmé Sénior http://www.developpez.com
le 28/01/2014 à 0:50
Citation Envoyé par WorkInProgress Voir le message
Mais ça reste un langage pour pro à mon avis parce que ce genre de structure fait gagner du temps mais ne rend pas l'apprentissage plus facile. Et dans l'ensemble l'apprentissage de ce langage doit être aussi laborieux que celui du C, voir encore plus étant donné le peu de doc qui existe pour l'instant (ce qui est bien normale vu la différence d'age des deux langages).
Rust est en effet un langage qui vise à être pro, mais non pas parce qu'il fait gagner du temps de codage, car dans ce segment là Java, C#, Phython, Go, sont a mon avis bien meilleurs.

De même, apprendre les rudiments du C est en effet bien plus rapide que le Rust, mais pas parce que la syntaxe de Rust soit plus compliquée . C'est surtout que avec Rust, on va souvent tomber sur du code qui serait parfaitement valide en C mais qui refusera de compiler a cause des contraintes de mutabilité, durée de vie, concurrence, ...
Cependant apprendre a faire du C proprement en réfléchissant au problématiques auxquelles Rust oblige a réfléchir est certainement bien plus difficile que du Rust.

Je dirais au contraire que si Rust me semble a visée professionnelle, c'est parce qu'il pousse à réfléchir à des notions comme la concurrences, la durée de vie des variables, ... là ou les autre langages proposent le plus souvent des solution généralistes et simples mais non optimales (GC, typage dynamique, ...) ou permettent des manipulation dangereuses (dépassement de pile, allocation non contrôlée, ...)

Citation Envoyé par gangsoleil Voir le message
Les entreprises pour lesquelles j'ai travaille ont des clients sous differents linux (Red-Hat, Debian, Oracle, ...), Windows, Solaris, AIX, et HP-UX. Il manque donc au moins 3 cibles, et je n'ai pas vu de possibilite de telecharger juste les libs pour l'execution...
Pour ce qui est du multiplateforme, couvrir les trois principales Windows, Linux, Mac OS X et en plus Android(ARM) et FreeBSD(non officiellement supporté, mais il fonctionne et toute la suite de test est OK) est déjà pas mal pour un langage qui débute. Je ne connais aucun langage professionnel ou non, qui avant même sa sortie tournait sur beaucoup plus de plateformes que ça. De plus, vu que Rust est basé sur LLVM, je pense que le port vers d'autres architectures/OS ne devrait pas être si difficiles.

Citation Envoyé par gangsoleil Voir le message
A mon sens, quelle que soit la qualité du langage, il n'est pas du tout oriente pour le monde professionnel actuellement.
Il semble clair qu'il est clairement orienté vers le domaine professionnel. Bien sur, il est encore loin d'être assez stable, ne serait-ce qu'au niveau des spécifications, pour s'en réclamer capable, mais en même temps c'est normal pour un langage qui est encore en alpha.
Avatar de white_tentacle white_tentacle - Membre Expert http://www.developpez.com
le 28/01/2014 à 9:15
Citation Envoyé par Uther Voir le message
Je dirais au contraire que si Rust me semble a visée professionnelle, c'est parce qu'il pousse à réfléchir à des notions comme la concurrences, la durée de vie des variables, ... là ou les autre langages proposent le plus souvent des solution généralistes et simples mais non optimales (GC, typage dynamique, ...) ou permettent des manipulation dangereuses (dépassement de pile, allocation non contrôlée, ...)
À mon avis, sauf évolution majeure dans le domaine de l’informatique (ce n’est pas impossible, les problématiques de sécurité du code commencent à être prises en compte), le domaine dans lequel rust apporterait le plus est les systèmes critiques, et là, il faut des certifications, et il se trouve en concurrence avec ADA, qui est bien implanté et continue d’évoluer de manière lente mais sûre. Et je ne suis pas sûr que la fondation mozilla soit prête à le pousser dans cette voie.

Du coup, il risque un peu d’évoluer comme D. Plein d’idées intéressantes, une bonne réalisation technique, mais rien à faire, ça ne décolle pas. Il y a beaucoup d’inertie en informatique, il est extrêmement difficile de remplacer des standards établis, et le gain apporté par rust ne m’apparaît pas suffisant à l’heure actuelle pour faire la différence.
Avatar de Uther Uther - Expert Confirmé Sénior http://www.developpez.com
le 29/01/2014 à 11:50
Je pense en effet que le langage avec lequel Rust se trouve le plus en concurrence est l'Ada. Ça a beau être le premier langage que l'on m'a enseigné a l'université, j'en garde un mauvais souvenir. Le langage m'a paru lent avec une syntaxe lourde, ce que Rust essaie autant que possible d'éviter.
Ceci dit ma vision est certainement biaisée par les bibliothèques maisons que l'on nous forçait d'employer et le compilateur que l'on utilisait. Il mériterait certainement que je le réessaie avec des documentations techniques officielles et un compilateur moderne.

Pour ce qui est du support à venir, Je pense que c'est encore bien trop tôt pour spéculer là dessus. Mais je suis relativement optimiste pour Rust sur ce point si on le compare au D. On peut voir qu'il y a déjà une communauté très active qui travaille sur Rust et pas mal de projet qui se préparent autour alors qu'il est encore très instable. Je pense que le nom de Mozilla (et dans une moindre mesure Samsung) permet de fédérer plus facilement des supports.
Avatar de Flaburgan Flaburgan - Modérateur http://www.developpez.com
le 07/02/2014 à 16:34
J'étais au FOSDEM le week-end dernier et il y a eu une présentation de Servo (le nouveau moteur de rendu by Mozilla destiné à détrôner Gecko dans quelques années). Il est écrit en Rust, et il est vraiment clair que le premier objectif du langage est de profiter du multi-coeur. C'est là dessus qu'il se différencie de C++ (Gecko est écrit en C++).
Avatar de Flaburgan Flaburgan - Modérateur http://www.developpez.com
le 07/02/2014 à 17:27
Au passage, si ca intéresse des gens, mozilla organise un événement à Paris pour faire découvrir Rust le 25 février : https://www.eventbrite.fr/e/billets-...up-10528169037
Avatar de Hinault Romaric Hinault Romaric - Responsable Actualités http://www.developpez.com
le 24/09/2014 à 14:17
Rust atteindra bientôt sa version 1.0
Mozilla dévoile la feuille de route de son langage de programmation multi-paradigme

Le langage de programmation Rust développé par Mozilla atteindra bientôt sa première version stable.

Niko Matsakis, un développeur de chez Mozilla, a annoncé dans un billet de blog que la version bêta de Rust 1.0 sera publiée avant la fin de cette année, et si tout se passe bien, la version stable ne devrait pas tarder. Les fonctionnalités de langage auraient déjà été gelées et la fondation travaille activement sur leur mise en œuvre.

Pour rappel, Rust est un langage de programmation compilé, multi-paradigme (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 « concevoir et implémenter un langage orienté objet statique, typé, sûr, concurrentiel et efficace ». À terme, le langage devrait, selon Mozilla, fournir 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 programmation est donc vu comme une alternative à C/C++, qui s’inspire des éléments qui ont fait leur succès, mais qui offre en plus une meilleure sécurité. « En gros, si vous voulez vous salir les mains avec le métal nu de la machine, sans avoir à passer des heures à traquer des erreurs de segmentation et des fuites de données, alors Rust est fait pour vous », explique Niko Matsakis

Rust avait démarré comme un projet personnel développé par Graydon Hoare en 2006. La première version Alpha de son compilateur avait été publiée en janvier 2012. La sortie d’une version 1.0 signifie qu’il n y aura plus de modification pouvant briser la rétrocompatibilité. Ainsi, les projets existants devraient continuer à compiler, sans modification, dans les futures versions 1.x.

Au moment de la sortie de Rust 1.0, Mozilla publiera également la version stable de Cargo le gestionnaire de package pour le langage de programmation. Cargo est écrit en Rust et simplifiera la création et la distribution des bibliothèques Rust par les développeurs.

Après cette étape, un nouveau cycle de développement sera adopté pour le langage, inspiré du système de canaux utilisé pour Firefox, Chrome ou encore Ember.js. Ainsi, les évolutions de la plateforme pourront être suivies au travers des canaux Nightly, Beta et Stable, qui seront mis à jour toutes les six semaines.

Il faut noter que Rust a déjà été utilisé pour développer Servo, le nouveau moteur de rendu Web sécurisé de la fondation Mozilla.

Source : Site du projet
Avatar de Hinault Romaric Hinault Romaric - Responsable Actualités http://www.developpez.com
le 26/12/2014 à 13:40
Rust 1.0 sera disponible en version stable au printemps 2015
Mozilla publiera la version Alpha de son langage de programmation multiparadigme le 9 janvier 2015

Mozilla a dévoilé des détails sur la feuille de route de son nouveau langage de programmation Rust, dans un billet de blog de celui-ci.

Celle-ci prévoit l’adoption d’un cycle de publication des préversions toutes les six semaines à partir du 9 janvier 2015, jusqu’à la sortie de la version stable Rust 1.0. Ainsi, on aura :

  • la sortie de Rust 1.0.0 Apha le vendredi 9 janvier 2015 ;
  • la publication de Rust 1.0.0 bêta 1 la semaine du 16 février 2015 ;
  • la disponibilité de Rust 1.0.0, après un ou plusieurs cycles de six semaines plus tard.


Suivant ce calendrier, les développeurs pourront avoir à leur disposition la première version stable de Rust au cours du printemps 2015.

La publication de la version Alpha marquera le gel des fonctionnalités du langage. La bibliothèque standard sera presque complète en termes de fonctionnalités et la majorité des API qui seront disponibles avec la version stable de Rust 1.0 sera marquée comme « #[stable] ». Les API instables porteront l’étiquette « #[unstable] » et pourront de ce fait faire l’objet de commentaires de la part de la communauté afin de traiter et stabiliser celles-ci.

Rust 1.0 Alpha donnera une image assez précise de ce que ressemblera la version stable. Attention cependant à vouloir l’utiliser dans un environnement de production. Il s’agit d’une préversion, et même si les modifications à venir seront mineures, elles pourront, cependant, briser la compatibilité.




À la sortie de la bêta, toutes les API seront marquées comme stable et les fonctionnalités de la bibliothèque standard seront complètes. Cette étape sera principalement axée sur les tests, les corrections de bogues et les finitions.

Pour 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 « concevoir et implémenter un langage orienté objet statique, typé, sûr, concurrentiel et efficace ». À terme, le langage devrait, selon Mozilla, fournir 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++.

Rust avait démarré comme un projet personnel développé par Graydon Hoare en 2006. La première préversion de son compilateur avait été publiée en janvier 2012. La sortie d’une version 1.0 signifie qu’il n’y aura plus de modifications pouvant briser la rétrocompatibilité. Ainsi, les projets existants devraient continuer à compiler, sans modifications, dans les futures versions 1.x.

Source : Mozilla
Avatar de imperio imperio - Membre Expert http://www.developpez.com
le 06/01/2015 à 9:38
Enfin ! Bientôt fini les breaking changes à répétitions ! Les choses vont sacrément se simplifier pour ceux qui ont des projets écrits en Rust.
Avatar de Hinault Romaric Hinault Romaric - Responsable Actualités http://www.developpez.com
le 12/01/2015 à 21:14
Rust 1.0 disponible en version Alpha
le langage de programmation multiparadigme de Mozilla se rapproche de sa première version stable

Conformément à la feuille de route publiée le mois dernier, les développeurs de Rust ont publié la version Alpha de Rust 1.0.

Cette sortie marque le gel des fonctionnalités du langage. La bibliothèque standard est presque complète en termes de fonctionnalités et la majorité des API qui seront disponibles avec la version stable de Rust 1.0 ont été marquées comme « #[stable] ». Les API instables portent l’étiquette « #[unstable] » et peuvent de ce fait faire l’objet de commentaires de la part de la communauté afin de traiter et stabiliser celles-ci

Rust 1.0 Alpha donne une image assez précise de ce que ressemblera la version stable. Attention cependant à vouloir l’utiliser dans un environnement de production. Il s’agit d’une préversion, et même si les modifications à venir seront mineures, elles pourront, cependant, briser la compatibilité.

Par rapport à la dernière préversion de Rust, cette version Alpha apporte un lot de changements et de nouveautés au langage, ainsi qu’a la bibliothèque de base.

En ce qui concerne le langage, on va noter :

  • un meilleur support des DSTs (Dynamically-sized types). Les DSTs permettent de définir des types dont la taille n’est connue que lors de l’exécution ;
  • le support complet des Multidispatch traits. Cette caractéristique a ouvert la porte à de nombreuses API intéressantes ;
  • l’intégration des Associated types. Désormais, les « Traits » peuvent avoir des types « associés », ce qui permet de réduire le niveau de détails des génériques et des types « inférence » ;
  • des révisions du système de Macros. Bien que ce système souffre encore de quelques manquements, il représente une fonctionnalité importante et puissante qu’offrira la programmation Rust dans la version 1.0 ;
  • l’adoption des types pour les nombres entiers. Le long débat sur les types des nombres entiers a finalement trouvé une issue. « int » et « uint » sont désormais connus comme « isize » et « usize » ;





En ce qui concerne la bibliothèque du langage, on va noter l’approbation d’un grand nombre de conventions RFC, la mise en œuvre d’une série de RFC pour réorganiser et stabiliser les collections et des révisions des modules de concurrence de Rust, y compris le stockage local des threads et des primitives de synchronisation. Le système d’exécution de Rust et son modèle « green-threading » ont été entièrement supprimés.

Tous les types primitifs et les blocs de construction de base (comme char, String, Vec, Box, Arc, RefCell, etc.) sont désormais étiquetés comme stable « #[stable] ».

Les développeurs de Mozilla invitent la communauté à apporter leur aide pour itérer sur les bibliothèques et API stables avant la sortie de la version bêta du langage de programmation. Pendant ce cycle, il est recommandé d’utiliser les versions disponibles sur le canal nightly, qui continuera à évoluer au fur et à mesure que les API prennent leur forme définitive.

La première bêta de Rust devrait être disponible la semaine du 16 février 2015. Toutes les API seront marquées comme stable et les fonctionnalités de la bibliothèque standard seront complètes. Cette étape sera principalement axée sur les tests, les corrections de bogues et les finitions.

Source : Blog Rust
Avatar de gstratege gstratege - Candidat au titre de Membre du Club http://www.developpez.com
le 19/01/2015 à 10:30
Selon vous, pourquoi Mozilla a besoin de ce nouveau OS ?
Avatar de tomlev tomlev - Rédacteur/Modérateur http://www.developpez.com
le 19/01/2015 à 10:34
Citation Envoyé par gstratege Voir le message
Selon vous, pourquoi Mozilla a besoin de ce nouveau OS ?
C'est un langage de programmation, pas un OS...
Avatar de Uther Uther - Expert Confirmé Sénior http://www.developpez.com
le 19/01/2015 à 22:54
Citation Envoyé par gstratege Voir le message
Selon vous, pourquoi Mozilla a besoin de ce nouveau OS ?
Comme le dit tomlev, c'est un langage de programmation, pas un OS. Si Mozilla a vu un intérêt à développer ce langage, c'est qu'il espère qu'il permettra à terme de remplacer le C++ dans Firefox.

En effet, Rust a sur le papier pas mal d’avantages par rapport au C++, qui le rendent particulièrement intéressant pour un moteur web. Il est notamment bien plus armé niveau sécurité et moins sujet aux risques de leaks de mémoire. Tout cela en gardant des performances similaires à C++ car contrairement a la plupart des langage avec une gestion de mémoire sécurisée, il n'a pas se GC intégrée au langage(Java, C#, Go, ...) ni de typage dynamique (Javascript, Phyton, ...).

Actuellement la R&D de Mozilla travaille sur un nouveau moteur web expérimental nommé Servo écrit en Rust, et commence à envisager d’inclure des portions de code en Rust dans Firefox.
Avatar de imperio imperio - Membre Expert http://www.developpez.com
le 20/01/2015 à 9:36
@Uther: Je ne pense pas que ce sera pour tout de suite qu'ils réécriront firefox en Rust. Peut-être dans les années à venir, mais ça serait étonnant qu'il le fasse aussi vite.

Tu parles de ce servo ?
Avatar de Uther Uther - Expert Confirmé Sénior http://www.developpez.com
le 20/01/2015 à 10:58
Citation Envoyé par imperio Voir le message
@Uther: Je ne pense pas que ce sera pour tout de suite qu'ils réécriront firefox en Rust. Peut-être dans les années à venir, mais ça serait étonnant qu'il le fasse aussi vite.
C'est bien pour ça que j'ai précisé "à terme" et que ce n'est que de la R&D pour le moment.

La réécriture complète de Firefox n'est bien évidement pas encore a l'ordre du jour. Ils ont quand même commencé à étudier comment intégrer des modules écrits en Rust à Firefox, en commençant par des portions non critiques comme le support du bmp.

Citation Envoyé par imperio Voir le message
Tu parles de ce servo ?
En effet.
Avatar de gstratege gstratege - Candidat au titre de Membre du Club http://www.developpez.com
le 22/01/2015 à 16:35
Oui en fait je suis un peu loin dans ma réflexion, c'est bien un langage et non pas un OS, mais je pensais que ce langage était créer pour créer un OS car quand je lit la définition, il disent :
"Rust is a systems programming language"
Avatar de Uther Uther - Expert Confirmé Sénior http://www.developpez.com
le 23/01/2015 à 2:05
Rust est en effet comme le C ou le C++, ce qu'on peut appeler un langage de programmation système.
Cela signifie qu'il a des capacités bas niveau qui lui permettent entre autre de programmer des OS, drivers, ou même des programmes minimaux(pour des micro-hardware sans OS). Il y a actuellement plusieurs POC d'OS minimaux en Rust, mais rien avec de grosses ambitions pour le moment.

Cependant les langage systèmes ne servent pas qu'a ça. Leur accès au bas niveau les rend également très efficace dans tous les programmes qui nécessitent de bonne performance brutes comme de l’encodage vidéo, des jeux-vidéo ou un navigateur. Et c'est bien parce que c'est un outil prometteur pour un navigateur que Mozilla s'est intéressé a Rust.
Avatar de Hinault Romaric Hinault Romaric - Responsable Actualités http://www.developpez.com
le 06/04/2015 à 17:25
Rust 1.0 disponible en version bêta,
le langage de programmation multiparadigme de Mozilla atteindra sa première version stable le 15 mai

Initialement prévu pour le 16 février dernier, les développeurs du langage de programmation Rust ont finalement publié la première bêta de Rust 1.0 il y a quelques jours.

À titre de rappel, Rust est développé par la fondation Mozilla. C’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 « concevoir et implémenter un langage orienté objet statique, typé, sûr, concurrentiel et efficace ». À terme, le langage devrait, selon Mozilla, fournir 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 programmation est donc vu comme une alternative à C/C++, qui s’inspire des éléments qui ont fait leur succès, mais qui offre en plus une meilleure sécurité.




La sortie de la version bêta marque une étape importante dans le processus de développement de Rust. Toutes les API, les bibliothèques et les caractéristiques du langage ont été marquées comme stable. Cette version représente donc un aperçu précis de ce que sera Rust 1.0.

Les prochaines semaines seront marquées par la correction des bogues, les tests, la stabilisation des fonctionnalités et l’amélioration de l’expérience utilisateur.

La version stable de Rust 1.0 est prévue pour le 15 mai, dans exactement six semaines après la sortie de la bêta de Rust 1.0. Parallèlement à la sortie de cette version, Mozilla publiera également la version stable de Cargo le gestionnaire de package pour le langage de programmation. Cargo est écrit en Rust et simplifiera la création et la distribution des bibliothèques Rust par les développeurs.

Télécharger Rust 1.0 bêta

Source : Mozilla
Avatar de imperio imperio - Membre Expert http://www.developpez.com
le 07/04/2015 à 13:10
Citation Envoyé par Hinault Romaric Voir le message
Cargo est écrit en Rust et simplifiera la création et la distribution des bibliothèques Rust par les développeurs.
Il le fait déjà. De nombreuses bibliothèques sont disponibles sur crates.io (dont certaines étaient à l'origine dans la bibliothèque standard de Rust). Ça vaut le détour.
Avatar de yahiko yahiko - Expert Confirmé http://www.developpez.com
le 10/04/2015 à 9:18
Je n'ai toujours pas compris pourquoi Mozilla s'embarquait dans cette galère alors qu'ils ont à mon humble avis d'autres priorités plus urgentes (comme améliorer les performances de Firefox qui commence à tirer la langue).

Rust a-t-il un avenir ? Je ne crois pas hélas.
Avatar de patmaba patmaba - Membre habitué http://www.developpez.com
le 10/04/2015 à 10:16
Encore un langage supplémentaire dans la jungle du web. Apres Dart, Typescript. Qu'ont-ils tous à vouloir créer leur propre langage ? Ils veulent tous remplacer le javascript. Aucun n'y parviens. Qu'est ce qui se cache derrière toutes cette énergie à vouloir absolument remplacer le js ? Pourquoi ne se concentre-t’il pas sur le ECMASScript6 ? Quelque chose m'échappe ?
Avatar de imperio imperio - Membre Expert http://www.developpez.com
le 10/04/2015 à 10:24
Citation Envoyé par yahiko Voir le message
Je n'ai toujours pas compris pourquoi Mozilla s'embarquait dans cette galère alors qu'ils ont à mon humble avis d'autres priorités plus urgentes (comme améliorer les performances de Firefox qui commence à tirer la langue).

Rust a-t-il un avenir ? Je ne crois pas hélas.
Etant 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é...

Citation Envoyé par patmaba
Encore un langage supplémentaire dans la jungle du web. Apres Dart, Typescript. Qu'ont-ils tous à vouloir créer leur propre langage ? Ils veulent tous remplacer le javascript. Aucun n'y parviens. Qu'est ce qui se cache derrière toutes cette énergie à vouloir absolument remplacer le js ? Pourquoi ne se concentre-t’il pas sur le ECMASScript6 ? Quelque chose m'échappe ?
Absolument rien à voir. Rust est un langage qui se place plutôt comme concurrent au C++ plutôt qu'à un langage web. Essaie de te renseigner un peu plus sur le sujet.
Avatar de BugFactory BugFactory - Membre Expert http://www.developpez.com
le 10/04/2015 à 10:25
Rust n'a pas vocation à remplacer le Javascript mais le C++. Mozilla souhaite développer les versions futures de Firefox avec Rust plutôt que C++.

Le principal avantage de Rust est qu'il est plus sûr. Par exemple, pas d'opérations hasardeuses sur les pointeurs à moins de déclarer un bloc de code "unsafe". Concrètement, développer avec Rust devrait faciliter la création d'un code dépourvu d’erreurs et donc de failles. Ce langage devrait donc à terme faciliter développement de Firefox. Mais pour cela, il faut qu'il devienne mature. Le meilleur moyen d'y parvenir est de la partager pour qu'il soit utiliser pour de nombreux projets.

En revanche, il y a encore du retard niveau performances. Le dernier benchmark que j'ai lu faisait état de performances à 85% du C. Mais ça date, quelqu'un a peut-être des chiffres plus récents?
Avatar de yahiko yahiko - Expert Confirmé http://www.developpez.com
le 10/04/2015 à 10:29
Citation Envoyé par imperio Voir le message
Etant 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é...
Et à part l'argument du "nombre" (et je demande d'ailleurs à avoir un nombre précis), en quoi soutiens-tu ce projet ?
Avatar de imperio imperio - Membre Expert http://www.developpez.com
le 10/04/2015 à 11:17
@yahiko: Ma réponse était peut-être un peu sèche, désolé pour ça... Et les raisons pour lesquelles je soutiens le projet sont les suivantes : j'aime la syntaxe de ce langage, j'aime le mélange langage objet/fonctionnel (expressions, closures, pattern matching notamment) ainsi que la "sécurité" que t'oblige à adopter le langage. De plus (par-contre ça n'engage que moi), j'aime la communauté de Rust même si ça, ça n'a pas forcément grand chose à voir avec le langage.

EDIT: Et pour le "nombre", un simple tour sur github pour voir les projets réalisés avec ce langage pourra mieux te renseigner (cela dit, beaucoup sont faits par les mêmes personnes). Ou alors un tour sur crates.io.
Avatar de yahiko yahiko - Expert Confirmé http://www.developpez.com
le 10/04/2015 à 11:32
Si ça peut faire plaisir à des gens en mal de "nouveautés" pourquoi pas, même si franchement, je ne vois pas réellement la valeur ajoutée de Rust, mais bon imaginons...

Toujours est-il que Mozilla n'a pas les moyens de Google ou Microsoft et se disperser sur un nième langage (malgré toutes les bonnes intentions qu'on peut lui prêter) n'est pas un choix judicieux. Mozilla devrait redonner un bon coup de boost à Firefox au risque de voir son navigateur fétiche disparaître purement et simplement. Et là Mozilla y aurait beaucoup à perdre tant en notoriété qu'en gros sous (cf. partenariat avec Google, Yahoo, etc).
Avatar de BugFactory BugFactory - Membre Expert http://www.developpez.com
le 10/04/2015 à 13:28
Justement, Rust est un outil pour y parvenir.
Avatar de Uther Uther - Expert Confirmé Sénior http://www.developpez.com
le 13/04/2015 à 0:36
Citation Envoyé par BugFactory Voir le message
En revanche, il y a encore du retard niveau performances. Le dernier benchmark que j'ai lu faisait état de performances à 85% du C. Mais ça date, quelqu'un a peut-être des chiffres plus récents?
Rust 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.

Citation Envoyé par yahiko Voir le message
Je n'ai toujours pas compris pourquoi Mozilla s'embarquait dans cette galère alors qu'ils ont à mon humble avis d'autres priorités plus urgentes (comme améliorer les performances de Firefox qui commence à tirer la langue).
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.
Avatar de yahiko yahiko - Expert Confirmé http://www.developpez.com
le 13/04/2015 à 4:09
Citation Envoyé par Uther Voir le message
Rust 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 dans une situation particulières. 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.
Il suffit d'avoir un minimum de culture en programmation pour savoir qu'il est normal que Rust ait des performances en deçà du langage C (à qualité de code égale évidemment). Que cela se traduise dans les benchmarks, encore heureux. Qu'on tente de dire "non il ne faut pas se fier aux benchmarks", j'ai envie de dire que les benchmarks ont quand même une part de réalité sous-jacente. C'est assez pénible de lire des gens vouloir sans cesse les remettre en cause quand ça ne les arrange pas.
Quelle honte à dire qu'un langage est moins rapide que le C ? Aucune puisqu'à part de l'assembleur spécifique, aucun autre langage n'est plus performant.

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.
Tant mieux... En tout cas, cela fait des années que les "efforts" de Mozilla ne se traduise pas en terme d'amélioration des performances de Firefox (comparativement à Chrome par exemple). Je ne suis d'ailleurs pas certain que la fraction dédiée à Rust (qui commence à dater mine de rien) soit si négligeable que cela, par rapport aux ressources de Mozilla évidemment.
Avatar de Uther Uther - Expert Confirmé Sénior http://www.developpez.com
le 13/04/2015 à 7:28
Je n'ai pas dit,que le C n'est pas plus rapide que Rust. Par exemple le C ne contrôlant pas les dépassements de tampon, il sera notamment plus rapide sur un code qui fait beaucoup d’accès aléatoires à un tableau. Cela dit, si on utilise un itérateur ou du code "unsafe", on retrouve normalement des performances similaires.

C'est pour cela que je dis que sortir un chiffre comme 85% n'a de sens que si on ne précise pas exactement ce que l'on mesure.

Pour ce qui est des performances de Firefox, là encore on rentre dans du subjectif. Personnellement je n'ai pas le sentiment que Firefox soit plus lent que Chrome et au niveau de la consommation mémoire, je le trouve bien meilleur. En tout cas pour moi les efforts fait ces dernières années ont vraiment été sensibles.
Avatar de _skip _skip - Expert Confirmé Sénior http://www.developpez.com
le 13/04/2015 à 8:03
Citation Envoyé par yahiko Voir le message
Il suffit d'avoir un minimum de culture en programmation pour savoir qu'il est normal que Rust ait des performances en deçà du langage C (à qualité de code égale évidemment). Que cela se traduise dans les benchmarks, encore heureux. Qu'on tente de dire "non il ne faut pas se fier aux benchmarks", j'ai envie de dire que les benchmarks ont quand même une part de réalité sous-jacente. C'est assez pénible de lire des gens vouloir sans cesse les remettre en cause quand ça ne les arrange pas.
Quelle honte à dire qu'un langage est moins rapide que le C ? Aucune puisqu'à part de l'assembleur spécifique, aucun autre langage n'est plus performant.
Je pense que ce qu'il a voulu dire, c'est que les performances des langages à typage statique et compilés dont Rust fait partie occupent généralement le haut du tableau. L'ordre de différence entre les langages de cette catégorie est souvent bien moindre qu'entre n'importe lequel d'entre eux et les langages managés comme Java, C#.

Donc par rapport à ton interrogation sur le "sens" que fait Rust, la réponse serait clairement d'offrir une expérience développeur comparable aux langages managés (typage fort et statique, compilation rapide, sucres syntaxiques, sécurité, GC) sans trop renoncer aux performances de premier ordre possibles avec les langages non managés à compilation AOT. Dans mon domaine métier par exemple, pour le moment c'est C++ ou Java et ça me plairait énormément d'avoir une solution entre deux.

Là dessus tu pourrais me répondre, pourquoi pas D? En effet, je me contenterai de D si j'avais l'impression que ça bougeait mais il semble que ses auteurs ne savent tout bonnement pas y faire (je m'excuse auprès des fans de D).
Avatar de yahiko yahiko - Expert Confirmé http://www.developpez.com
le 13/04/2015 à 12:27
On peut toujours noyer le poisson (je ne parle pas de toi personnellement).
Il n'en reste pas moins que Rust est fondamentalement moins rapide que le C à cause de certains de ses contrôles systématiques, et qu'il est normal que cela se traduise dans les benchmarks. Je pense que cela va mieux en le disant.

Pour ce qui est de fournir une "expérience" pour le développeur, je n'ai rien contre. Mais on ne me fera pas croire que Rust est l'outil qui permettra à Mozilla de booster les performances de Firefox, par exemple.
Avatar de _skip _skip - Expert Confirmé Sénior http://www.developpez.com
le 13/04/2015 à 13:08
Citation Envoyé par yahiko Voir le message
Pour ce qui est de fournir une "expérience" pour le développeur, je n'ai rien contre. Mais on ne me fera pas croire que Rust est l'outil qui permettra à Mozilla de booster les performances de Firefox, par exemple.
Personne n'a dit ça en ces termes-là il me semble.
Je pense justement que ce projet de moteur de browser est aussi là pour prouver au plus grand nombre la viabilité de ce nouveau langage. Sinon je pense pas que quelqu'un se ferait chier à développer un langage de programmation juste pour ça. Pour que l'effet soit présent, il fallait que ce soit quelque chose d'assez critique question performance et d'une envergure suffisamment conséquente, ce qui explique ce choix. Parce que si tu te mets à avancer comme arguments les performances et la maintenance, il faut un showcase assez sérieux pour appuyer tes propos.
Avatar de Uther Uther - Expert Confirmé Sénior http://www.developpez.com
le 13/04/2015 à 13:09
Citation Envoyé par yahiko
Il n'en reste pas moins que Rust est fondamentalement moins rapide que le C à cause de certains de ses contrôles systématiques, et qu'il est normal que cela se traduise dans les benchmarks. Je pense que cela va mieux en le disant.
Le seul contrôle systématique que fait le langage Rust à l'exécution par rapport au C est, comme je l'ai cité plus haut, le contrôle du dépassement de tableau quand on y fait un accès direct. Et encore il y a moyen de l’éviter dans les cas où ça serait critique pour les performances en utilisant un bloc unsafe. Les autres contrôles sont effectuées au moment de la compilation et n'ont donc pas d'impact sur les performances.
Et ne t'en déplaise sur certains benchmarks Rust est légèrement meilleur que GCC même s'il est battu sur d'autres.

Citation Envoyé par yahiko
Pour ce qui est de fournir une "expérience" pour le développeur, je n'ai rien contre. Mais on ne me fera pas croire que Rust est l'outil qui permettra à Mozilla de booster les performances de Firefox, par exemple.
Personne n'a jamais dit cela. Le but de Rust est d'avoir un langage avec des performances comparables au C++ mais un bien meilleure sécurité au niveau de la mémoire et du parallélisme.
Le parallélisme étant tout de même une clé pour l’amélioration des performances à l'avenir
Avatar de yahiko yahiko - Expert Confirmé http://www.developpez.com
le 13/04/2015 à 13:30
Citation Envoyé par _skip Voir le message
Personne n'a dit ça en ces termes-là il me semble.
Citation Envoyé par yahiko Voir le message
Mozilla devrait redonner un bon coup de boost à Firefox au risque de voir son navigateur fétiche disparaître purement et simplement. Et là Mozilla y aurait beaucoup à perdre tant en notoriété qu'en gros sous (cf. partenariat avec Google, Yahoo, etc).
Citation Envoyé par BugFactory Voir le message
Justement, Rust est un outil pour y parvenir.
A moins que je ne sache pas lire, ça y ressemble fortement tout de même...

Je pense justement que ce projet de moteur de browser est aussi là pour prouver au plus grand nombre la viabilité de ce nouveau langage. Sinon je pense pas que quelqu'un se ferait chier à développer un langage de programmation juste pour ça. Pour que l'effet soit présent, il fallait que ce soit quelque chose d'assez critique question performance et d'une envergure suffisamment conséquente, ce qui explique ce choix. Parce que si tu te mets à avancer comme arguments les performances et la maintenance, il faut un showcase assez sérieux pour appuyer tes propos.
On l'attend le showcase qui viendra nous éblouir dans ce cas...

Citation Envoyé par Uther Voir le message
Le seul contrôle systématique que fait le langage Rust à l'exécution par rapport au C est, comme je l'ai cité plus haut, le contrôle du dépassement de tableau quand on y fait un accès direct. Et encore il y a moyen de l’éviter dans les cas où ça serait critique pour les performances en utilisant un bloc unsafe. Les autres contrôles sont effectuées au moment de la compilation et n'ont donc pas d'impact sur les performances.
S'il n'y a qu'un seul contrôle systématique (donc une "expérience" développeur somme toute limitée du coup) c'est inquiétant alors... Autant revenir au langage C et récupérer les 15% de perfs perdues par Rust.

Et ne t'en déplaise sur certains benchmarks Rust est légèrement meilleur que GCC même s'il est battu sur d'autres.
Oui, il faut bien des cas cliniques où un langage est meilleur qu'un autre. Même JavaScript est meilleur que le C++ sous certaines utilisations tu sais.
Avatar de Uther Uther - Expert Confirmé Sénior http://www.developpez.com
le 13/04/2015 à 13:46
Citation Envoyé par yahiko Voir le message
S'il n'y a qu'un seul contrôle systématique (donc une "expérience" développeur somme toute limitée du coup) c'est inquiétant alors... Autant revenir au langage C et récupérer les 15% de perfs perdues par Rust.
Pourtant j'ai bien précisé à l'exécution. Bien sur que Rust permet de faire bien plus que du contrôle de buffer overflow, sinon il n'aurait en effet aucun intérêt.
Mais la garantie de la sécurité mémoire se fait principalement grâce à des règles plus avancées sur la durée de vie des ressources qui sont vérifiées à la compilation et n'ont pas d'impact sur les performances.

Citation Envoyé par yahiko Voir le message
Oui, il faut bien des cas cliniques où un langage est meilleur qu'un autre. Même JavaScript est meilleur que le C++ sous certaines utilisations tu sais.
On est bien d'accord et c'est pour cela que dire qu'un langage est globalement x% plus lent qu'un autre n'a aucun sens si on ne précise pas ce qu'on a mesuré.

Citation Envoyé par yahiko Voir le message
A moins que je ne sache pas lire, ça y ressemble fortement tout de même...
Le but c'est que Rust aide à la réécriture d'un moteur Web qui tire pleinement parti du parallélisme. Sur ce point la Rust aide notamment parce que son modèle de sécurité mémoire permet d'éliminer complètement les "Data race".
Avatar de yahiko yahiko - Expert Confirmé http://www.developpez.com
le 13/04/2015 à 14:05
Citation Envoyé par Uther Voir le message
On est bien d'accord et c'est pour cela que dire qu'un langage est globalement x% plus lent qu'un autre n'a aucun sens si on ne précise pas ce qu'on a mesuré.
Attention à ne pas confondre une mesure à un benchmark... Un benchmark est un ensemble de mesures qui permet justement de juger de la qualité d'un système, ici un langage, en tenant compte de multiples situations. Sur quelques mesures, que Rust puisse être plus rapide que C, pourquoi pas, même JavaScript peut être plus rapide que le C++ sur certaines mesures. Mais sur la globalité d'un benchmark, quand il est suffisamment bien pensé, est en général révélateur des différences.
Donc on est bien d'accord que tu nies la pertinence du benchmark, alors que je pense qu'il est tout à fait révélateur du retard de Rust sur le langage C en terme de performance.

Le but c'est que Rust aide à la réécriture d'un moteur Web qui tire pleinement parti du parallélisme. Sur ce point la Rust aide notamment parce que son modèle de sécurité mémoire permet d'éliminer complètement les "Data race".
Bien. Cela fait 5 ans qu'ils en parle de cette réécriture censée révolutionner les performances. Attendons donc vu qu'on n'est plus à une année près...
Toujours est-il qu'on est donc bien d'accord que tu penses donc que Rust va contribuer à améliorer les performances de Firefox. Qu'on ne me dise pas que cela n'a pas été évoqué.
Avatar de Uther Uther - Expert Confirmé Sénior http://www.developpez.com
le 13/04/2015 à 14:27
Citation Envoyé par yahiko Voir le message
Attention à ne pas confondre une mesure à un benchmark... Un benchmark est un ensemble de mesures qui permet justement de juger de la qualité d'un système, ici un langage, en tenant compte de multiples situations. Sur quelques mesures, que Rust puisse être plus rapide que C, pourquoi pas, même JavaScript peut être plus rapide que le C++ sur certaines mesures. Mais sur la globalité d'un benchmark, quand il est suffisamment bien pensé, est en général révélateur des différences.
Donc on est bien d'accord que tu nies la pertinence du benchmark, alors que je pense qu'il est tout à fait révélateur du retard de Rust sur le langage C en terme de performance.
Au contraire, sur ce point on est tout à fait d'accord.
Le soucis, c'est que j'ai beau suivre l'actualité qui concerne Rust, je n'ai vu pour le moment aucun benchmark complet sérieux qui corresponde à ta définition. Je n'ai vu que quelques micro-benchmarks, souvent biaisés dans un sens ou dans l'autre. Et une fois corrigés, les performances devenaient comparables.

D'où le fait que je dise que le chiffre de 85% tiré de nulle part ne veut rien dire.

Citation Envoyé par yahiko Voir le message
Bien. Cela fait 5 ans qu'ils en parle de cette réécriture censée révolutionner les performances. Attendons donc vu qu'on n'est plus à une année près...
en effet, ne soit pas trop impatient car tu risques de devoir attendre encore quelques années. Servo n'est toujours qu'un projet de R&D même s'il commence à afficher certains sites à peu près convenablement, il est encore très très loin d'être fini.
Il faut voir que ce n'est pas pour rien que Apple et Google malgré leur moyens colossaux ont choisi de forker un moteur existant plutôt que de créer le leur. De nos jours, un moteur Web fait partie des applications les plus complexe. Là Mozilla en recrée un a partir de zéro, et en plus rajoute un niveau de complexité supplémentaire avec le parallélisme.

Citation Envoyé par yahiko Voir le message
Toujours est-il qu'on est donc bien d'accord que tu penses donc que Rust va contribuer à améliorer les performances de Firefox. Qu'on ne me dise pas que cela n'a pas été évoqué.
Disons que ce n'est pas les performance brutes de Rust qui vont améliorer Firefox dans un avenir proche. Il va juste être un outils pour faciliter le développement de Servo.
Avatar de yahiko yahiko - Expert Confirmé http://www.developpez.com
le 13/04/2015 à 14:41
Citation Envoyé par Uther Voir le message
Disons que ce n'est pas les performance brutes de Rust qui vont améliorer Firefox dans un avenir proche. Il va juste être un outils pour faciliter le développement de Servo.
C'est dit. C'est le principal.
Avatar de BugFactory BugFactory - Membre Expert http://www.developpez.com
le 13/04/2015 à 18:46
Pour ceux que ça intéresse je parlais de ce benchmark :
https://togototo.wordpress.com/2013/...la-and-nimrod/
- Comme tous les benchmarks, il est critiquable. Mais il a un mérite important : son auteur a remplacé le code qu'il avait écrit lui-même par des sources proposées par des experts de chaque langage.
- J'avais été impressionné par les performances du D, qui dépasse même le C++. Je me demandais si il y avait des changements du cité de Rust, le benchmark datant d'il y a près de deux ans.
- De nouveaux benchmarks publiés sur le même site donne une vitesse d'environ 90% du C. Un détail intéressant est que Rust s'en tire beaucoup mieux sur les architectures ARM que Java ou C# dont les performances plongent par rapport à ce qu'elles sont sur x86.

Je me suis intéressé à ces langages car je travaille principalement en Java. Pour des raisons qui sont hors sujet, j'en suis satisfait pour la création de clients légers mais pas pour le développement de clients lourds. Mais après avoir été pourri gâté par le Java, le C++ a l'air pénible. Je surveille donc les langages émergents en me demandant sur lequel investir. Je me retrouve donc devant ma boule de cristal, a essayer de prédire celui qui sera le plus adopté, et donc celui qui aura les meilleures garanties de pérennité.

A en croire l'article paru ici-même à
http://jeux.developpez.com/videos/Cp...jeux-triple-A/
le C++ est choisi en raison de ses performances. Tant pis si il est difficile : c'est le résultat qui compte. Rust, avec des performances en deça du C++, ne touchera pas ce public. Certes, toutes les applications n'ont pas besoin de performances extraordinaires. Les 10% de moins de Rust seraient imperceptibles sur les applications de gestion sur lesquelles je travaille habituellement. Mais qui peut le plus peut le moins, et un langage avec une vitesse comparable au C++ recevra beaucoup d'attention. Et donc plus de librairies, etc. D'où l'intérêt particulier que je prête à ce critère.


Offres d'emploi IT
Développement IT h/f
Alternance
Société Générale - Ile de France - Paris La Défense
Ingénieur développement d'applications mobiles h/f
CDI
ALTRAN - Languedoc Roussillon - Montpellier (34000)
Assistance administration filenet p8
CDD CDI
SII Strasbourg - Bourgogne - Dijon (21000)

Voir plus d'offres Voir la carte des offres IT
Responsable bénévole de la rubrique Accueil : le Service Publications -