Les développeurs de la base de données MySQL ont annoncé cette semaine leur intention de cesser d'utiliser et de remplacer des termes tels que master, slave, blacklist et whitelist dans le code source et la documentation de la base de données.
Dans un billet de blog, l’équipe Oracle MySQL a expliqué :
« Cela fait 20 ans que la réplication MySQL a été introduite dans MySQL 3.23.15 (sortie en mai 2000). Depuis lors, pratiquement tous les déploiements de bases de données MySQL en production utilisent la réplication afin d'atteindre une haute disponibilité, une reprise après sinistre, une évolutivité en lecture et divers autres objectifs.
« Quiconque utilise la réplication MySQL connaît les termes : ‘master’ et ‘slave’. Les origines de ces mots sont négatives. C’est clair. Chez MySQL, nous avons pris la décision de changer cette terminologie. Déjà, beaucoup d'entre nous ont changé la façon dont nous nous référons à ces rôles dans les billets de blog et les présentations - en utilisant généralement des termes comme ‘primaire’, ‘secondaire’, ‘source’ et ‘réplique’. Nous avons maintenant commencé le processus de modification de la syntaxe MySQL dans notre code source et notre documentation pour faire correspondre tout cela ».
Une alternative envisagée pour les termes « master » et « slave » était donc « primaire » et « secondaire », mais les développeurs MySQL ont abandonné les deux pour des raisons de précision technique étant donné que les derniers produits (MySQL Group Replication, MySQL InnoDB Cluster, MySQL InnoDB ReplicaSet) reposent déjà sur l'utilisation de ces termes pour définir les différents rôles que les serveurs peuvent avoir dans l'architecture de base de données.
Modifications terminologiques qui seront implémentées dans tous les produits MySQL dès les prochaines versions
Pourquoi « source » a-t-il été choisi ? L’équipe explique que MySQL Asynchronous Replication est un flux de modifications. Chaque configuration de réplication a une source et n'implique pas le rôle qu'un serveur devrait avoir dans l'architecture globale de la base de données. Par conséquent, l'utilisation par exemple de « Primaire » ne convient pas, en particulier lorsque la réplication est utilisée pour créer des topologies d'architectures de base de données, y compris la réplication bidirectionnelle, la réplication à plusieurs niveaux ou même la réplication circulaire.
« Il faudra un certain temps pour effectuer ces modifications. Un moyen rapide de supprimer une partie de la syntaxe serait d'ajouter des alias pour les commandes existantes, par exemple SHOW SLAVE STATUS devenant SHOW REPLICA STATUS. Cela ne suffit pas, beaucoup de ces commandes renvoient des résultats avec des noms de colonne qui incluent le texte ‘master’ et ‘slave’.
« Supprimer complètement l'utilisation de ces terminologies héritées est une entreprise énorme. Pour conserver la compatibilité descendante, certaines de ces terminologies doivent d'abord être déconseillées, puis supprimées ultérieurement. Il est important que nous fassions de la nouvelle syntaxe, par exemple SHOW REPLICA STATUS,la syntaxe recommandée et pas seulement une syntaxe ‘alternative’.
« Il est impossible de supprimer toutes les références dans une seule version. Il y a des millions de déploiements de MySQL que nous devons continuer à prendre en charge. Il faudra plusieurs itérations pour déprécier et/ou supprimer ces terminologies de notre syntaxe, protocole, messages d'erreur, code source… »
L'équipe MySQL, qui gère le deuxième moteur de base de données le plus populaire sur Internet selon DB-Engines, n'a pas expliqué la décision qui l’a poussé à changer sa nomenclature. Cependant, le changement survient alors que plusieurs autres sociétés et projets open source ont commencé à supprimer les mêmes termes de leurs bases de code et de leur documentation au motif qu'ils sont un langage avec des connotations conduisant à des stéréotypes raciaux.
Juste deux jours après les annonces de l'équipe MySQL, l'équipe d'ingénierie de Twitter a également annoncé des plans similaires pour changer la terminologie dans les outils internes et ses projets open source.
Selon la société, les ingénieurs de Twitter prévoient « d’éviter le langage non inclusif » en supprimant un certain nombre de termes, notamment whitelist, blacklist, master/slave, grandfathered, divers pronoms de genre (comme « les gars » ou « il / lui / son ») mais aussi des termes comme man-hour (qui est la quantité de travail effectuée par le travailleur moyen en une heure. Il est utilisé pour estimer la quantité totale de travail ininterrompu nécessaire pour effectuer une tâche).
D'autres entreprises et projets open source qui ont récemment promis d'apporter des changements similaires et de nettoyer leur jargon technologique incluent GitHub, Microsoft, LinkedIn, Ansible, Splunk, Android, Go, PHPUnit, Curl, OpenZFS, OpenSSL, JP Morgan et autres.
La tendance à supprimer ces termes du code source, des outils et de la documentation a été lancé après des manifestations de Black Lives Matter aux États-Unis, provoquées par la mort de George Floyd à Minneapolis le 25 mai 2020.
L'objectif principal de ces efforts est de rendre les produits technologiques et les environnements informatiques plus accueillants pour les personnes de couleur. Certains membres de la communauté technologique ont critiqué le mouvement comme étant un signal de vertu superficielle plutôt que comme quelque chose qui aide les personnes de couleur et le racisme systémique.
Cependant, les travaux publiés dans des revues universitaires soutiennent depuis longtemps que continuer à utiliser des termes à caractère racial prolonge les stéréotypes raciaux.
Rappelons que certains projets avaient annoncé de tels changements bien avant les évènements tragiques qui ont déclenché la vague de protestation. Au nom de la diversité, la communauté Python a enclenché le processus de suppression de ces termes dans sa documentation et dans sa base de code en septembre 2018, Django en 2014, CouchDB en 2014, Drupal en 2014) et Redis en 2017. Tous avaient le même argument : bien que ces termes aient été utilisés depuis des décennies, ils peuvent avoir des significations à caractère raciste, entre autres, pour les utilisateurs. Il serait donc bon de les éviter.
« Le mot "slave" a des connotations négatives (bien que cela puisse ou non être pertinent dans la dénomination d'un terme technique), y compris l'histoire de l'esclavage sur plusieurs siècles au bénéfice des puissances coloniales européennes, les travailleurs pénitentiaires aujourd'hui forcés de travailler dans des conditions parfois similaires à l'esclavage, les jeunes filles vendues dans l'esclavage sexuel dans de nombreuses régions du monde aujourd'hui », expliquait le projet Drupal. La connotation sexiste de ces termes avait particulièrement été citée lorsque la question était débattue pour le projet Django. Une ingénieure DevOps s'était en effet plainte que ses collègues lui faisaient souvent des blagues en utilisant les termes "master" et "slave".
Sources : MySQL, Twitter, travaux
Voir aussi :
Python va supprimer les termes "master/slave" de sa documentation et sa base de code pour des raisons de diversité et leur connotation à l'esclavage
L'équipe du langage Go retire les termes "whitelist", "blacklist", "master" et "slave" de sa documentation et de sa base de code parce qu'ils véhiculent des stéréotypes raciaux
Amazon annonce que la police ne pourra pas utiliser sa technologie de reconnaissance faciale pendant un an, suite aux manifestations liées à la mort de George Floyd
Après Apple, Google supprime à son tour l'application Gab de son Play Store, pour avoir violé sa politique relative aux discours haineux
MySQL abandonne les terminologies "master", "slave", "whitelist", "blacklist"
Et indique que ces modifications seront implémentées dans tous les produits MySQL dès les prochaines versions
MySQL abandonne les terminologies "master", "slave", "whitelist", "blacklist"
Et indique que ces modifications seront implémentées dans tous les produits MySQL dès les prochaines versions
Le , par Stéphane le calme
Une erreur dans cette actualité ? Signalez-nous-la !