Codeurs vs codeuses : des styles de programmation spécifiques ?
Publié par Clément Bohic le - mis à jour à
Dans quelle mesure le style trahit-il le genre d'un codeur ? Une chercheuse a étudié la question sur des projets Python.
Dis-moi comment tu codes, je te dirai qui tu es ?
Une chercheuse universitaire a abordé cet aspect dans le cadre d'un projet mené à la London School of Economics. Thème : la discrimination de genre dans les projets open source.
Ce projet comprend deux volets. L'un vise à caractériser les réponses au sexisme et leur efficacité. L'autre, à déterminer dans quelle mesure le genre est corrélé à un style d'écriture de code.
L'intéressée n'en est pas à ses premiers travaux dans ce domaine. Elle a déjà, entre autres, analysé les biais de genre associés à l'évaluation des connaissances techniques sur Stack Overflow. Ainsi que ceux qui se manifestent à travers les mèmes publiés sous pseudonyme.
En 2022, un étude avait démontré l'existence, chez des enseignants, d'une forme d'idéologie. Ils avaient, en l'occurrence, tendance à attribuer le code "soigné" aux femmes. A fortiori s'il contenait peu de commentaires - signe supposé d'un manque de confiance.
Dans cette lignée, la chercheuse universitaire s'est demandé jusqu'où on pouvait effectivement établir un parallèle entre les variations de style dans des modules Python et le genre de leur auteur. Son analyse a englobé quelque 1700 propriétaires d'autant de projets GitHub publics.
Le genre de ces contributeurs étant rarement déclaré de façon explicite, il a fallu le déterminer. Parmi les infos exploitées à ces fins, le prénom, le pseudo et l'adresse électronique. Une part importante de l'échantillon - 471 personnes - n'a pu être classé dans les catégories "homme" ou "femme" (248 "ambigus" ; 223 "anonymes").
Une question de structure plus que de style ?
L'analyse du code a couvert deux grands axes. D'une part, la structure, sous l'angle de l'organisation (nombre de lignes de code, de docstrings, de commentaires et de lignes vides) et des constituants (fréquence des classes, des fonctions et des méthodes). De l'autre, le style, à partir du score Pylint global et des vérificateurs spécifiques (style checkers).
Sur la partie organisation, le nombre moyen de lignes par module est supérieur chez les hommes (324, contre 281 pour les femmes). L'écart est à peu près du même ordre si on s'en tient aux lignes de code (212 vs 194). Il est particulièrement important au niveau des lignes de docstrings (32 vs 19). Pas au niveau des lignes de commentaires, en revanche (24 pour chaque groupe). Inversement, les lignes vides, marqueurs de sections, sont plus nombreuses chez les femmes (56 vs 41).
Au niveau des constituants, le nombre de fonctions est similaire. On trouve, chez les femmes, un peu plus de classes... et nettement plus de méthodes. Les écarts au sein de ce groupe sont moins importants que vis-à-vis du groupe des hommes.
Sur le score Pylint (analysé non pas au niveau des modules, mais des repos), les écarts entre les groupes et au sein de chacun sont négligeables. Y compris avec les "ambigus" et les "anonymes". En parallèle, les 5 alertes les plus fréquentes des style checkers sont les mêmes chez les femmes que chez les hommes. Nommément :
- Docstring manquant sur au moins un module du dépôt
- Nom invalide (incohérent vis-à-vis de la convention associée à son type et/ou vis-à-vis du reste du dépôt)
- Docstring manquant sur au moins une fonction
- Ligne trop longue (la convention PEP 8 préconise un maximum de 79 caractères)
- Docstring manquant sur au moins une classe
Infime sur la qualité du code, la différence est plus marquée si on s'intéresse individuellement aux composantes du style checker. Assez, en tout cas, pour estimer qu'il est possible de prédire le genre d'un utilisateur à son style de codage. L'organisation des modules reste toutefois le principal marqueur.
Sur le style, la chercheuse va plus loin. Elle fait remarquer que la seule véritable ressemblance est entre les groupes "anonymes" et "femmes". Ce qui suggère, poursuit-elle, que ces dernières ont tendance à masquer leur genre...