
The Go Language was rid of blacklist/whitelist and master/slave - itvision
https://go-review.googlesource.com/c/go/+/236857/
======
slim
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.

~~~
Frost1x
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_...](https://en.m.wikipedia.org/wiki/Blacklisting#Origins_of_the_term)

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.

------
tkfu
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.

~~~
astorgard
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.

~~~
fanf2
It isn’t clear to me that master/slave has a specific meaning. For instance in
the DNS world, it's better to talk about read-replicas, public authoritative
servers, update servers, zone transfer servers, DNSSEC signers, etc. - the
nuances aren't captured by a primary/secondary distinction. The old
master/slave terminology is badly misleading since the DNS protocol doesn't
allow the master to command the slaves to do anything: in the DNS it's the
slaves that make the demands. (BIND now supports primary/secondary in its
configuration though there are parts that still require the old words.)

------
bmurphy1976
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.

~~~
magicalhippo
> 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.

~~~
mcphage
> 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.

This meaning for master and slave is not clear at all. It’s merely familiar to
you.

~~~
magicalhippo
You could say that about anything. Most common jargon already have a clear
meaning.

Primary/secondary has a clear meaning to me, same with leader/follower. Both
are very different from master/slave.

I'm not saying we must at all cost continue to use master/slave, I'm not
married to that piece of language. But I'm struggling to find cases where
primary/secondary would be a good replacement for master/slave. That's
assuming master/slave was a good fit in the first place.

~~~
mcphage
> You could say that about anything.

Yes, you could.

------
Tade0
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".

~~~
dvfjsdhgfv
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.

~~~
thefz
> 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

Ah, the good old "you can't be racist towards white people" mantra. As an
example, all of ex-Yugoslavia would like to disagree.

> 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.

And worst, sometimes these precautions are used by corporations who mean no
good other than signalling wokeness to turn up a profit.

~~~
eesmith
The argument is that "racism" is not simply discrimination on the basis of
race but rather that racism requires structural and systemic bias against an
ethnic, racial, religious, etc. subgroup of the population who do not have
political power.

As such, you can therefore talk about the racism of the English towards the
Irish, even though both are considered "white" by modern standards (though at
that time, the English prided themselves as being in the "Anglo-Saxon" race).

And you can certainly use that framework to talk about the genocide of
Bosniaks and Bosnian Croats targeted by the Bosnian Serbs with who had local
power in the areas controlled by the Army of Republika Srpska.

So to summarize the argument as "you can't be racist towards white people"
comes across as a complete misunderstanding of the actual argument.

It's certainly possible for someone who self-identifies as "white" to be
discriminated against on the basis of race. But if you want to also call that
"racist" then what term do you use for something like Jim Crow laws in the US
or apartheid South Africa where racism was truly and without doubt systemic?

~~~
effie
> But if you want to also call that "racist" then what term do you use for
> something like Jim Crow laws in the US or apartheid South Africa where
> racism was truly and without doubt systemic?

Being racist has nothing to do with laws or power structure. It is believing
that people of some other race are inferior.

Racism supported by laws/government is called ultra-right-wing state,
nationalism, segregation, apartheid.

~~~
eesmith
[https://en.wikipedia.org/wiki/Racism](https://en.wikipedia.org/wiki/Racism) :

> Today, some scholars of racism prefer to use the concept in the plural
> racisms, in order to emphasize its many different forms that do not easily
> fall under a single definition. ...

> Garner (2009: p. 11) summarizes different existing definitions of racism and
> identifies three common elements contained in those definitions of racism.
> First, a historical, hierarchical power relationship between groups; second,
> a set of ideas (an ideology) about racial differences; and, third,
> discriminatory actions (practices).

Your "believing that people of some other race are inferior" falls under the
second of those three.

But compare your "nothing to do with laws or power structure" with
"historical, hierarchical power relationship". Clearly there are different
definitions.

On the same page:

> Scholars also commonly define racism not only in terms of individual
> prejudice, but also in terms of a power structure that protects the
> interests of the dominant culture and actively discriminates against ethnic
> minorities. From this perspective, while members of ethnic minorities may be
> prejudiced against members of the dominant culture, they lack the political
> and economic power to actively oppress them, and they are therefore not
> practicing "racism".

Which leads us back to the reason I joined this thread in the first place -
that perspective was dismissively summarized earlier as the '"you can't be
racist towards white people" mantra.'

~~~
effie
The quote says there are different existing definitions of racism. I agree
with that statement.

I don't agree that your definition of racism is useful to discussion. It is a
redefinition that confuses people into false and harmful beliefs, such as the
idea that "people of oppressed minority race cannot be racial oppresors" or
the idea that "an action/belief against white majority cannot be racist".

~~~
eesmith
While you don't agree with the quote about how the scholarly definition
requires an imbalanced power structure.

What are the false and harmful beliefs?

More specifically, what are some examples of an oppressed minority race
becoming racial oppressors while still being subordinate in the power
structure? How are they able to oppress with little political and economic
power to do the oppression?

What are examples of where it's important to say that an action against a
white majority is "racist" when we cannot equally well say it's "racially
discriminatory" or "racially bigoted" or other terms?

Yes, there are many terms with differing definitions. We need only look at the
differing definitions and understanding of what "rape" means. (Or the
"evolution is only a theory" crowd.)

But that doesn't mean (going way back to how I entered this thread) that it's
correct to describe this more scholarly-based interpretation as 'the good old
"you can't be racist towards white people" mantra'.

~~~
effie
> _what are some examples of an oppressed minority race becoming racial
> oppressors while still being subordinate in the power structure?_

If minority is a requirement, then some examples are:

1) Jewish Nazi collaborators killing Jews, 2) Black gangsters killing black
people 3) black/latin-american SJW agents manipulating authorities for more
discrimination and cancelling of their white enemies.

