IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

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 !

Rust, réalité et fiction : 5 leçons tirées de l'expérience Rust de Google en 2022
Selon l'enquête de Lars Bergstrom et Kathy Brennan

Le , par Jade Emy

66PARTAGES

20  0 
Lars Bergstrom (PhD - Langage de programmation de la plateforme Android) et Kathy Brennan (PhD - Systèmes d'exploitation de bas niveau, Chercheur principal en expérience utilisateur) ont réalisé une enquête concernant l'utilisation du langage Rust. Voici la publication qu'ils ont faite sur les résultats de cette expérience, axée sur 5 points.


Atteignant la version 1.0 en 2015, Rust est un langage relativement nouveau qui a beaucoup à offrir. Les développeurs qui s'intéressent aux garanties de performance et de sécurité offertes par Rust se demandent s'il est possible d'utiliser Rust à la place de ce qu'ils utilisaient jusqu'à présent. Que se passerait-il si les grandes entreprises essayaient de l'utiliser dans leur environnement actuel ? Combien de temps faudrait-il aux développeurs pour apprendre le langage ? Une fois qu'ils l'auront appris, seront-ils productifs ?

Dans cet article, nous analyserons quelques données couvrant des années d'adoption précoce de Rust chez Google. Chez Google, nous avons constaté une augmentation de l'adoption de Rust, en particulier dans nos applications et plateformes grand public. En nous appuyant sur les plus de 1 000 développeurs de Google qui ont écrit et livré du code Rust dans le cadre de leur travail en 2022, nous allons nous attaquer de front à certaines rumeurs, en confirmant certains problèmes qui pourraient être améliorés et en partageant certaines découvertes éclairantes que nous avons faites en cours de route.

Nous tenons à remercier tout particulièrement l'un de nos principaux fournisseurs de formation, Ferrous Systems, qui nous a permis de commencer à adopter Rust chez Google. Nous souhaitons également mettre en avant de nouveaux supports de formation en libre-service appelés Comprehensive Rust 🦀 sur lesquels la communauté et nous-mêmes avons travaillé au cours des derniers trimestres.

Rumeur 1 : Rust prend plus de 6 mois à apprendre - Démenti !

Tous les participants à l'enquête sont des développeurs de logiciels professionnels (ou dans un domaine connexe), employés par Google. Bien que certains d'entre eux aient une expérience préalable de Rust (environ 13%), la plupart d'entre eux viennent de C/C++, Python, Java, Go, ou Dart.

D'après nos études, plus de 2/3 des répondants sont confiants dans leur capacité à contribuer à une base de code Rust en deux mois ou moins lorsqu'ils apprennent Rust. De plus, un tiers des personnes interrogées deviennent aussi productives en utilisant Rust que d'autres langages en deux mois ou moins. En quatre mois, ce chiffre est passé à plus de 50 %. De manière anecdotique, ces chiffres correspondent au temps nécessaire aux développeurs pour adopter d'autres langages, à l'intérieur comme à l'extérieur de Google.

Dans l'ensemble, nous n'avons vu aucune donnée indiquant qu'il y a une pénalité de productivité pour Rust par rapport à n'importe quel autre langage que ces développeurs ont utilisé précédemment chez Google. Les étudiants qui suivent le cours Comprehensive Rust 🦀 le confirment : les questions posées le deuxième et le troisième jour montrent que les développeurs de logiciels expérimentés peuvent se familiariser avec Rust en très peu de temps.


Rumeur 2 : Le compilateur Rust n'est pas aussi rapide que les gens le souhaiteraient - Confirmé !

La lenteur du compilateur est de loin la première difficulté rencontrée par les développeurs lors de l'utilisation de Rust, avec seulement un peu plus de 40% des personnes interrogées qui trouvent la vitesse acceptable.

Il y a déjà un effort fantastique de la part de la communauté pour améliorer et suivre les performances de Rustc. Cet effort est soutenu par des bénévoles et plusieurs entreprises (dont Google), et nous sommes ravis de voir que des développeurs clés travaillent dans ce domaine, mais il est clair qu'un soutien supplémentaire continu et potentiellement croissant serait bénéfique.

Rumeur 3 : Le code non sécurisé et l'interopérabilité sont toujours les plus grands défis - Démenti !

Les trois domaines les plus difficiles de Rust pour les développeurs actuels de Google sont les suivants :

  • Macros
  • Propriété et emprunt
  • Programmation asynchrone

L'écriture de code non sécurisé et la gestion de l'interopérabilité C/C++ ont été citées comme des choses que les développeurs de Google ont rencontrées, mais ne sont pas des défis majeurs. Ces trois autres domaines sont des endroits où l'équipe de conception du langage Rust a investi dans l'aplanissement de la courbe d'apprentissage en général ainsi que dans l'évolution continue. Les résultats de notre enquête interne sont tout à fait d'accord avec ces domaines d'investissement.

Rumeur 4 : Rust a des messages d'erreur de compilateur étonnants - Confirmé !

Rust est généralement considéré comme ayant certains des messages d'erreur les plus utiles dans l'espace compilateur, et cela s'est confirmé dans cette enquête également. Seuls 9 % des répondants ne sont pas satisfaits de la qualité des informations de diagnostic et de débogage en Rust. Les commentaires des participants à Comprehensive Rust 🦀 vont dans le même sens : les gens sont étonnés par les messages du compilateur. Au début, c'est une surprise - les gens sont habitués à ignorer les grosses erreurs du compilateur, mais après s'être habitués, les gens l'adorent.

Voici des extraits d'un exercice que certains Googlers internes ont fait pour pratiquer Rust. (résoudre Advent of Code 2021 en Rust)

Au cinquième jour de l'exercice, nous devons effectuer une recherche d'entrées dans un tableau. L'erreur ci-dessous ne détecte pas seulement que notre filtrage sur le résultat manquait un cas, mais suggère également une solution.


Le jour 11, nous devons vérifier si un élément se trouve à l'intérieur des limites d'une grille. L'avertissement Rust ci-dessous détecte que nous avons une comparaison redondante due au fait que les types sont non signés, et suggère du code qui pourrait être supprimé.


Rumeur 5 : Le code Rust est de haute qualité - Confirmé !

Les personnes interrogées ont déclaré que la qualité du code Rust était élevée - 77 % des développeurs étaient satisfaits de la qualité du code Rust. En fait, lorsqu'on leur a demandé de comparer s'ils pensaient que le code Rust était plus correct que le code qu'ils écrivent dans d'autres langages, une écrasante majorité de 85% des répondants sont convaincus que leur code Rust est correct.

Et il n'est pas seulement correct, il est aussi facile à réviser. Plus de la moitié des personnes interrogées affirment que le code Rust est incroyablement facile à réviser. En tant que responsable de l'ingénierie, ce résultat est, à bien des égards, au moins aussi intéressant pour moi que les résultats relatifs à la création de code, car la révision de code représente une part au moins aussi importante du rôle d'un ingénieur logiciel professionnel que la création de code.

Comme Google et d'autres l'ont noté, la satisfaction et la productivité des développeurs sont corrélées à la fois à la qualité du code et au temps nécessaire pour obtenir une révision du code. Si Rust n'est pas seulement meilleur pour écrire du code de qualité, mais aussi meilleur pour obtenir ce code, c'est un ensemble de raisons convaincantes, au-delà même de la performance et de la sécurité de la mémoire, pour que les entreprises l'évaluent et envisagent de l'adopter.

Regarder vers l'avenir

Bien que plus de mille développeurs constituent un bon échantillon d'ingénieurs, nous espérons que l'adoption se poursuivra et qu'une future enquête inclura beaucoup plus de cas d'utilisation. En outre, bien que de nombreux développeurs interrogés aient rejoint des équipes sans expérience Rust, cette population compte plus d'utilisateurs précoces enthousiastes que nous ne l'aurions souhaité dans le cadre d'une enquête plus large. Restez à l'écoute l'année prochaine pour une nouvelle mise à jour !


Source : Article de Lars Bergstrom et Kathy Brennan sur Google Open Source

Et vous ?

Selon vous, cette recherche est-elle crédible ou pertinente ?
Quel est votre avis sur le sujet ?

Voir aussi :

Zig, le langage de programmation compilé, inspiré de Rust et conçu pour concurrencer le C, serait plus sûr et plus rapide que Rust,
Un avis de Zack Radisic, de l'université de Toronto


C-rusted : les avantages de Rust, en C sans les inconvénients,
Une analyse des trois chercheurs de l'Université de Parme en Italie


Le langage de programmation Rust gagne en popularité parmi les développeurs et fait son entrée dans le top 20, selon Tiobe.
Python, Java, C et C++ s'accaparent à eux seuls de 55% de parts de marché

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

Avatar de Pyramidev
Expert éminent https://www.developpez.com
Le 07/07/2023 à 2:47
Citation Envoyé par Jade Emy Voir le message
Rumeur 1 : Rust prend plus de 6 mois à apprendre - Démenti !
En 2014, Rob Pike, l'un des 3 concepteurs du langage Go, avait affirmé, pour justifier les choix de conception du langage Go :

Citation Envoyé par Rob Pike
The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python.

They’re not capable of understanding a brilliant language but we want to use them to build good software.

So, the language that we give them has to be easy for them to understand and easy to adopt.

Si on en croit l'article récent de Lars Bergstrom et Kathy Brennan, finalement, les développeurs de chez Google ne sont pas si nuls et ont les prérequis intellectuels pour coder dans un bon langage comme Rust.
3  0 
Avatar de Pyramidev
Expert éminent https://www.developpez.com
Le 09/07/2023 à 20:48
Citation Envoyé par Madmac Voir le message
L'administration de Rust est en crise sérieuse.


De mon côté, je pense que Rust va quand même continuer de monter en popularité. En effet, certains programmes ont besoin d'avoir de bonnes performances, ce qui incite très fortement à choisir un langage sans ramasse-miettes. Or, C++ a tendance à faire peur aux entreprises à cause des erreurs de mémoire, ce qui place Rust quasiment en situation de monopole.

Comme le dit l'auteur de la chaîne Let's Get Rusty, la Fondation Rust essaie de s'améliorer.

Mais j'espère qu'elle réussira à s'améliorer suffisamment vite pour limiter la fréquence des bad buzz. Les choix des technologies en entreprise se font énormément par la preuve sociale (l'effet mouton) donc, plus il y aura de bad buzz, plus cela ralentira l'adoption du langage.
1  0 
Avatar de Madmac
Membre extrêmement actif https://www.developpez.com
Le 09/07/2023 à 20:05
Au train oû vont les choses, Rust risque de devenir de l'histoire ancienne. L'administration de Rust est en crise sérieuse.

0  0