« Les équipes Rust chez Google sont deux fois plus productives que celles qui se servent de C++ », d’après un responsable de l’entreprise
Qui lance le débat de la productivité entre Rust et C++
Les comparatifs entre les langages Rust et C++ portent en général sur des aspects comme la performance et la sécurisation des espaces mémoires des applications. Certains benchmarks suggèrent que les applications Rust sont plus rapides que leurs équivalents en langage C. Et c’est justement pour ces atouts que sont la parité en termes de vitesse d’exécution en comparaison avec le C, mais surtout pour la sécurisation et la fiabilité que de plus en plus d’acteurs de la filière du développement informatique recommandent le Rust plutôt que le C ou le C++. C’est sur la question de l’impact que le choix de ces langages a sur la productivité des développeurs que les intervenants ne se sont pas trop penchés. Google vient de publier les résultats d’un sondage en interne et il en ressort que les équipes Rust en son sein sont deux fois plus productives que celles qui se servent du langage C++.
Les conclusions de Google se basent sur les perceptions des répondants au sondage. Le temps nécessaire à une réimplémentation en Rust comparé à celui d’une précédente réimplémentation en langage C++ est l’un des premiers aspects sur lesquels le sondage en interne au géant technologique a porté.
« Nous avons noté une réduction de 50 % de l’effort nécessaire pour mettre sur pied un service en langage Rust ainsi que pour en assurer la maintenance », déclare Lars Bergstrom dans son comparatif d’impact sur la productivité des développeurs causé par les langages Rust et C++.
L’enquête comparative de l’impact du choix des langages C++ et Rust sur la productivité des développeurs s’est étendue au-delà de la production du code informatique. Les répondants ont en sus partagé leurs perceptions pour ce qui est de la productivité en Rust comparée à celle d’autres langages (C++, Java, etc.) dont ils font usage. Dans les chiffres, le tiers des répondants a déclaré devenir aussi productif en Rust que dans les autres langages en 2 mois au maximum.
Lorsqu'un développeur a fini de travailler sur un ticket, un autre membre de son équipe passe en revue le code en se posant les questions suivantes :
- Le code présente-t-il des erreurs logiques évidentes ?
- Après examen des exigences, tous les cas ont-ils été complètement mis en œuvre ?
- Les nouveaux tests automatisés sont-ils suffisants pour le nouveau code ? Les tests automatisés existants doivent-ils être réécrits pour intégrer les modifications apportées au code ?
- Le nouveau code est-il conforme au guide stylistique actuel ?
C’est un jeu de questions qui démontre le potentiel impact des revues de code sur la productivité d’un ou d’une équipe entière de développement. Les résultats de l’enquête de Google suggèrent que le langage Rust est susceptible de s’avérer être un bon choix pour ceux désireux de se simplifier les revues de code. En effet, plus de la moitié des répondants du sondage déclarent que les revues de code en langage Rust sont plus aisées que dans d’autres langages (C++, Java, Python, etc.)
Le sondage s’est en sus penché sur la qualité du code comme indicateur de productivité. Dans les chiffres, 85 % des répondants sont d’avis que le langage Rust permet d’obtenir des bases de code d’un niveau de qualité supérieur à celui d’autres langages.
L’analyse du temps passé par les développeurs de logiciels dans les activités de création de produits et les tâches nécessaires pour mettre le code en production fait partie des métriques sur lesquelles s’appuie McKinsey dans l’évaluation de la productivité des développeurs. De façon concrète, il s’agit de mesurer la répartition du temps entre les activités de codage, de construction et de tests unitaires (boucle interne) et les activités d’intégration, de test d’intégration, de publication et de déploiement (boucle externe). C’est la mise en œuvre d’un procédé en principe similaire qui permet à Google d’arriver à la conclusion que les équipes Rust chez Google sont deux fois plus productives que celles qui s’appuient sur le langage C++.
La productivité des développeurs est en général sujette à débats. Certains intervenants de la filière sont d’avis que le sondage de Google souffre d’un biais de sélection des répondants dont les perceptions orientent les résultats.
Certains intervenants de la filière mettent souvent la chaîne d’outils du langage Rust en avant comme l’un des atouts susceptibles d’améliorer la productivité des développeurs en comparaison à d’autres langages de programmation. Des observateurs sont néanmoins d’avis que le compilateur Rust est un tueur silencieux de la productivité des développeurs qui travaillent sur des bases de code importantes.
Source : Lars Bergstrom
Et vous ?
Quelle appréciation faites-vous des résultats de ce sondage mené en interne par Google ? Sont-ils pertinents ? Quels sont les aspects qui vous semblent biaisés ?
Que pensez-vous de l’analyse du temps passé en C++ puis en Rust dans les activités de création de produits et les tâches nécessaires pour mettre le code en production comme métrique de mesure de la productivité des développeurs ? Quelles sont les métriques susceptibles de la compléter dans le processus de comparaison de l’impact du choix des langages C et C++ sur la productivité des développeurs ?
Voir aussi :
Programmation : une étude révèle les langages les plus voraces en énergie, Perl, Python et Ruby en tête, C, Rust et C++, les langages les plus verts
Linus Torvalds souligne une bonne avancée du langage Rust dans le développement du noyau Linux, et aurait qualifié le C++ de « langage de m... », après le message de Google
Microsoft, Google, AWS, Huawei et Mozilla s'associent pour créer la Fondation Rust, une organisation à but non lucratif chargée de gérer le langage de programmation
Facebook rejoint AWS, Huawei, Google, Microsoft et Mozilla dans la Fondation Rust, et renforce son équipe Rust par des nouveaux talents
Partager