> How are they able to oppress with little political and economic power to do
> the oppression?

In cases 1),3) by having elevated power granted and supported by even more
powerful groups. In case 2) they are organized violent people with guns - they
have substantial power.

~~~
eesmith
[I haven't repeated this disclaimer recently enough. "Race" is a sociological
construct with no biological meaning.]

1) Apartheid South Africa gave special status to Japanese people - honorary
whites. This doesn't mean that the Japanese people could control their own
status; it was a special status given to them by the white supremacists who
wanted Japanese trade deals.

Similarly, your 1) is for people were granted special privileges by the racist
Christian Germans because of the services rendered for the racist power
structure.

But the racist power originated from those Christian Germans, not Jewish
Germans.

So, great, you've discovered that some black slaves avoided whippings by
helping their white slave masters keep the other slaves in line. With as much
sarcasm as I can muster: If only those black slaves hadn't been so racist.

2) How is this racism, any more than white gangsters killing white people? So
if a black business owner shortchanges a black customer, that's also racism?

3) Are you effing kidding me?

Everyone who is outraged at, angry with, or otherwise against the police
violence against black people is an SJW.

I am an SJW. 60% of Americans believe that ’Racism is built into American
society. The assumption of white superiority pervades schools, business,
housing, and government.’ according to a recent Yahoo News/YouGov poll. 52%
agree that "President Trump is a racist." The majority of Americans are SJWs.

If you are not outraged .. why not?

Drop the nonsensical "SJW" rhetorical label. Demand social justice and
equality.

Now, back to 3) By "example" I don't mean some abstract story. Because I
remember the lying stories Republicans used about black welfare queens in
order to harness good old American racism to shrink our social safety net.

"Agents"? How sinister! You know you could have left it as "SJWs", right?

Your terms have been so over-used by right-wing extremists that they have
acquired new meanings.

