Les projets open source se réveillent de nouveau autour de l’utilisation, ancienne mais plus que contestable, de la terminologie maître/esclave dans certains domaines de la programmation, lorsqu’un composant ou un processus en contrôle d’autres. On la retrouve notamment dans les bases de données où ces termes ont été fréquemment remplacés par primary/replica, soit primaire/réplique ou copie. Avant le week-end, Nat Friedman, CEO de Github a indiqué, en réponse à un tweet d’invite d’Una Kravets du projet Chrome, que le référentiel de code open source (racheté par Microsoft en 2018) y travaillait lui aussi. Il est notamment proposé de remplacer le terme « maître » par « main » (principal). La discussion est également en cours sur le projet Git, le logiciel de gestion de version utilisé par GitHub. D’autres projets open source ont déjà opté pour d’autres termes comme default (par défaut), root (racine) ou autre.
Si la question de remplacer cette terminologie ne date pas d’hier, elle revient en force sur fond de lutte pour l’égalité raciale, après le meurtre de George Floyd par un policier américain le 25 mai dernier à Minneapolis. GitHub n’est que l’un des derniers en date à vouloir supprimer cette inutile référence à un passé odieux, à l’instar du projet OpenZFS. D’autres, comme le langage Python ou de la base de données Redis ont déjà soulevé le problème il y a deux ans. Néanmoins, cela ne se fait pas toujours simplement car les programmes doivent conserver une compatibilité entre eux. Il y a quelques jours, Matt Ahrens, co-fondateur du système de fichier ZFS chez Sun, a proposé de remplacer « esclave » par « dependent » ou « dep » (dépendant) dans le code d’OpenZFS. Cela ne provoque aucune altération et a été accepté par l’équipe. Néanmoins, la référence slaves reste mentionnée, par exemple dans /sys/class/block/$dev/slaves parce que ce chemin est déterminé par le noyau Linux et qu’il faudrait des privilèges élevés pour le contourner, ainsi que le soulignent nos confrères de The Register. De son côté, le projet Ansible (outil d'automatisation des configurations serveurs) propose dans un post de transformer « master » en « devel ».
La semaine dernière, sur le terrain de l'égalité raciale, IBM a déclaré de son côté renoncer à développer ses technologies de reconnaissance faciale risquant d'être mal employées, tandis qu'Amazon décidait d'interdire à la police d'utiliser son logiciel Rekognition pendant un an.
Bon, honnêtement, passer de "master" à "main" et de "slave" à "dep", je ne sais pas dire si c'est une bonne chose ou une mauvaise chose, ce n'est pas à moi de me prononcer sur le vocabulaire. Me concernant, informatiquement parlant j'entends, j'ai toujours considéré la relation "maître/esclave" comme une étiquette sans connotation, sinon pour distinguer un contrôleur principal et un/des contrôleur/s secondaire/s. Dans d'autres domaines que l'informatique, évidemment que "maître/esclave" revêt des connotations autrement plus dégradantes, car souvent cela met en relation des personnes et non des machines.
Signaler un abusMais tout changement de vocabulaire que c'est, surtout en informatique où changer un détail peut faire planter tout un système (un point au lieu d'une virgule dans un tableur et toutes vos valeurs deviennent fausses), cela veut dire aussi actualiser un nombre non-négligeable de scripts. Cela est à prendre en compte pour tous les développeurs. Donc il serait souhaitable après cette annonce qu'il puisse y avoir une période où les deux noms sont autorisés, le temps pour les devs de mettre leurs scripts à niveau. Avec une alerte toutefois, du style "Master/Slave is deprecated, please consider using Devel/Dep".