back
177 comments
This is just stupid. Words are polysemic, they have multiple meanings depending on their context, but more importantly they don't have any meaning outside any context. Words are offensive because their context is offensive. If you don't change the context, you don't solve the problem.

I've never thought master/slave offensive in the context of computers. Those words imposed their inoffensive meaning in the culture of computer users for half a century. Now they just ruined it, they actually changed the context to make those words offensive again. Sometimes you just have to fight the cultural battle.

Definitely. And "blacklist"/"whitelist" is used for a lot of contexts outside computing that have, to my understanding, not even a historic relation to racism:

https://en.m.wikipedia.org/wiki/Blacklisting#Origins_of_the_...

What's next, blackboards and whiteboards? What about red-black trees? Do we really need to shuffle around well established non-offensive terms just because they have a color in their names?

If there was some truly offensive embedding in our nomenclature im all for removing it but this seems like a silly PR stunt. We're turning completely benign ideas into something offensive.

I agree that the context determines the intent to offend but I think some words may be offensive or at least distracting to some despite the context.

If you have seen a word used in a certain context enough it can become difficult to ignore that context in other uses. Similarly, after watching an actor play a role well it may be hard to separate them from that role while watching other movies.

It may also be useful to imagine master/slave replaced with words that are offensive to you to imagine what it’s like for someone else. For example, if they were called pimp/bitch servers I’m sure others would find that offensive.

Different sets of words will be offensive to different individuals. I’m sure we could find 2 words which are less offensive to all.

Very well said! I might add, some people seem to look for things to get offended by just to bamboozle others into thinking they deserve special treatment and as a result, gain some political power.
Good for them! When it was first pointed out to me that these terms feel harmful for many, I rolled my eyes a little bit. But after thinking about it for a while, a few things became clear:

(1) There's no particular reason to start using the terms in a new project

(2) Leader/follower is much more accurate and clear than master/slave in basically every way

(3) It's a lot less difficult than I originally thought to fix legacy docs and code with nicer language

(4) The fact that master/slave has never bothered me personally has absolutely zero bearing on whether I should support their continued use.

Well, there is one drawback I can think of: they are well established terms that have a very specific meaning on an engineering context.

I agree that "leader/follower" might be easier to grasp for someone who has never encountered these terms before, but it is also true that it causes a bit of confusion for more experienced engineers.

For example: if I am reading documentation about a hardware controller and find the "leader/follower" terms I would wonder (and, in fact, this has happened to me in the past) if they have the same meaning as "master/slave" or if the author has decided to use these other terms because there is some particular behavior quirk that applies to this hardware that I should be aware of.

All in all, you have to compare cons and pros and, for this particular context (engineering), I think correctness and lack of ambiguity is more important than "feelings"... but this is (obviously) just my personal opinion.

This is a ridiculous and sad move. We are living in 1984 a bit more every day.

Master/slave was chosen on purpose because it is very clear, clearer than the alternative you suggest, and is no more offending that using Knight, gladiator, etc.

Sometimes we must realise that an issue lies with the people who are offended by anything and everything, not with what offends them.

I initially rolled my eyes too, but if there's one thing I learned in the last two weeks is that you can't "imagine" how something is perceived by a member of a persecuted minority. No amount of thought experimentation can reproduce a lifetime of experiences that hurt your self-worth.

That said, leader/follower and allowlist/blocklist are both better than the older terms in every way. The represent the actual mechanisms better and they're less metaphorical.

> Leader/follower is much more accurate and clear than master/slave in basically every way

Not for me. A master is to me much more controlling than a leader. A follower is to me much more independent than a slave.

Again, take say i2c where the master is the only one who can initiate a transaction. Being an "i2c follower" doesn't convey to me that the follower is prohibited from initiating a transaction.

The controller/worker suggest by others is much better than leader/follower, but "worker" doesn't work very well in all cases IMO.

"Leader" == "Führer" could be constructed as offensive in Germany, if you are motivated enough. Should we accuse Google of cultural imperialism? Antisemitism?

Also, when I'm working in a corporate hierarchy, I don't want to see the words "leader" and "follower" all day. But perhaps that is an intended side effect of that change.

I started replacing master/slave with primary/secondary in my code 20 years ago. I was never happy with the terminology (been programming for over 30 years now, didn't like it what when I was 14, still don't like it at 44).

As for blacklist/whitelist, my first thought was that I'd change it to allowlist/blocklist and sure enough that's exactly what they did.

There's nothing wrong with this change. If you have a problem with it you need to look deep inside yourself and reexamine your own biases. That's where the real problem lies.

