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 peut faciliter l'arrivée de nouveaux contributeurs dans les projets open source tout en réduisant les vulnérabilités
Sans eux, le projet finira par devenir inactif, d'après un sujet de recherche

Le , par Anthony

32PARTAGES

9  1 
D'après les résultats d'une recherche de l'université de Waterloo, au Canada, Rust a le potentiel d'attirer et de faciliter l'arrivée des nouveaux contributeurs dans les projets open source tout en reconnaissant les risques inhérents à leur participation. À travers l'étude du projet Oxidation de Mozilla, les auteurs révèlent que le langage Rust réduit considérablement la probabilité que les nouveaux contributeurs introduisent des vulnérabilités dans le code, par rapport à C++. La recherche évalue également les vulnérabilités de Rust dans les projets open source et mesure l'efficacité de l'algorithme SZZ dans l'identification des commits qui induisent des bogues.

Rust est un langage de programmation compilé multi-paradigme conçu et développé par Mozilla Research depuis 2010. Il a été conçu pour être "un langage fiable, concurrent, pratique", supportant les styles de programmation purement fonctionnel, modèle d'acteur, procédural, ainsi qu'orienté objet sous certains aspects.

Du fait de la politique de Mozilla, Rust est entièrement développé de façon ouverte et sollicite les remarques et contributions de la communauté. La conception du langage est graduellement améliorée au travers des retours de l'équipe et la majorité des contributions proviennent de la communauté.

Les nouveaux contributeurs sont essentiels aux projets open source. Sans eux, le projet finira par s'atrophier et devenir inactif, ou ses contributeurs expérimentés biaiseront les orientations futures du projet. Cependant, les nouveaux contributeurs peuvent également présenter un risque plus élevé d'introduire un code vulnérable. Pour les projets qui ont besoin à la fois d'implémentations sûres et d'une communauté de contributeurs forte et diversifiée, ce conflit est une question urgente.


L'une des pistes envisagées pour atteindre cet objectif consiste à réécrire des éléments de code C ou C++ en Rust, un langage conçu pour s'appliquer aux mêmes domaines que le C et le C++, mais avec des garanties de sécurité accrues. Afin de déterminer si Rust peut contribuer à empêcher les nouveaux contributeurs d'introduire des vulnérabilités et, par conséquent, à alléger le fardeau des mainteneurs, nous examinons le projet Oxidation de Mozilla, qui a remplacé des composants du navigateur web Firefox par des équivalents écrits en Rust.

Nous utilisons les données disponibles de ces projets pour dériver les paramètres d'une nouvelle application des courbes d'apprentissage, que nous utilisons pour estimer la proportion de modifications qui introduisent des vulnérabilités de la part de nouveaux contributeurs d'une manière qui est directement comparable.


Nous constatons qu'en dépit des préoccupations relatives à la facilité d'utilisation, les nouveaux contributeurs aux projets Rust sont environ 70 fois moins susceptibles d'introduire des vulnérabilités que les nouveaux contributeurs aux projets C++.

Nous avons également constaté que le taux de nouveaux contributeurs augmentait globalement après le passage à Rust, ce qui implique que cette diminution des vulnérabilités de la part des nouveaux contributeurs ne résulte pas d'une plus petite réserve de développeurs plus compétents, et que Rust peut en fait faciliter l'arrivée de nouveaux contributeurs.


Dans le même temps, nous analysons qualitativement les vulnérabilités Rust dans ces projets, et mesurons l'efficacité de l'algorithme commun SZZ pour identifier les commits induisant des bogues à partir de leurs correctifs.
Source : Recherche de l'université de Waterloo, ON, Canada

Et vous ?

Quel est votre avis sur le sujet ?

Selon vous, les conclusions de cette recherche sont-elles crédibles et pertinentes ?

Voir aussi

Plus de 90 % des répondants à l'enquête du projet Rust se sont identifiés comme des utilisateurs de Rust, 47 % le font quotidiennement, soit une augmentation de 4 % par rapport à 2021

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

La version 1.72.0 de Rust, le langage de programmation multi-paradigme, est disponible, et intègre plusieurs améliorations ainsi que des API stabilisées

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

Avatar de fdecode
Membre habitué https://www.developpez.com
Le 14/11/2023 à 10:13
Citation Envoyé par Metal3d Voir le message
mais le langage en lui-même est particulièrement lourdingue.
On a tous des goûts de programmation différents; chacun choisit au mieux.

Moi, après avoir pratiqué un certain nombre de langages (depuis 30 ans), j'ai trouvé que Rust répondait le mieux à ce que j'attendais en combinant un multiparadigme assez sobre et des capacités intéressantes à structurer les librairies à la puissance d'un C et potentiellement d'un FORTRAN. Je trouve d'ailleurs le langage plutôt élégant et cela me rappelle certaines belles choses de Scala.
Je fais pas mal de développement en solo essentiellement dans du calcul scientifique, ce qui me laisse effectivement la liberté de choisir Rust sans contraintes sur mes projets, mais je constate aussi que je peux être bien plus ambitieux dans mes développements. La sécurisation du code aide beaucoup à cela: il est facile de restructurer son code; il est relativement simple de reprendre un ancien code qu'on a un peu oublié; le corsetage qu'impose Rust est bien pratique en cela. Mon expérience est donc plutôt positive.

Par contre, il y a la courbe d'apprentissage nécessaire avant de bien s'amuser.
2  0 
Avatar de Mingolito
Membre extrêmement actif https://www.developpez.com
Le 09/11/2023 à 15:09
Citation Envoyé par Metal3d Voir le message
Chaque article que je lis à propos de Rust est une agression sous-entendu au boulot des autres.
Objectivement c'est juste le résultat d'une recherche factuelle, très intéressante au demeurant. Plus de 90% des projets open sources finissent par mourir, c'est donc utile de comprendre pourquoi.
Le fait que tu prennes ça pour une agressions personnelle n'a rien à voir avec la programmation ou l'informatique, c'est juste un problème psychologique, à savoir de la paranoïa, n'ayons pas peur des mots
1  0 
Avatar de Metal3d
Membre habitué https://www.developpez.com
Le 09/11/2023 à 7:30
Il va vraiment falloir clamer les foules avec Rust. Il est, certes, doté d'un super outil de compilation mais le langage en lui-même est particulièrement lourdingue. Sa courbe d'apprentissage est lente et cargo prend un temps pas possible à récupérer les dépendances.
Là on est en train de le faire passer pour un sauveur.
Il serait temps de respecter les développeurs des autres langages qui ont de très bonnes raisons de faire du C, du Go, du Python... Chaque article que je lis à propos de Rust est une agression sous-entendu au boulot des autres.
0  6