Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

La Fondation Mozilla publie Rust 0.1 et le compilateur
Pour son nouveau langage de programmation qui serait simple et plus sécurisé

Le , par Idelways

22PARTAGES

7  0 
Mise à jour du 13/07/2012

Rust le langage de développement de la fondation Mozilla évolue rapidement et atteint sa version 0.3.

Pour rappel, Rust a été développé comme une alternative aux langages C et C++, et 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".

La version 0.3 de Rust apporte 1900 changements par rapport à la version 0.2 qui avait été publiée en avril dernier, dont un nettoyage sémantique du langage, l’amélioration de l’expérience utilisateur lors du codage, de nouvelles caractéristiques linguistiques encore en phase expérimentale et la suppression de certaines fonctions obsolètes.

Le nombre de types supporté par le langage évolue avec des nouvelles fonctions de temps. Rust dispose désormais des extensions de syntaxe pour la création des chaines à partir des expressions, et est même capable d’utiliser le contenu d’un fichier comme une expression Rust.

De nouvelles fonctionnalités expérimentales dont le support de nouveaux types de vecteurs ont été ajoutées. La prise en charge du shebang (#! - Indicateur en entête d’un fichier sous Unix, pour spécifier au système que ce fichier est un script, tout en fournissant le nom de l'interpréteur) permet désormais de définir des scripts Rust.

Rust 0.3 offre également un contrôle plus granulaire sur les avertissements et les erreurs générées par le compilateur.

Rust 0.3 est considéré comme une version Alpha et vise principalement les early adopters. Il est disponible sous une licence open source MIT pour Linux, Windows, Mac OSX et FreeBSD. Rust a été utilisé par Mozilla pour développer le moteur de rendu expérimental pour navigateur Servo.

Télécharger Rust 0.3

Source : Notes de version

Rust 0.2 disponible : la nouvelle version du langage de Mozilla supporte FreeBSD
et apporte de nouvelles fonctions

Mise à jour du 18/04/2012

Juste quelques mois après la publication de la version 0.1 de Rust et de ses premiers outils de développement, Mozilla fait encore évoluer son langage de programmation.

La communauté en charge du développement de Rust vient d’annoncer la publication de la version 0.2 et de son compilateur qui intègre plus de 1500 changements.

Avec cette version, Mozilla met à la disposition des développeurs un nouveau port des outils de Rust pour les systèmes FreeBSD 64 bits.

Cette mise à jour apporte des améliorations de performances pour le compilateur, la transmission de messages et introduit un ordonnanceur explicite. Les fonctions C-callback, les boucles infinies et les caractéristiques expérimentales comme les classes, les surcharges des opérateurs et les pointeurs ont subi également quelques modifications.

Pour rappel, Rust met beaucoup l’accent sur 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 0.2 est considéré comme une version Alpha et vise principalement les early adopters. Il est disponible sous une licence open source MIT pour Linux, Windows, Mac OSX et FreeBSD.

Télécharger RUST 0.2

La Fondation Mozilla publie Rust 0.1
et le compilateur de son nouveau langage de programmation

Mise à jour du 25/01/2012, par Hinault Romaric

Plus d’un an après l’annonce de Rust, le nouveau langage de développement de la Fondation Mozilla franchit un nouveau cap et reçoit ses premiers outils et plateforme de développement.



La Fondation Mozilla vient de publier la première version du compilateur Rust ainsi que plusieurs autres outils de développements open source.

Cette première mouture est essentiellement destinée aux « early adopters » et aux passionnés du langage. Ceux-ci peuvent déjà utiliser ces outils pour l’écriture de leur programme et des bibliothèques pour Rust. Attention cependant à ne pas l’utiliser dans un environnement de production, car les changements à venir pourraient briser le code.

Bien que la syntaxe de Rust soit assez proche de celle du C et du C++, le langage est structuré différemment et met beaucoup l’accent sur 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".

De ce fait, les pointeurs nuls par exemple ne sont pas autorisés et les objets sont par défaut immuables.

Le compilateur et les outils sont disponibles pour les systèmes d’exploitation Windows (32 et 64 bits), Mac OS X et Linux. Un tutoriel pour les développeurs a également été publié par la fondation pour une prise en main facile du langage et de ses outils.

Les améliorations apportées à Rust rendent le langage encore plus mature et assez stable. Cependant, plusieurs de ses fonctionnalités sont encore incomplètes et sa librairie standard est encore sujette à des changements.

Télécharger Rust 1.0

Source : Blog Mozilla

Et vous ?

Allez-vous tester ce langage ?

La Fondation Mozilla prépare « Rust », un langage de programmation
qui serait multi-paradigme, simple, concurrentiel et pratique

La Fondation Mozilla est en plein développement d'un langage de programmation appelé « Rust ».

L'objectif affiché par l'équipe du projet est de "concevoir et implémenter un langage statique sûr, concurrentiel et efficace".

Développé en toute discrétion (et à temps partiel) depuis 2006, le langage est devenue en 2009 assez mature pour pouvoir effectuer des tests basiques.

Bien qu'il ne soit pas encore prêt pour un quelconque usage en production, il serait, selon ses concepteurs, assez stable et complet pour le rendre publique.

Il dispose déjà d'un compilateur écrit en Ocaml (en attendant d'avoir son propre compilateur écrit en Rust), d'une bibliothèque d'exécution (incomplète, mais néanmoins fonctionnelle) et d'une ébauche de bibliothèque standard.

