Publié dans Logiciel

9

Facebook affiche désormais son amour pour Rust

Facebook affiche désormais son amour pour Rust

Le réseau social a commencé à se servir du langage dès 2016, pour la réécriture d’un composant nommé Mononoke et impliqué dans le contrôle des sources. Le projet fut un succès, avec un objectif atteint sur les performances et la fiabilité. Selon Facebook, il s’agissait d’un composant idéal, car largement isolé des autres systèmes.

Au cours des trois années suivantes, l’adoption de Rust a grandi pour atteindre un nombre croissant de projets, tous assez isolés – essentiellement des outils pour développeurs – pour ne pas introduire d’incompatibilité lors d’interfaçages avec le code existant en C++.

Facebook dispose maintenant d’une équipe dédiée à Rust dans la prise en charge des langages, ce qui signifie répondre officiellement aux développeurs utilisant Rust pour manier les API Facebook et travailler à l’interopérabilité entre Rust et C++.

L’entreprise annonce dans la foulée rejoindre la Rust Foundation. Un acteur de poids pour soutenir un langage gagnant grandement en visibilité depuis sa création par Mozilla.

Pour l’instant, Facebook ne parle pas de remplacer tout l’ancien code par du Rust : le travail serait titanesque, et le rapport investissement/bénéfice s’inverserait. D’autant que l’entreprise adopte rapidement les nouveautés du C++ qui l’intéressent, par exemple les coroutines de C++20.

Elle prépare surtout un avenir où – comme Mozilla le fait depuis des années – de nouveaux projets pourront être écrits en Rust et viendront se greffer sur la base existante. Facebook voit pour l’instant le langage comme une extension intéressante, qui ne remet pas en cause l’existant.

9

Tiens, en parlant de ça :

Le fichier des empreintes digitales sera interconnecté avec huit autres fichiers

FAED y verse

17:24 DroitSécu 2
Les logos de Facebook et Meta dans des carrés en 3D sur un fond grisé dégradé

Le ciblage publicitaire ne peut pas utiliser des données personnelles récupérées ailleurs

Schrems vs Meta, encore et encore

16:53 DroitSocials 6

Windows 11 ajoute des publicités dans le menu Démarrer, comment les supprimer

Rogntudjuuu !

11:18 Soft 57
next n'a pas de brief le week-end

Le Brief ne travaille pas le week-end.
C'est dur, mais c'est comme ça.
Allez donc dans une forêt lointaine,
Éloignez-vous de ce clavier pour une fois !

9

Fermer

Commentaires (9)


C / C++ le nouveau Cobol ?


Ce que j’aime beaucoup avec ces organisations, c’est que même si des acteurs qui ont très mauvaise presse et qui une éthique très discutable le rejoignent comme Facebook & co, la manière dont elles fonctionnent fait que ça ne peut que leur bénéficier et donc bénéficier aux développeurs et indirectement aux utilisateurs :)


Meilleur langage.


Linux, Microsoft, Facebook…



Vive le Rust washing pour raviver la confiance des gens dans la sécurité des logiciels.


C’est une bonne nouvelle car cela augmente la légitimité de choisir ce language dans les développements.



Je pense que ce sont plus les devs et les chefs projets que cela rassure car, comme pour le C++ à son époque, ce nouveau language permet de minimiser les problèmes d’intégration et de maintenance.



wanou a dit:


Je pense que ce sont plus les devs et les chefs projets que cela rassure car, comme pour le C++ à son époque, ce nouveau language permet de minimiser les problèmes d’intégration et de maintenance.




Pour parler de mon cas personnel, toutes les fois où on me parle de Rust c’est quasi-exclusivement pour les annotations syntaxiques des pointeurs (~ et @) qui permettent de détecter les erreurs de gestion de la mémoire au moment de la compilation.



Le reste du “langage” Rust c’est plutôt un point négatif pour les dev/cdp car ca fait un autre langage a apprendre/gérer.



En gros, un C/C++ avec ces deux annotations suffirait à 99% des gens qui encensent Rust.


L’opérateur ~ n’existe plus depuis Rust 1.0, c’est remplacé exclusivement par le type Box.



L’opérateur @ n’a rien à voir avec les pointeurs mais est utilisé dans les patterns pour pouvoir récupérer la valeur qui répond au pattern:



match a {
b @ 1 … 2 => …,
b @ _ => …,
}



L’avantage du Rust par rapport au C++ ne réside pas dans l’existence de smart pointeurs dont tu parles parce qu’ils existent déjà en C++.



C’est plutôt dans sa manière de contrôler la propriété (ownership) des variables, de savoir si tu peux de manière safe partagé un type de données entre plusieurs threads, etc. qu’il apporte un réel plus. On peut beaucoup plus sereinement essayer de conserver le plus possible de référence pour éviter des copies et allocations inutiles ou de partager des données entre threads en sachant qu’on garantisse le bon niveau de synchronisation. Essaye de proposer un lib de parsing XML C++ qui évite de faire des allocations et apprend à tes users qu’il faut faire gaffe que c’est des références et qu’il ne faut absolument pas qu’elles vivent plus longtemps que le document xml, et tu vas pleurer en support parce que c’est pas vérifié par le compilateur.



Et dans le “reste du langage”, je trouve qu’il apporte beaucoup de modernité (comparé au C/C++, moins pour d’autres langages, mais il s’attaque plutôt aux langages systèmes qui sont vraiment à la traine de ce côté-là), les apports de type pattern matching, programmation fonctionnelle, un système de packaging standard que la communauté utlise vraiment, ça fait beaucoup de bien en tant que dev système !



wanou a dit:


C’est une bonne nouvelle car cela augmente la légitimité de choisir ce language dans les développements.




Mouais. En somme si tout le monde fait tu le fait ?



La justification de l’usage d’un langage se fait par le coté technique et PAS parce que un gros loup y vient. Surtout s’il y vient pour mettre le souk…



C’est un peu comme de prendre une 2CV pour faire les 24 heures du Mans sous prétexte que tout le monde en a une. Jacky’s touch in da house.



TexMex a dit:


Mouais. En somme si tout le monde fait tu le fait ?




Non, je ne suis pas du genre à tout jeter à chaque nouveauté. De fait, côté interprété, je fait du perl car je fait de la génération de documents pdf à partir de données collectées en base de données et le module base de données de perl est juste une tuerie. Bref, je ne fait pas dans l’effet de mode.




TexMex a dit:


La justification de l’usage d’un langage se fait par le coté technique et PAS parce que un gros loup y vient. Surtout s’il y vient pour mettre le souk…




Oui et non, cela dépend du point de vue. Personnellement, je suis convaincu de l’intérêt de Rust, pour des raisons très techniques. Le problème vient souvent des décideurs (chefs d’entreprise, chefs projets), qui sont des quiches en technique et qu’il faut convaincre du bien fondé de tes choix.
Parler de réduction des risques et du temps d’intégration est déjà un argument qui leur parle si tu arrive à traduire cela en €. Dire que des boîtes surveillées à la culotte par leur actionnaires ont un retour d’expérience positif avec ce langage est un argument qui leur parle très bien car ils sont également sur la sellette.
En gros, tu vend de la diminution de coûts et de risques pour le projet et une diminution des risques pour leur fesses. Ils achètent donc de la sérénité.