Selon vous, pourquoi Mozilla a besoin de ce nouveau OS ?
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.
@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 ?
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.
En effet.
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"
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.
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
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.
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.
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 ?
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é...
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.Envoyé par patmaba
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?
@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.
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).
Justement, Rust est un outil pour y parvenir.
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.
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.
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.
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.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.
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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager