More recently, we talked that the IT community has also returned to discussing inappropriate and offensive terminology under the influence of Black Lives Matter protests that swept across the United States (and not only). Linus Torvalds did not stand aside and approved excluding the terms slave, blacklist, and others from the Linux kernel code.
Many developers are trying to remove such terms from their source code, applications, and online services.
For example, the developers of Android, the Go programming language, the PHPUnit library and the Curl utility have recently announced their intention to find alternatives for whitelist/blacklist. In turn, the authors of the OpenZFS project are already working on replacing the terms master/slave, used to describe the relationships between storage environments.
Although many projects do not use these terms directly in their source code or user interfaces, they turned their attention to their source repositories. The fact is that most of these projects manage source code using Git or GitHub, while Git and GitHub, in particular, use the name master for the default repository.
The developers of GitHub and Git write that they are already “working on the problem”, and a number of open source projects have already supported Black Lives Matter and themselves have changed the names of their repositories from default to various alternatives (such as main, default, primary, root, etc.). These include OpenSSL, Ansible, PowerShell, the P5.js JavaScript library, and many others.
Also in early July, developers of Microsoft, LinkedIn, Google, and Twitter also announced similar change. They all promised to change the technical language of their products and infrastructure and eliminate terms such as enslaver, slave, blacklist, whitelist and so on.
Linux developers also did not stand aside, and a discussion of more inclusive terminology has been going on for quite long time.
As it was recently reported, the issue has finally been resolved: Linus Torvalds made the appropriate commit and approved the new project policy regarding the design of code in the Linux 5.8 kernel branch (although initially it was proposed to make changes to the 5.9 branch).
It is expected that the new rules will be applied to the new code, while they do not plan to carry out revision of the old one, although the developers do not exclude that, in the end, the “renaming” will affect a considerable part of the existing code. Outdated terms will be allowed only in case of acute necessity.
The terms master/slave are now recommended to be replaced with the following analogues:
- primary, main/secondary, replica, subordinate;
- initiator, requester/target, responder;
- controller, host/device, worker, proxy;
- leader/follower;
- director/performer.
In turn, the terms blacklist / whitelist advise replacing with more neutral versions:
- denylist/allowlist
- blocklist/passlist.
Let me remind you also that Google vice president says “black hat” is not a neutral term.