Amid the protests over the death of George Floyd, activists in the software community have taken the opportunity to remind people that they're trying to do away with terminology tied to racial oppression.
On Monday, Scott Hanselman, a programmer and educator who happens to work at Microsoft, published a blog post about how to rename the "master" branch in code repositories created using Git version control software with a less loaded term.
"The Internet Engineering Task Force (IEFT) points out that 'master-slave is an oppressive metaphor that will and should never become fully detached from history' as well as 'In addition to being inappropriate and arcane, the master-slave metaphor is both technically and historically inaccurate,'" he wrote.
"There's lots of more accurate options depending on context and it costs me nothing to change my vocabulary, especially if it is one less little speed bump to getting a new person excited about tech."
That same year, the terms elicited a bug report in Google's Chromium project, one that has led to a series of changes since then, percolating down through various header and source files to change "blacklist" to a term without racial overtones, "blocklist," and "whitelist" to "allowlist."
Redis does a Python, crushes 'offensive' master, slave code termsREAD MORE
Google did not immediately respond to a request for comment, but these changes represent an attempt to comply with the company's code inclusivity guidelines for its Chromium project.
Google is far from the only company dealing with this issue. Pivotal's LicenseFinder swapped "whitelist" for "permitted licenses" in January. Box is currently discussing a shift to "allowlist" and "denylist." Elixir nixed the terms about a week ago. OpenShift merged a pull request to adopt alternate language four days ago. Yelp modified its secret scanning code about two weeks ago. The osquery project is working on it.
Among those contributing to the open source Git project, "master" terminology came up in a mailing list discussion last month about fixing the terminology in the Git source code. The proposal met with resistance, partly because of the amount of work it would entail.
In response to a post arguing for revised wording, Brian Carlson, a developer at GitHub who also contributes to the Git codebase, acknowledged the concerns that have been raised about the terms and objections to making changes. He expressed willingness to review potential changes to Git source code that would purge the term but said he couldn't undertake the project himself.
"It appears that if we made the obvious one-line change to
builtin/init-db.c, we'd have 304 tests that fail, which is about a third of our test suite," he said.
Despite significant support for these changes, there are also detractors who point out that Git's use of "master" hails from sound recording rather than slave owning (as opposed to the master/slave descriptors applied to device networking) and that "master" has other connotations, like expertise in a field.
Google's guidance on inclusive coding, which focuses more on the use of gendered terms rather than racial ones, notes some of the potential problems with trying to apply inclusive language. For example, coders are advised to avoid the gendered pronoun "he," but "he" is okay if it refers to Helium, the ISO 639-1 language code for Hebrew or the first person conjugation of the Spanish verb "Haber."
Hanselman acknowledges that vocabulary revision does not erase history or make people less racist. "All it does is make the world a tiny bit more welcoming," he said via Twitter. ®