Rust se veut par ailleurs multi-paradigme. Autrement dit, il permet de coder suivant plusieurs paradigmes (manière ou style), comme l'orienté objet, le fonctionnel, le procédurale, etc.

La motivation derrière le développement de ce langage de plus est, comme c'est généralement le cas, les insuffisances des autres langages.

Les autres langages, selon l'équipe de Rust, seraient plus dogmatiques que pratiques, ne donneraient pas assez d'importance à la sûreté, et n'offriraient qu'un support limité à la programmation concurrentielle.

Rust propose donc de remédier à ces faiblesses, sans pour autant être avant-gardiste. Ce nouveau langage privilégie en effet les techniques qui ont fait leur preuves, que certain(e)s qualifieront de « remises au goût du jour ».

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
iter pairs() -> tup(int,int) {
  let int i = 0;
  let int j = 0;
  while (i < 10) {
    put tup(i, j);
    i += 1;
    j += i;
  }
}
fn main() {
  let int i = 10;
  let int j = 0;
  for each (tup(int,int) p in pairs()) {
      log p._0;
      log p._1;
      check (p._0 + 10 == i);
      i += 1;
      j = p._1;
    }
  check(j == 45);
}
Un exemple du code Rust issu de la FAQ du projet

Reste à savoir si Rust arrivera à se faire une place parmi les nombreux langages existants.

Et si Mozilla l'utilisera dans ses applications dans les années à venir.

Le code source et la documentation du langage sont disponible sur le compte GitHub du projet

Source : La FAQ de Rust

Et vous ?

Que pensez-vous des nouveautés et de la syntaxe de ce langage ?
Arrivera-t-il à se faire une place parmi les nombreux langages existants ?

En collaboration avec Gordon Fowler

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de vincepoencet
Membre régulier https://www.developpez.com
Le 01/12/2010 à 17:01
C'est toujours le même problèmes avec les nouveaux langages :
Révolutionnaires ou pas, un langage seul ça ne sert pas à grand chose, c'est surtout la richesse du "framework" associé qui font l'adoption de masse.
Que propose Rust pour :
-acces au données
-interface graphique
-traitement web (webservices, ftp, http)
-etc..

Parce que faire des itérations d'une manière toujours plus élégante, c'est bien joli mais bon
15  2 
Avatar de Niark13
Membre éclairé https://www.developpez.com
Le 01/12/2010 à 15:11
Langage statique multiparadigme, pragmatique, orienté concurrence et sûreté ?
Mince, on dirait le cahier des charges de D 2.0 !
Déjà que ce dernier n'arrive pas à percer, y avait-il encore besoin d'un nouveau langage ?
6  0 
Avatar de _skip
Expert éminent https://www.developpez.com
Le 02/02/2012 à 17:22
Citation Envoyé par Gilliard Voir le message
Encore un langage nouveau, peut-être académiquement intéressant, mais qui ne me semble pas répondre à un besoin.
Vous êtes nombreux ici à ne pas voir à quels besoins il pourrait répondre. De mon côté un langage à compilation AOT qui m'offre un compromis entre la vitesse du C/C++ et la productivité de java, c'est intéressant.