> I was never happy with the terminology

> If you have a problem with it you need to look deep inside yourself and reexamine your own biases. That's where the real problem lies.

So if you are not happy with established terminology you change it but if someone else is not happy with the change he is biased?

There are valid reason to be bothered by the change itself, even if the new words are OK. For 1) from the leadership, it is intellectually weak/calculating and fear-based appeasement move to a vocal extremist ideology group; there was nothing wrong with those terms in those contexts. For 2) the change and the associated power play has divisive and desintegrative effect on the project. For 3) it is a nasty manipulation of decent people, unaware of the political power game that is the real motivation behind these calls for new, better terms.

> I started replacing master/slave with primary/secondary in my code 20 years ago.

But primary/secondary doesn't mean the same as master/slave.

Consider master/slave from say i2c protocol. Switching to primary/secondary would completely obscure what is going on, you might as well call them apple/orange, while with master and slave it is very clear.

I'm conflicted about this, because on one hand I don't enjoy Americans exporting their notion of racism (which is historically loaded and makes sense only in the context of US history), on the other hand I'm writing this on an American site using software developed mostly by Americans etc.

So I guess it's "take it or leave it".

Yes, I think it's important to remember - both for American as well as outsiders - that racism-related notions are different and sometimes are completely alien in other countries/cultures. For example, some Americans believe that racism doesn't include prejudices towards the dominant "race"/ethnicity, and find it offensive to even suggest that it might be so (some even invented the term "inverse racism" for that). For example, the racist implications of painting one's face black are so alien in other cultures that every few years there is a big storm about someone doing blackface in Europe, having no idea it will offend Americans (recently it was Gigi Hadid in Vogue Italy).

For example, as an European, when someone says "slave", I immediately think about ancient Rome. To think that in the USA you had slaves only recently always strikes me as really strange. To say nothing about the segregation period quite recently.

In any case, I still wonder: you can remove these words from software and try to banish their current metaphorical usage. But will it really make a difference to your history? These seems like nervous attempts at "making everything right" in a situation where no right can be made - at least there is no easy way to do so.

> makes sense only in the context of US history

Sorry but I must disagree. The U.S. slave era was not uniquely American. Who operated those slave ships to "import" the blacks from Africa? It wasn't the Americans. No, the Dutch had a big role, as did other cultures.

And as the protests around the world have demonstrated, racial discrimination is a global issue with similar problems in many countries to what you see happening in the States.

I came across this sentiment on Twitter for the first time just a few hours ago today, and while it almost feels like searching for reasons to be offended (which you will always find) I'm pretty happy with the change. Allowlist/Blocklist is even more obvious than the original.
Deleted
Hmm I notice the change was made to the "master" branch :/ Maybe change that to "main".
Good thing I don't have a master's degree.
My least favorite tech term is "infant mortality"[1] from reliability engineering. Just very bad naming taste.

[1] https://en.wikipedia.org/wiki/Bathtub_curve

Slavery is only bad if the slaves are people (or, generally, any self-aware entity with its own agency).

I, as a human, love being a master to my computer slaves.

There are animal rights advocates offended by usage of the terms master and owner when referring to an animal's guardian--their preferred term.
No master/slave? That's just bigotry against BDSM culture.
Just use dom/sub :)
No, it is not.
I mean, if we're nitpicking

Anyway, allowlist and blocklist are more self-explanatory than whitelist and blacklist, so this change has negative cost.

No, it does not. All changes have cost. They just can't see it now, or chose not to see it now. Aside from the obvious cost in the very same patchset.

I’ve been using the term controller/worker since the 80s as have many others. It also better connotes what’s going on. I do like allowlist/blocklist. Though blocklist sounds really close to blacklist. Maybe we should use denylist instead?
ITT: reductio ad absurdam.
There is nothing wrong with the change, but I personally not sure if "slave" offends someone. "slave" does not represent a social group anymore.
It seems to me that if they had used those replacements names in the first place, nobody would have ever submitted a PR to change them to master/slave or blacklist/whitelist. Thus most people complaining are just making a fuss over nothing.
Replacing master/slave with leader/follower makes perfect sense, given historical context.

Is blacklist/whitelist inherently racist, or does it have racist origins? Try as I might I don’t see inherent bias in it.

This shows a strange inability to differentiate between computers and humans.
From the file changes it is not very clear in which context these words are used.

I mean, if it was a library or a DB sure, but these seem to be more in the language core.

This is common practice already I can say at least 10 years.