Your "more discrimination" comes across like those people who insist that
"feminism" means not "gender equality in the public sphere" but wrongly that
"women should be in charge, and men should be hated."

While your "cancelling" bring to mind all those people who think "cancel
culture" means "no one expressing bigoted ideas should ever have to face
consequences."

~~~
effie
I provided an answer to your question. I did not claim those are examples of
minority race being racist.

Such examples can be found as well, if we change the target group to be a
different race. Nazi Germany (whose population became oppressed minority in
Europe after being defeated in WW I) was becoming more racist towards most of
the European nations south and east of them (majority) - including Slavic
nations, Romas and others. More recent example, after WW II, Israeli settlers
(most of which are Jews, an historically oppressed minority) became racist
towards Palestinians (majority).

> Everyone who is outraged at, angry with, or otherwise against the police
> violence against black people is an SJW.

That's another misunderstanding of terms on your part. Almost everybody who
saw that video and other police transgressions since then was disgusted by
those policemen actions and are against such police brutality. That includes
many racists, bigots, right-wingers, libertarians, traditional left,
progressives and others not so easily categorizable political agents.

That does not make them SJW's. "Social Justice Warrior" now has a very
specific pejorative and derogative meaning: a vocal activist pushing and
fighting for ideology of political correctness, for positive discrimination,
favouritism of people of minority groups, limiting freedom of expression by
policing words and inventing and enforcing new words, and generally using any
means available, including racist or bigoted or factually incorrect or
logically flawed arguments about race, power, history or biology. They are
very attention-seeking and uppity. They care more about winning rhetorical
arguments and political battles than about being right and fair.

People who really care about society and people of all races/groups having
their fair part in society are very different from that. They do not try to
annoy, divide or cancel people of other groups, they do not push ideology,
instead they try to work with those people towards common goals.

~~~
eesmith
My question was about 'oppressed minority race becoming racial oppressors
still being subordinate in the power structure' not a few members of said race
becoming racial oppressors.

Once a country has weapons and can defend itself, its citizens are not really
subordinate in the power structure, is it?

When you write "against such police brutality", what does "such" refer to?

Because most of the people I've seen/heard on the topic are specifically
against _racist_ police brutality. (And they aren't arguing that police
brutality against whites should increase.)

Where's the long list of white people killed by police brutality that matches
what we've seen _on video_ for black people?

> now has a very specific pejorative and derogative meaning

Based on my observation, its most common meaning is simply a derogatory term
for progressive.

Are NASCAR officials SJWs by banning the traitor's flag at their events? Are
they "politically correct"? ... or simply "correct"?

You do know that "uppity" is traditionally used as a way to put down women and
blacks who supposedly didn't know that they were supposed to be lower in the
social hierarchy, right?

------
ngngngng
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.

~~~
neysofu
Deleted

~~~
dragonwriter
> Same argument against replacing "master / slave". It's a powerful metaphor
> that sometimes works really well when talking about IT.

Whether it works really well depends on cultural loading of the concepts in
the audience, that's the nature of metaphor. Choosing terms whose cultural
loading has less intense variation will result in more consistent effect.

------
austinjp
Hmm I notice the change was made to the "master" branch :/ Maybe change that
to "main".

~~~
zeeZ
Good thing I don't have a master's degree.

~~~
lsofzz
> Good thing I don't have a master's degree.

Hah. Exactly.

------
onikolas7
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](https://en.wikipedia.org/wiki/Bathtub_curve)

------
tomp
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.

~~~
wahern
There are animal rights advocates offended by usage of the terms master and
owner when referring to an animal's guardian--their preferred term.

~~~
tomp
Why would I (or anyone else) care? The important question is, are the
_animals_ offended? Besides, I think _owner_ is the correct legal term - if
you own an animal, you're responsible for it (and for any harm it might do to
others).

------
Ygg2
No master/slave? That's just bigotry against BDSM culture.

~~~
DagAgren
No, it is not.