J'ai souvent dans ma branche des projets ayant des exigences en performances/mémoire élevées que java peine à satisfaire (en cause les nombreuses vérifications du compilateur, l'auto boxing, le GC etc..), mais dont la réalisation en C/C++ est très pénible.

S'il y avait un compromis entre la sécurité, l'homogénéité et la productivité offerte par java et la vitesse du code natif, franchement je serai enchanté d'en profiter.


Mais quelle horreur, c'est là qu'il faut INVENTER quelque chose. Ces imbrications entre langages de description (HTML, CSS, variantes-XML etc) et langages "d'action" (PHP, .NET, d'un côté, JavaScript de l'autre), sont affreusement lourdes, impossibles à tester statiquement (en tout cas pas autant qu'un C#). La preuve qu'il s'agit d'infâmes bricolages, c'est le nombre d'outils genre Joomla ou autres libres ou non qu'on a vu inonder le marché - avec le problème de trouver un hébergeur qui utilise justement le "truc" qu'on a choisi ... et d'être compatible avec tous les navigateurs: là est le vrai problème.
Là tu me fais plaisir! J'ai d'ailleurs été très critique quant à l'arrivée de html5 sur ce forum ce qui m'a valu bien des votes négatifs. Pour moi continuer sur cette base html/css/javascript c'est bétonner sur des sables mouvants. On a le javascript qui était chouette pour faire des petits bricolages DOM à son époque et on essaie d'en faire tout et surtout n'importe quoi en empilant les spécifications sans se poser la question si c'est vraiment la bonne solution pour de la RIA et du code métier.
6  0 
Avatar de MiaowZedong
Membre extrêmement actif https://www.developpez.com
Le 29/01/2012 à 11:55
Citation Envoyé par Uther Voir le message
Sauf que le but de Boot2Gecko est de ne pas recourir au natif : les applications B2G seront entièrement des application HTML5 / Javascript. Dans ce contexte là, Rust n'a pas vraiment sa place dans un SDK B2G. Il irait à l'encontre des objectifs du projet.

Faire une environnement de Dev complet est certes indispensable, et la question se posera forcément un jour si le projet fonctionne. Mais quand on en est a travailler sur la spécification du langage, c'est mettre la charrue 100 kilomètres devant les bœufs.
Dans un premier temps, une bonne solution serait certainement de faire des wrapper avec une ou des API existantes comme Qt, wxWidget, ...
Sans vouloir t'offenser, je pense que ton raisonnement fait fi d'une des préconditions nécessaires à tout projet: répondre à un besoin.

Je te brusque un peu mais j'exagère à peine quand je dis que ton post peut se résumer à "de toute façon, on n'a pas besoin d'IDE puisque notre projet ne sert à rien". S'il n'y a de toutes façons aucune raison d'utiliser ce language, le projet reste purement académique et anecdotique, non?

En fait tes posts me donnent l'impression que le but est de créer un language de programmation pour créer un language de programmation
5  0 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 02/12/2010 à 11:03
Citation Envoyé par air-dex Voir le message
En attendant, je pense que je vais regarder de plus prêt ce "Rust", et surveiller Mozilla à qui Google est en train de donner des idées (des langages de programmations (XUL, Rust), projets de smartphones, navigateur Web (là c'est l'inverse ^^), etc.).
Heu, Il faut avoir beaucoup d'imagination pour penser que Mozilla s'inspire tant de Google pour autre chose que le navigateur.

XUL est aussi vieux que Mozilla, donc ce n'est certainement pas google qui l'a inspiré.
Quant a Rust, il n'est pas vraiment inspiré du Go, il avait d'ailleurs commencé à faire parler de lui bien avant que Google annonce le Go.

Pour le smartphone, là encore il faut avoir de l'imagination pour voir un lien:
-Google réalise un OS de Smartphone.
-Mozilla a juste sponsorisé un concours de créativité, sans aucune contrainte de réalisabilité, dont le gagnant est le concept de l'hardware d'un Smartphone.
4  0 
Avatar de Hinault Romaric
Responsable .NET https://www.developpez.com
Le 25/01/2012 à 12:28
La Fondation Mozilla publie Rust 0.1
et le compilateur de son nouveau langage de programmation

Mise à jour du 25/01/2012, par Hinault Romaric

Plus d’un an après l’annonce de Rust, le nouveau langage de développement de la Fondation Mozilla franchit un nouveau cap et reçoit ses premiers outils et plateforme de développement.



La Fondation Mozilla vient de publier la première version du compilateur Rust ainsi que plusieurs autres outils de développements open sources.

Cette première mouture est essentiellement destinée aux « early adopters » et aux passionnés du langage. Ceux-ci peuvent déjà utiliser ses outils pour l’écriture de leur programme et des bibliothèques pour Rust. Attention cependant à ne pas l’utiliser dans un environnement de production, car les changements à venir pourraient briser le code.

Bien que la syntaxe de Rust soit assez proche de celui du C et du C++, le langage est structuré différemment et met beaucoup l’accent sur 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".

De ce fait, les pointeurs nuls par exemple ne sont pas autorisés et les objets sont par défaut immuables.

Le compilateur et les outils sont disponibles pour les systèmes d’exploitation Windows (32 et 64 bits), Mac OS X et Linux. Un tutoriel pour les développeurs a également été publié par la fondation pour une prise en main facile du langage et de ses outils.

Les améliorations apportées à Rust rendent le langage encore plus mature et assez stable. Cependant, plusieurs de ses fonctionnalités ont encore incomplètes et sa librairie standard est encore sujette à des changements.

Télécharger Rust 0.1

Source : Blog Mozilla

Et vous ?

Allez-vous tester ce langage ?
4  0 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 29/01/2012 à 15:44
Citation Envoyé par _skip
Le problème c'est que c'est un tout. Un toolkit sérieux ça amène de l'intérêt, et donc des utilisateurs et donc des nouvelles libs (ce qui fait la richesse du langage en entreprise de nos jours). Le truc c'est que tant que ça reste dans un état notepad + compilateur en ligne de commande qui sert à faire des "hello world" et des "class Foo extends Bar" ça n'amènera que peu d'intérêt et c'est un cercle vicieux.
Tout compilateur en passe forcément par là a un moment, il faut bien avoir un langage avant de faire son IDE et son API, sinon, on va dans le mur.

La situation de Rust n'est pas comparable avec D ou Go. Cette version 0.1 est juste un point sur le travail en cours, Mozilla contrairement a Google ayant fait le choix de ne pas cacher les développement en cours. Cette version a seulement pour but d'avoir des retours de la part de la communauté sur le langage lui même, pas de produire des applications, le projet n'en est pas encore à ce stade.
C'est pour ça qu'il s'agit uniquement d'un petit billet sur le blog d'un membre du projet, pas d'une communication officielle, l'équipe de Rust ne cherche pas encore des utilisateurs, juste des testeurs.

Citation Envoyé par _skip
Si tu prends le cas de D, c'est un peu à mon impression ce qui s'y passe. Le langage est là, il est très bien, mais ça reste dans un état où personne ne veut s'y risquer. En dehors des problèmes de librairies standards qu'il y a eus, tu as plein d'IDE faits par des contributeurs, les 3/4 ont été abandonnés dans un état alpha ou pre-bêta car tout le monde semble y être allé de sa petite initiative et à tous il manque la même chose : un éditeur puissant avec un support débugger etc...
Donc pour moi, pas d'IDE et pas de bon support d'une techno GUI = projet mort né. Toutes les technos de qualité entreprise doivent avoir ça.
Au risque de me répéter, je suis d'accord qu'une API riche et un support d'un IDE est indispensable de nos jours si on veut se faire une place dans le développement applicatif. Mais avoir une spécification du langage à peu près stable est un minimum avant de se lancer la dedans.

Ensuite, il reste à se poser la question : comment on fait ça?
Solution 1 : On programme tout ça en Rust. Certes, ça fait une belle vitrine pour les possibilités du langage, mais ça peut prendre de très longues années avant d'avoir un environnement utilisable dont la qualité approche l'existant pour d'autres langages.
Vu que les moyens de l'équipe Rust sont limités, ça finirait probablement comme tous les outils pour D, dont tu parles.

Solution 2 : On adapte des outils préexistants comme (Eclipse, CodeBlocks, ...) et on fait des wrappers vers des API existantes (wxWidget, Gtk, Qt, ...), ce qui permettrait d’avoir rapidement un environnement fonctionnel.

Le compilateur étant basé sur LLVM, les gens qui font ça n'ont pas l'air de naïf qui pensent tout refaire de 0, et je suppose qu'ils partiront vers la seconde solution (du moins dans un premier temps)

Citation Envoyé par _MiaowZedong
Sans vouloir t'offenser, je pense que ton raisonnement fait fi d'une des préconditions nécessaires à tout projet: répondre à un besoin.
Au contraire, j'ai bien analysé les besoins auquel Rust répond : apporter plus de souplesse et de sécurité dans le développement d'applications ou de systèmes.
A terme il pourrait remplacer le C++ dans le code de Mozilla, ou de n'importe quelle application native. Il permettrait même de coder un OS.
Par contre il ne répond pas du tout aux besoins d'un SDK pour B2G, vu que le but de B2G est d'avoir uniquement des applications Web.
4  0 
Avatar de Uther
Expert éminent sénior https://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.
4  0 
Avatar de DonQuiche
Expert confirmé https://www.developpez.com
Le 19/05/2015 à 13:55
Citation Envoyé par pierreact Voir le message
Je ne vois pas ce que rust ou go peuvent apporter de plus.
Si ton programme Rust compile (en deux secondes et non pas en deux minutes contrairement au C++), alors tu es sûr que ton modèle de concurrence et ta gestion de la mémoire sont correctes (*). Y compris si certains de tes stagiaires ou programmeurs juniors ont mis leurs mains dedans ! A l'heure où les gains de performances se font sur le parallélisme de masse, c'est un très gros avantage.

Ce ne sera jamais le cas avec le C++ et ses pointeurs qui prolifèrent, au mieux tu peux t'arranger pour utiliser aussi souvent que possible des constructions sûres que peu savent correctement utiliser et dont tu sortiras pourtant régulièrement et dont tu ne pourras pas détecter et inspecter les violations (je te laisse chercher et passer en revue tous les pointeurs de ton code et examiner à la main tous les graphes d'appels conduisant à des appels asynchrones).

