On master/slave
This post was occasioned by the news that open-source software repository GitHub is seeking to expunge the use of the word "master" from its services. "Master", it seems, is a word too closely associated with "slave" for comfort.
The decision is a tiny bit inconvenient for many people who use GitHub, but I suspect that the outrage the decision provoked has little to do with its pragmatic consequences. Rather, it's seem by many as a cynical attempt by GitHub's owners -- Microsoft -- to exploit popular sentiment to their advantage. I think it's at least plausible that this is the correct explanation, and I suspect that Microsoft/GitHub aren't the only businesses trying to cash in. But, as I shall argue, there are potentially non-cynical motives that are worthy of respect -- grudging respect, to be sure, but respect nonetheless.
Underlying GitHub's decision (and GitHub isn't alone in this) is a movement to try to avoid using the term "master/slave" in computing and technology. The master/slave pattern is absolutely ubiquitous, and is used to describe any configuration where one component of a system is subordinate to another. In my field, I deal with master/slave message brokers, and master/slave databases, and many others. It's a term that everybody in the industry recognizes and understands.
Furthermore, I'd argue that, in its use as jargon, the terms "master" and "slave" actually have no connection to the institution of slavery. They are simply bits of computer jargon.
A (female) friend of mine argues that computing is loaded with jargon that is subtly discriminatory against women. For example, she says, no woman would describe the process of stopping a computer program as "termination". Or, worse, the unexpected failure of a program as "abortion". The fact that these terms are used, she says, quietly legitimizes a masculine dominance of the industry.
I don't know if this is true, or even plausible; but I do think that in the computing industry we've gotten used to using words as purely terms of art, without really even thinking of their original meanings. When I talk about a "slave message broker", nothing comes to my mind that is remotely connected to the institution of slavery. And yet...
Slavery is an emotive subject, and rightly so. So far as I know, I'm not descended from slaves or slave-owners, but I'm surely the product of a society that enriched itself by exploiting huge numbers of other people. This is not a source of pride for me; I doubt it is for anyone. In England the shame in our collective past has manifested itself in the destruction of monuments to those whose fortunes were made by slavery. I don't approve of this vandalism, but I understand perfectly well why people aren't keen on memorializing slavers.
In the technology field we're worried, I think, about using terminology that gives quiet legitimacy to the concept of slavery. The very fact that we have a word for the subjugation of one person by another suggest that it was commonplace, and acceptable to many, at some point. If it had never happened, there would have been no need to give it a label. So, even though the term "master/slave" in technology has no direct connection to the institution of slavery, when we use it we're using a term that creates a measure of legitimacy for the concept it embodies.
Don't misunderstand me here -- I'm not saying that because I call my message broker topology "master/slave", people who see that are going to think it's OK to pack African people into ships' bilges and take them to the other side of the world to be worked until they die. I fully understand how Orwellian it is, to think that we can change reality by changing the way we use words.
And yet, every time we use the term "master/slave", in any context at all, we give the concept it embodies a tiny, tiny bit of legitimacy. We don't want to, and we probably don't think about it, but we do. Just as every time we talk about "terminating" a program, we're maybe, just maybe, giving a tiny, tiny masculine bias to our notions of what computing is about.
The problem is that these tiny, tiny influences can add up. I'm not entirely sure what they add up to, exactly. It's possible, frankly, that they don't add up to very much at all. It's even possible that this is all just political correctness gone mad. Still, at the back of my mind, I have this feeling that maybe, just maybe, we should be a little bit careful here.
I no longer use the terms "master" and "slave" in my own work, unless I really can't avoid it. To be frank, sometimes I really can't avoid it, because these terms are shot through the industry like the letters in a stick of Brighton rock. There are many functions and data structures with names that contain "master" and "slave", and they aren't going to change overnight. Still, where I can, I try to use terms like "active/passive" and "live/standby" instead. I'm not naive enough to think that this will change the world, even if we all do it. After all, bias and prejudice are an integral part of the human condition. Still, it costs me nothing.
And so, to GiHub. The problem I have with GitHub's position is that there is no "slave" that ever accompanied their "master". "Master" in the GitHub context means "main", and that is the preferred replacement term. If I'm not 100% convinced that the term "master/slave" is all that problematic, I'm even less convinced about the value of eschewing the word "master" on its own. I hope one day to master the piano. That doesn't mean that I will keep it as a slave, but that I will, I hope, achieve some level of expertise on it.
Being unable to distinguish these subtly different uses of the word master is related to our inability to use the words "masterful" and "masterly" correctly. To be "masterful" is to dominate, to take charge. It's the kind of "master" that could, potentially, have a slave. "Masterly" is a term that applies to a "master craftsman" or a "master builder". It implies expertise and experience, not domination.
I am unsure whether GitHub's use of the term "master" was more in the sense of "masterly" or "masterful". Perhaps neither -- perhaps it was always just "main". But perhaps there's just the tiniest implication of "slave" in their use of the term "master".
At least, I hope so. That is, I hope they're not just making a cynical attempt to appear fashionably "woke". As a move towards social justice, it's not even close to, say, an inclusive hiring policy. To their credit, Microsoft is trying to do that as well (a policy the Company seems to have to fight its own employees to implement).
If I seem a little conflicted about this issue, that's because I am. There's a awful lot of cynical attempt to cash in on public sentiment -- oil companies going "green", burger joints promoting veganism, and so on. Nevertheless, doing good for bad motives still amounts, in the end, to doing good.