A partial defense of master / slave nomenclature in technology

By now you’ve probably heard that there’s a movement to change various pieces of computing terminology that refer (or in some cases just appear to refer) to slavery or other terms that are racially sensitive. I’m in favour of making the world of software more welcoming to all kinds of people, and I think there is plenty of important work we can do here. However, some of the arguments I see people making here don’t make sense to me, and I’d like to explain why.

Before I get into the main argument, I’d like to make it clear that I respect the motivations of people who I’m not in agreement with on this, and I hope that this article can (in a small way) lead to more clarity on this point. Even if my argument is wrong, I hope that setting it out can help me and other people to understand the argument better and (if appropriate) why it fails.

An analogy is not an endorsement

Using a concept for a technical analogy is not an endorsement of that concept. We talk about killing tasks, zombie processes, dead code, flooded servers, etc. and none of these are indications that these are positive things or that we want to run human society in such a way.

The recent rise of containerised architecture has come along with a shift of thinking of servers from “pets” (cared for) to “cattle” (killed whenever convenient). I don’t have the statistics, but I imagine this shift has occurred at a time when more and more engineers are vegan or at least engaged with animal welfare issues.

I think most of us can see through this apparent contradiction: using the metaphor of servers as cattle isn’t making us more likely to kill animals for food, nor is any reduction in social squeamishness about animal-killing driving the containerisation boom. The metaphor is merely useful and (as far as I know) nobody has trouble differentiating the metaphor from the reality.

You can see elements of this evolution, much further down the track, in the word “workhorse”. I could refer to a server or a database engine or a keyboard as a workhorse and everyone would understand what I mean. This is despite the fact that there are fewer and fewer people still alive who remember horses being used as beasts of burden. The word, abstracted from its original concrete meaning, remains useful long after the reality has faded away.

An apt analogy can be useful

The technical use of master / slave is pretty narrow and specific; it isn’t applied arbitrarily. That some architectures have a single node making decisions and other nodes following that don’t make independent decisions is a real architectural fact. Other architectures don’t have this, and the difference between these architectures is not socially constructed but is a real engineering difference.

The decision to choose one architecture over the other is an engineering decision about the properties of the two systems, and even if you think modern life is structurally racist I believe you can agree that these decisions are made on their technical merits.

The proposed alternatives “leader” and “follower” actually blunt some of the descriptiveness. The servers we formerly referred to as “slaves” are not semi-independent servers that might sometimes have unique contributions of their own; they are limited to do exactly what they are told by some other server.

Why this is only a partial defense

The realities of human beings are complex, and words can have a power that cuts far beyond the logical implications of their etymology. I needn’t give examples of specific slurs for you to get my point: we can all call to mind many words that would be personally hurtful to us, or to those we care about, and with only a little empathy can foresee the potential impact on people who have nothing in common with us, but who we nevertheless don’t wish to see hurt.

It may well be that “slave” has become one such word, for people in the English-speaking world in the early part of the 21st century.

A word needn’t be hurtful to everyone in order to be worth retiring. The pain needn’t even be widespread; even a few percent of people being actively hurt by a word choice is probably too many.

If you’re in my team and a term we use is hurtful to you, I’ll do whatever I can to avoid that problem for you. If I’m working on a project where team members are being hurt by choice of language, I’ll support that team finding better language. Words exist to serve humans. But this adaptation is something we should do in the case of specific harm to individuals, not a vague sense of social harm.

How and where exactly to draw the line is difficult, but I think there is the potential to for some objectivity here. It would be unreasonable to expect that every injured person speak up, but some personal testimonies would help to build understanding. Surveys asking about personal experiences (not just opinion surveys) would be helpful. So far I haven’t seen any evidence of this kind offered by those who think our language needs to change.

Leave a Reply

Your email address will not be published. Required fields are marked *