~~~
Ygg2
That's the beauty of identity politics. No matter what you say, you are always
going to encroach on someone's identity.

Whoever promoted it, was a machiavellian genius. People can't rebel if they
keep each other in check.

~~~
lsofzz
> That's the beauty of identity politics. No matter what you say, you are
> always going to encroach on someone's identity.

> Whoever promoted it, was a machiavellian genius. People can't rebel if they
> keep each other in check.

That is exactly what I wanted to say too but you said it better.

I'd point out that there are possible hundreds if not thousand other software
that use the terminology. It doesn't offend me at all.

$> man -k slave grantpt (3) - grant access to the slave pseudoterminal grantpt
(3p) - grant access to the slave pseudo-terminal device jack_netsource (1) -
Netjack Master client for one slave kdeinit5 (8) - Launcher for applications
built with kdeinit support, ... ptmx (4) - pseudoterminal master and slave pts
(4) - pseudoterminal master and slave ptsname (3) - get the name of the slave
pseudoterminal ptsname (3p) - get name of the slave pseudo-terminal device
ptsname_r (3) - get the name of the slave pseudoterminal Tcl_CreateSlave (3) -
manage multiple Tcl interpreters, aliases and hidden c... Tcl_GetSlave (3) -
manage multiple Tcl interpreters, aliases and hidden c... unlockpt (3) -
unlock a pseudoterminal master/slave pair unlockpt (3p) - unlock a pseudo-
terminal master/slave pair

$> man -k master agentxtrap (1) - send an AgentX NotifyPDU to an AgentX master
agent getpt (3) - open the pseudoterminal master (PTM)
gnutls_session_ext_master_secret_status (3) - API function
gnutls_session_get_master_secret (3) - API function
gnutls_session_set_premaster (3) - API function jack_netsource (1) - Netjack
Master client for one slave mmafm (1) - creates AFM font metrics for multiple
master fonts mmpfb (1) - creates single-master fonts from multiple master
fonts ptmx (4) - pseudoterminal master and slave pts (4) - pseudoterminal
master and slave pulseaudio-ctl (1) - Control pulseaudio's basic functions
such as the maste... RAND_DRBG_get0_master (3ssl) - get access to the global
RAND_DRBG instances SSL_get_client_random (3ssl) - get internal TLS/SSL random
values and get/set... SSL_get_extms_support (3ssl) - extended master secret
support SSL_get_server_random (3ssl) - get internal TLS/SSL random values and
get/set... SSL_SESSION_get_master_key (3ssl) - get internal TLS/SSL random
values and ge... SSL_SESSION_set1_master_key (3ssl) - get internal TLS/SSL
random values and g... Tcl_GetMaster (3) - manage multiple Tcl interpreters,
aliases and hidden c... Tk_GetImageMasterData (3) - define new kind of image
unlockpt (3) - unlock a pseudoterminal master/slave pair unlockpt (3p) -
unlock a pseudo-terminal master/slave pair WildMidi_MasterVolume (3) - sets
the overall audio level of the library. xapian-replicate (1) - Replicate a
database from a master server to a local copy

~~~
lsofzz
I'd also say `man` from the unix manual <\- yep, would you consider that to be
the elephant in the room?

If I had to hazard a guess, we are all a bunch of
technologists/engineers/tinkerers who deal with technical stuffs; not some
societal driven definitions and constraints that supposedly _define_ what
`man` is in this context. We bloody well know what `man` is in this context -
manual pages. For some odd $deity fore shaken reason, please don't try to bend
the meaning of it.

------
bassman9000
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.

------
taylodl
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?

~~~
wahern
deny has 4 letters, while allow and block have 5. Having the same number of
letters for the variable component(s) of a set of interface names is quite
convenient.

------
austinjp
ITT: reductio ad absurdam.

------
kbumsik
There is nothing wrong with the change, but I personally not sure if "slave"
offends someone. "slave" does not represent a social group anymore.