Clamer que le C++ 11 résout les problèmes de concurrence et de productivité, et qu'il n'y a rien à attendre des nouveaux langages, c'est comme clamer que le minitel rend Internet inutile. Quand le C++ est-il devenu une religion ?!

Citation Envoyé par FlyersWeb Voir le message
L'inconvénient, je pense, sera une courbe d'apprentissage un peu plus longue que d'autres langages puisqu'il faut bien comprendre ses erreurs pour pouvoir les corriger avec une analyse statique.
En même temps si un dév comprend comment gérer la mémoire manuellement en C++, il comprend tout de suite ce que Rust attend de lui. Et s'il ne le comprenait pas, mieux vaut que Rust le lui enseigne plutôt que de le laisser semer le champ de mines en C++.
4  0 
Avatar de DonQuiche
Expert confirmé https://www.developpez.com
Le 25/05/2015 à 7:48
Citation Envoyé par Ph. Marechal Voir le message
La sécurité : je m'en charge
Tu peux me donner le nom de tes produits, afin que je les évite stp ?

La sécurité devrait être une affaire d'outils et de méthodologie, pas d'égo. L'être humain est faillible.

Quels langages modernes ? On croit rêver en lisant ça - c'est tout juste si les programmeurs C/C++ ne sont pas traités de vieux croutons - tout en leur reconnaissant quand même l'efficacité et le contrôle de bas niveau !
Le C++ va sur ses cinquante ans, ses chaînes littérales sont encodées en ASCII, il supporte des digraphes dangereux pour les jeux de caractères obsolètes qui ne contenaient pas certains symboles, son modèle de compilation est problématique et atrocement long car le modèle est prévu pour des ordinateurs avec trop peu de mémoire pour faire tenir une représentation sémantique du code en mémoire et il a encore recours à des mécanismes dont toute l'industrie a appris à se méfier durant le dernier demi-siècle (types "standards" spécifiques à chaque plateforme par exemple).

Oui, je pense qu'on peut dire que le C++ est un vieux schnoque. Mais encore nécessaire pour l'instant.

Ce qui n'est pas forcément le cas de ses utilisateurs, le C++ étant encore enseigné dans de nombreux endroits. Pourquoi en faire une affaire personnelle ?
5  1