Search this site:

On masters and slaves, whitelists and blacklists...

LWN published today yet another great piece of writing, Loaded terms in free software. I am sorry, the content will not be immediately available to anybody following at home, as LWN is based on a subscription model — But a week from now, the article will be open for anybody to read. Or you can ask me (you most likely can find my contact addresses, as they are basically everywhere) for a subscriber link, I will happily provide it.

In consonance with the current mood that started with the killing of George Floyd and sparked worldwide revolts against police brutality, racism (mostly related to police and law enforcement forces, but social as well) and the like, the debate that already started some months ago in technical communities has re-sparked:

We have many terms that come with long histories attached to them, and we are usually oblivious to their obvious meaning. We? Yes, we, the main users and creators of technology. I never felt using master and slave to refer to different points of a protocol, bus, clock or whatever (do refer to the Wikipedia article for a fuller explanation) had any negative connotations — but then again, those terms have never tainted my personal family. That is, I understand I speak from a position of privilege.

A similar –although less heated– issue goes around the blacklist and whitelist terms, or other uses that use white to refer to good, law-abiding citizens, and black to refer to somewhat antisocial uses (i.e. the white hat and black hat hackers).

For several years, this debate has been sparking and dying off. Some important changes have been made — Particularly, in 2017 the Internet Software Consortium started recommending Primary and Secondary, Python dropped master/slave pairs after a quite thorough and deep review throughout 2018, GitHub changed the default branch from master to main earlier this week. The Internet Engineering Task Force has a draft (that lapsed and thus sadly didn’t become an RFC, but still, is archived), Terminology, Power and Oppressive Language that lists suggested alternatives:

There are also many other relationships that can be used as metaphors, Eglash’s research calls into question the accuracy of the master-slave metaphor. Fortunately, there are ample alternatives for the master-slave relationship. Several options are suggested here and should be chosen based on the pairing that is most clear in context:

  • Primary-secondary
  • Leader-follower
  • Active-standby
  • Primary-replica
  • Writer-reader
  • Coordinator-worker
  • Parent-helper

I’ll add that I think we Spanish-speakers are not fully aware of the issue’s importance, because the most common translation I have seen for master/slave is maestro/esclavo: Maestro is the word for teacher (although we do keep our slaves in place). But think whether it sounds any worse if you refer to device pairs, or members of a database high-availability cluster, or whatever as Amo and Esclavo. It does sound much worse…

I cannot add much of value to this debate. I am just happy issues like this are being recognized and dealt with. If the topic interests you, do refer to the LWN article! Some excrepts:

I consider the following to be the core of Jonathan Corbet’s writeup:

Recent events, though, have made it clear — even to those of us who were happy to not question this view — that the story of slavery and the wider racist systems around it is not yet finished. There are many people who are still living in the middle of it, and it is not a nice place to be. We are not so enlightened as we like to think we are.

If there is no other lesson from the events of the last few weeks, we should certainly take to heart the point that we need to be listening to the people who have been saying, for many years, that they are still suffering. If there are people who are telling us that terms like “slave” or “blacklist” are a hurtful reminder of the inequities that persist in our society, we need to accept that as the truth and act upon it. Etymological discussions on what, say, “master” really means may be interesting, but they miss the point and are irrelevant to this discussion.

Part of a comment by user yokem_55:

Often, it seems to me that the replacement words are much more descriptive and precise than the old language. ‘Allowlist’ is far more obviously a list of explicitly authorized entities than ‘whitelist’. ‘Mainline’ has a more obvious meaning of a core stream of development than ‘master’.

The benefit of moving past this language is more than just changing cultural norms, it’s better, more precise communication across the board.

Another spot-on comment, by user alan:

From my perspective as a Black American male, I think that it’s nice to see people willing to see and address racism in various spheres. I am concerned that some of these steps will be more performative than substantial. Terminology changes in software so as to be more welcoming is a nice thing. Ensuring that oppressed minorities have access to the tools and resources to help reduce inequity and ensuring equal protection under the laws is better. We’ll get there one day I’m sure. The current ask is much simpler, its just to stop randomly killing and terrorizing us. Please and thank you.

So… Maybe the protests of this year caught special notoriety because the society is reacting after (or during, for many of us) the lockdown. In any case, I hope for their success in changing the planet’s culture of oppression.


Tomas Janousek 2020-06-19 10:04:32 +0200

In the blog post “On masters and slaves, whitelists and blacklists…” you claim that “GitHub changed the default branch from master to main earlier this week” but I don’t think that change is in effect yet. When you create a repo, the default branch is still named “master”.

Gunnar Wolf 2020-06-19 11:52:30 -0500

Umh, seems you are right. Well, what can I say? I’m reporting only what I have been able to find / read…

Now, given that said master branch does not carry any Git-specific meaning and is just a commonly used configuration… I hope people start picking it up.

No, I have not renamed master branches in any of my repos… but intend to do so soonish.

Tomas Janousek 2020-06-19 20:01:52 +0200

Yeah, don’t worry. I just find it sad that so much inaccurate news is spreading from a single CEO tweet, and I wanted to help stop that. I’m sure some change will happen eventually, but until it does, we shouldn’t speak about it in the past tense. :-)