~~~
colinjoy
“The International Labour Organization[5] estimates that, by their
definitions, over 40 million people are in some form of slavery today. 24.9
million people are in forced labor, of whom 16 million people are exploited in
the private sector such as domestic work, construction or agriculture; 4.8
million persons in forced sexual exploitation, and 4 million persons in forced
labor imposed by state authorities. 15.4 million people are in forced
marriage.”

[https://en.wikipedia.org/wiki/Slavery_in_the_21st_century](https://en.wikipedia.org/wiki/Slavery_in_the_21st_century)

~~~
luckylion
You're suggesting that the actual slaves take issue with the usage of the word
"slave" in tech?

~~~
austinjp
I don't think this is the thrust of the issue, but since you mention it, yes.
I'm pretty sure someone who lives in modern slavery would find it sickening to
learn that the word "slave" is used casually without consideration for those
it describes. But we all know the historical role of slavery in many cultures,
and the legacy it has left in current life, which is more the issue.

It's a selfish and unjustifiable situation to be in, where one group of people
casually uses language that describes a different group in questionable terms
without considering how the other group might feel. It's trivial to implement.
Questioning it is a hair's breadth from defending it.

~~~
luckylion
> But we all know the historical role of slavery in many cultures, and the
> legacy it has left in current life, which is more the issue.

Why bring "current slavery" into it then, if this is what you mean?
Personally, I'm pretty sure that slaves care about slavery, not language in Go
documentation, but that's speculation of course.

> without considering how the other group might feel

Have you asked a slave in Saudi Arabia how they feel about the usage of the
word Slave in Go documentation?

~~~
austinjp
> Why bring "current slavery" into it

Because it was mentioned in the post you replied to.

> Have you asked a slave in Saudi Arabia how they feel about the usage of the
> word Slave in Go documentation?

Why Saudi? Slavery exists globally. You know someone whose ancestors were
bought, sold and died as slaves. Ask them how they feel about it.

~~~
tomnipotent
> Why Saudi?

Maybe because it's easier to Google and find supporting evidence? You should
give it a try.

> You know someone whose ancestors were bought

Sure, rather than the 40 million living it first hand.

~~~
austinjp
I'm frankly bemused at the push-back in this thread, and totally lost about
your aggressive tone towards me.

The parent post links to global slavery information, here
[https://news.ycombinator.com/item?id=23446390](https://news.ycombinator.com/item?id=23446390)

The original post was about choice of language in code repositories.

I've no idea what you're objecting to.

I'm out.

------
zeroimpl
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.

------
sneak
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.

~~~
anonfunction
The connotation is that white is good and black is bad.

~~~
mudita
To me it seems that this connotation is very deeply embedded in Western
culture (but not only Western culture, compare for example yin and yang) and
doesn't actually have much to do with race, and more with day and night, light
and darkness and the fact that humans are not a nocturnal species and darkness
can be dangerous to us.

According to [https://en.wikipedia.org/wiki/Black-and-
white_dualism](https://en.wikipedia.org/wiki/Black-and-white_dualism) this is
traceable to the Ancient Near East and listed in the Pythagorean Table of
Opposites for example, so it goes much further back than the Atlantic slave
trade.

I do not think that it would be possible to rip this metaphor out of our
thinking.

By the way, a really great linguistic book about how much of our thinking is
in systematic metaphors in general, is "Metaphors We Live By", by George
Lakoff and Mark Johnson.

~~~
dvfjsdhgfv
> I do not think that it would be possible to rip this metaphor out of our
> thinking.

But this is exactly what certain people are trying to do. And it's not a
fringe group anymore, this is starting to touch different aspects of our life
that have no any real relation to racism or skin color. If "black" in
"blacklist" is offending you today, tomorrow you will be offended by Master's
degree.

------
flippinburgers
This shows a strange inability to differentiate between computers and humans.

------
raverbashing
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.

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

