Logo du langage Rust

Google investit un million de dollars dans la fondation Rust

Logo du langage Rust

Google est la dernière entreprise majeure en date à se pencher sérieusement sur le langage Rust. Ce n’était qu’une question de temps, tant Rust plait pour le développement système. On a pu voir récemment comment un ingénieur s’est lancé d’ailleurs dans le développement d’un noyau écrit intégralement dans ce langage.

Cet intérêt renforcé se manifeste par une donation d'un million de dollars à la fondation en charge de l'avenir du langage. Pour rappel, il avait été créé par Mozilla, avant de prendre son indépendance devant le succès croissant.

Cet investissement doit plus particulièrement améliorer l’interopérabilité entre Rust et C++. « Bien que Rust ne convienne pas à toutes les applications, la priorité donnée à une interopérabilité transparente avec C++ accélérera l'adoption par la communauté, s'alignant ainsi sur les objectifs de l'industrie en matière d'amélioration de la sécurité des mémoires », a ainsi indiqué Royal Hansen, vice-président chargé de la sûreté et de la sécurité.

Google dit avoir observé une accélération dans l’adoption Rust, au fur et à mesure que les obstacles sont gommés. En outre, d’après Dave Kleidermacher, vice-président chargé de l'ingénierie, de la sécurité et de la confidentialité d'Android, « Rust a empêché de manière proactive des centaines de vulnérabilités d'avoir un impact sur l'écosystème Android. Cet investissement vise à étendre l'adoption de Rust à divers composants de la plateforme ».

Commentaires (14)


Est ce qu'il y a des personnes ici qui utilise RUST pour de l'embarqué. Si oui, je suis pas contre un petit retour d'expérience :)
Mon retour.
On a ré-écrit du code C existant et fonctionnel en Rust: ca nous a forcé à faire une revue du code existant et corriger certaines "ambiguités". Notamment la mutabilité/ownership. On n'a pas trouvé de bug caché, mais ca évitera surement d'en créer dans le futur quand on modifiera/ajoutera du code.

Coder depuis zero en Rust: on n'a pas encore fait. Mais je vois ca comme un moyen d'imposer des "bonnes pratiques" a peu de frais. C'est pas très couteux d'écrire directement en Rust, comparé à faire du C et être obligé de faire des revues/corrections que Rust aurait évité.
Modifié le 07/02/2024 à 14h33

127.0.0.1

Mon retour.
On a ré-écrit du code C existant et fonctionnel en Rust: ca nous a forcé à faire une revue du code existant et corriger certaines "ambiguités". Notamment la mutabilité/ownership. On n'a pas trouvé de bug caché, mais ca évitera surement d'en créer dans le futur quand on modifiera/ajoutera du code.

Coder depuis zero en Rust: on n'a pas encore fait. Mais je vois ca comme un moyen d'imposer des "bonnes pratiques" a peu de frais. C'est pas très couteux d'écrire directement en Rust, comparé à faire du C et être obligé de faire des revues/corrections que Rust aurait évité.
Merci pour le retour.
A combien estime-tu le temps de formation puis de pratique pour qu'un développeur expérimenté en C devienne à l'aise en RUST ?

Magyar

Merci pour le retour.
A combien estime-tu le temps de formation puis de pratique pour qu'un développeur expérimenté en C devienne à l'aise en RUST ?
Je dirais qu'on n'est pas encore "à l'aise" en RUST puisqu'on s'est limité à porter le code existant. On ne connait sans doute pas tout ce qu'il est possible de faire avec ce langage.

De mémoire, les devs ont eu une formation rapide (1.5j je crois) qui a abordé la syntaxe puis les spécificités (ownership...) et au final un atelier pour mettre en pratique. Parce que les devs ca aime bien mettre les mains dans le code pour comprendre :)

Ensuite, et surtout, on a pris en prestation un codeur RUST expérimenté pour servir de référent à notre équipe de dev durant tout le portage. Ca a permis aux devs d'apprendre par la pratique (=certains diront sur le tas) mais auprès de qqn qui connait bien RUST... On espère donc qu'ils ont de bonnes pratiques de dev en RUST.

Le portage a duré 4-5 mois. L'équipe c'était 3 dev internes + le référent externe RUST.
L'équipe n'était pas à 100% sur le portage, mais pas loin. p-e 80% ?
je viens de lancer CLOC sur l'ancien code C et ca me dit "files: 63, code: 24637."

voila, c'est un retex fait a la va-vite sur notre experience qui n'est surement pas transposable à ton cas. Mais si ca peut aider.

127.0.0.1

Je dirais qu'on n'est pas encore "à l'aise" en RUST puisqu'on s'est limité à porter le code existant. On ne connait sans doute pas tout ce qu'il est possible de faire avec ce langage.

De mémoire, les devs ont eu une formation rapide (1.5j je crois) qui a abordé la syntaxe puis les spécificités (ownership...) et au final un atelier pour mettre en pratique. Parce que les devs ca aime bien mettre les mains dans le code pour comprendre :)

Ensuite, et surtout, on a pris en prestation un codeur RUST expérimenté pour servir de référent à notre équipe de dev durant tout le portage. Ca a permis aux devs d'apprendre par la pratique (=certains diront sur le tas) mais auprès de qqn qui connait bien RUST... On espère donc qu'ils ont de bonnes pratiques de dev en RUST.

Le portage a duré 4-5 mois. L'équipe c'était 3 dev internes + le référent externe RUST.
L'équipe n'était pas à 100% sur le portage, mais pas loin. p-e 80% ?
je viens de lancer CLOC sur l'ancien code C et ca me dit "files: 63, code: 24637."

voila, c'est un retex fait a la va-vite sur notre experience qui n'est surement pas transposable à ton cas. Mais si ca peut aider.
Merci, c'est déjà top, ça me permet d'avoir un ordre d'idée. Chez nous on en est encore loin, j'aimerai déjà qu'on puisse faire un POC/benchmark pour comparer avec un code C/C++ en termes de temps réel et d'occupation mémoire. Voir les avantages/inconvénients d'un point de vue pratique.
Encore un bel héritage de la fondation Mozilla ❤️
Rust, Python, Java et C/C++

Je pense qu'avec ces 4 là on a un quarté gagnant qui couvre quasiment tout...

(bon pour le gars qui programme encore tout seul dans son coin en assembleur, l'époque du Zilog Z80 - du cher regretté Amstrad CPC - , ben c'est mort et enterré :non:)

En attendant les implants Neuralink v.1X pour dialoguer directement du cerveau à la machine (à la Matrix quoi...:stress::D)
Modifié le 07/02/2024 à 14h39
Les fonctions lourdes en calcul, comme les codec vidéo, sont toujours optimisés avec des bouts de programme en assembleur, si j'en crois les discussions sur forum.doom9.org

Zebulon84

Les fonctions lourdes en calcul, comme les codec vidéo, sont toujours optimisés avec des bouts de programme en assembleur, si j'en crois les discussions sur forum.doom9.org
Oui assembleur est encore beaucoup utilisé pour ces fonctions. Notamment dans VLC.

Kwacep

Oui assembleur est encore beaucoup utilisé pour ces fonctions. Notamment dans VLC.
j'imagine qu'une partie du problème réside dans l'incapacité des languages compilés d'utiliser certaines instructions liées par exemple à des type de données non gérées.

J'ai en tête les calculs en décimal codé binaire qui sert au type DECIMAL des dialectes SQL et sans aucun équivalent en C, C++, java ou rust, à ma connaissance.

Mais il y a sûrement d'autres bonnes raisons

Kwacep

Oui assembleur est encore beaucoup utilisé pour ces fonctions. Notamment dans VLC.
Tout à fait, c'est vrai dont notamment tous les AV1 rav1 (Rust & Assembleur) et le dav1d (C99 & Assembleur).

Oui il y a encore quelques niches (et sûrement pas beaucoup de programmeurs non plus qui pratiquent ou qui maitrisent l'assembleur).

Zebulon84

Les fonctions lourdes en calcul, comme les codec vidéo, sont toujours optimisés avec des bouts de programme en assembleur, si j'en crois les discussions sur forum.doom9.org
Tout à fait, c'est vrai dont notamment tous les AV1 rav1 (Rust & Assembleur) et le dav1d (C99 & Assembleur).

Oui il y a encore quelques niches (et sûrement pas beaucoup de programmeurs non plus qui pratiquent ou qui maitrisent l'assembleur).
Modifié le 14/02/2024 à 11h46

Historique des modifications :

Posté le 14/02/2024 à 11h45


Tout a fait ca, c'est vrai dont notamment tous les AV1 rav1 (Rust & Assembleur) et le dav1d (C99 & Assembleur).

Oui il y a encore quelques niches (et surement pas beaucoup de programmeurs non plus qui pratiquent ou maitrisent l'assembleur ).

Le projet Dav1d de VLC a énormément d'assembleur

Magyar

Le projet Dav1d de VLC a énormément d'assembleur
Tout à fait, c'est vrai dont notamment tous les AV1 rav1 (Rust & Assembleur) et le dav1d (C99 & Assembleur).

Oui il y a encore quelques niches (et sûrement pas beaucoup de programmeurs non plus qui pratiquent ou qui maitrisent l'assembleur).
Fermer