
Replaced occurrences of master/slave terminology with leader/follower - oellegaard
https://github.com/django/django/pull/2692
======
reitzensteinm
I nearly spat my coffee out when I read that it was to be replaced by
"leader/follower". That would be a bad idea, IMO, and what most people here
and on the Github thread are commenting on.

But actually, the terminology being used is primary/replica, which is if
anything more descriptive.

~~~
staticelf
Is it, really? Please elaborate why it would be more descriptive.

I think this is a nonsense change and just the fact that they did this change
without hesitation makes me question if Django is a good choice for future
projects.

You can't make changes to established naming without consequences, what about
classes? Don't they offend people who does not come from money? Django is full
of them, dividing stuff into different classes. That is just disgusting. They
must stop to use classes now!

I would have no objection if they changed to primary/replica for a good
reason, but this is a shit reason.

------
zeroflow
Reminds me of poe's law...
[http://en.wikipedia.org/wiki/Poe's_law](http://en.wikipedia.org/wiki/Poe's_law)
It could be a parody or not, but until the writer states so, you cant be sure.

From my point of view, its a pretty bad idea. Master / Slave is used in nearly
every system ranging from basic integrated circuits using a bus (SPI, I2C,
...) up to multi cluster database systems. It has a clearly defined function
and and everyone in tech knows what it means. It doesnt matter if youre from
USA, England, Germany oder Iran. A master/slave system has a clearly defined
behavior.

Trying to bring feelings into the clean technical world it one of the most
stupid things i can think of. In this case, it only affects the documentation
of a project, but in other cases, trying to be politically correct has
destroyed lifes of people. [http://www.wired.com/2013/03/richards-affair-and-
misogyny-in...](http://www.wired.com/2013/03/richards-affair-and-misogyny-in-
tech/)

------
Tehnix
.... this is simply lame, the master/slave term describes perfectly fine the
relationship between the parts, and leader/follower is a bit more vague, since
a follower is during it voluntarily, while the slave adheres to the masters
rules... At least how I see it.

I'd say this is just plain being oversensitive...

~~~
seandougall
Leader/follower isn't what they went with; as noted elsewhere, they used
primary/replica instead.

Master/slave also doesn't accurately describe it beyond a very superficial
level, and its historical usage doesn't make it any more apt. In distributed
systems, the primary does not sit back while forcibly delegating all its
productivity.

------
cheerio
I think this is an awesome patch. Hopefully more people will follow suit. The
first time someone was trying to describe a configuration using 'master' and
'slave' to me, the terminology was really distracting, and I could barely pay
attention without remembering all of the lessons about U.S. history from 8th
grade. I hope this change in terminology will help make software development
more welcoming and accessible to more people.

------
danbruc
That's not any better at least if you are like me from Germany and
unconsciously translate it.

[http://en.wikipedia.org/wiki/F%C3%BChrer](http://en.wikipedia.org/wiki/F%C3%BChrer)

------
asdfologist
Next: let's ban calling electrical power connectors "male" and "female",
because think of the children.

~~~
mercer
A big difference is that there is consensus that slavery is altogether a bad
idea (at least among the people using the term master/slave in the current
context), while there is no such consensus concerning sex.

At first I thought this commit was a joke, then I felt a slight annoyance at
this political correctness, only to finally realize that it's not really such
a bad idea, since we all agree slavery is bad, and it _can_ be quite awkward
to use the terminology around people that don't hear it often.

~~~
goblin89
If we don't want our jargon to sound awkward to laymen, we've got to replace
_a lot_ more words than master and slave.

Industry terms are valuable, though, aren't they? They allow expressing
complex concepts unambiguously, and can be expected to be used consistently
across given field. Personally I think that trying to control jargon and have
it conform ever-changing politics and common language is detrimental to the
industry and hinders knowledge transfer.

I suspect (or hope) it's just trolling on the part of Alex.

(Disclaimer: English is not my native language, I wonder if saw this
differently if it were.)

~~~
mercer
My point wasn't that it's awkward primarily. I agree with you that the whole
point of jargon is for 'insiders' to be able to communicate quickly and
unambiguously.

The point is that it could be sensitive and just isn't a nice term to use day
to day. I've had moments myself where using the master and slave terms felt a
bit... odd. It very well might be that I was the only one feeling a bit
awkward, but that itself is a reason to consider using less loaded terms.

Second, though I agree that industry terms are valuable, I can't think of
_that_ many terms that have connotations similar to slavery (but by all means
jog my memory!). And even if there are, I don't see why we can't incrementally
change our terminology and phase out anachronistic (and/or loaded) ones.

Finally though, I don't find this a big issue. I see it as relatively easy to
slowly change this term, and I like that, but I don't feel like I should
actively argue for changing the terms 'master' and 'slave'. But I do enjoy
discussing it :).

~~~
goblin89
You're right—I can't think of any more terms that have connotations of
comparable negativity (though quite a few plainly odd-sounding ones). I will
blame my indifference to this question on my English non-nativity. :)

The only remaining argument against the change is searchability—hopefully
Google knows or will learn soon that these are interchangeable terms.

~~~
mercer
That's a good point. Google has been doing a decent job at that so far,
though, and I suspect if such a change in terminology were ever to become
mainstream, it will be a gradual process, and generally specific to 'newer'
systems.

------
ben0x539
Good call. "Leader" and "follower" may not be the most precise, descriptive
terms here, but then neither were "master"/"slave" and people got used to
that.

Edit: "Primary"/"replica" seems like an unambiguous improvement.

~~~
rjknight
If you're going to replace a term, it might be a good idea to pick a new one
which _is_ precise and descriptive, given the opportunity to do so.

"Senior" and "junior" might work, or "primary" and "secondary". It might be
important to capture not just the fact that authority resides with one server
and not the other, but that the secondary server is effectively forced to obey
via configuration, to distinguish from clusters whereby leaders may be
elected, and so on.

Using _any_ anthropomorphic terms at all may end up being misleading -
Dijkstra was pretty down on anthropomorphism[1] because he believed that it
was a cause of confusion and error. However, if we're going to use
anthropomorphic terms then I think it's unwise to choose them based on whether
or not those terms, in entirely different circumstances, may have been related
to unfairness and harm. The whole point about why slavery is bad is that it
involves treating a person like a machine, but this clearly implies that
treating machines in such a way is obviously not wrong. Words generally _aren
't_ fnords[2] that cause us to become irrationally upset at merely seeing the
word itself in print.

[1] [http://lambda-the-ultimate.org/node/264](http://lambda-the-
ultimate.org/node/264) [2]
[http://www.urbandictionary.com/define.php?term=fnord](http://www.urbandictionary.com/define.php?term=fnord)

------
akerl_
They've since changed to a combination of primary/replica and master/slave:

[https://github.com/django/django/commit/beec05686ccc3bee8461...](https://github.com/django/django/commit/beec05686ccc3bee8461f9a5a02c607a02352ae1)

~~~
codezero
it looks like primary/replica and master but not slave. Master is used in the
documentation and was probably incorrectly or hastily replaced with leader.

------
herge
Is there a way to remove comments on your projects pull requests?

I'm sure there are places to discuss the politics of this change that are
better than posting meme images to a source code repository.

~~~
akerl_
Not really. There's some debate on how GitHub could best accomplish this, but
so far they've been non-committal about a solution:

[https://github.com/isaacs/github/issues/38](https://github.com/isaacs/github/issues/38)

------
drawkbox
I was thinking parent/child would be a better fit, but upon further thinking
about it, leader/follower is pretty good. It is also a bit more distributed
friendly, in that you can follow a new leader or switch. Where parent/child,
master/slave are more locked. It is a bit silly though to change, in that
human history has had slavery throughout history and to this day. Better to
know about the problems than to overlook them. Also, throughout history,
slavery wasn't always on racial lines, it was usually class based or
wealth/monarchy based.

~~~
zeroflow
It also wouldnt be a good fit.

\- Master / Slave systems are typically locked in. One slave if a database
system can only be a copy of one master and cant just switch freely between
masters.

\- Leader / Follower is coupled to loosely in my opinion. When i hear leader /
follower i'm more thinking of a system where the followers follow the state of
the leader (e.g. if the database goes down, the web frontend is shutting down
/ displaying an static error / ...)

[sarcasm] \- Parent/child could be offensive to people who cannot have kids or
whose kids have died! Have you thought about THEIR feelings aswell? [/sarcasm]

------
lotsofmangos
I always thought the use of master/slave terminology on ide hard drives was
amusing because of the s&m connotations, but then I was a bit of a weird kid.
I guess that is one of the few instances where thinking about s&m is the more
innocent option. Leader/follower is not a bad change, it is perfectly
understandable for people used to the existing terminology and has less
distracting connotations.

~~~
andrey-p
I was actually thinking about the s&m angle just before I read your comment. I
wonder if there's a similar debate raging on in the s&m community?

------
vezzy-fnord
Once again reinforcing the stereotype that Americans are culturally ignorant.

At least they settled on primary/replica, which actually kind of makes sense.

------
fiatmoney
Can someone explain for us non-native-English speakers why it is "racially
charged"?

~~~
asdfologist
It reminds people of African slavery. Silly argument IMO.

~~~
codezero
Choosing not to use the term doesn't mean it reminds people of slavery, it
simply means that they choose not to perpetuate a term with negative
connotations when an alternative term without them suffices.

~~~
q3k
You can find negative connotations for a lot of common-use terms.

------
chippy
> merged 1 commit into django:master

The branch is called 'master'.

~~~
lucasnemeth
But it lacks a Slave, so it does not contains the same connotation.

------
wirrbel
the terms m/s are not even well-describing or giving useful information... its
good that projects think of alernatives

~~~
NhanH
In that aspect, I don't think leader/follower conveys any more information
than the former terms either. It seems like this just opens up a whole lot of
StackOverflow question on "Is there any difference between master/slave
architecture and leader/follower one".

~~~
seandougall
Hence why they used primary/replica instead.

------
lstamour
Primary/Secondary aka Master/Slave already happened with DNS... e.g.
[http://www.zytrax.com/books/dns/ch4/](http://www.zytrax.com/books/dns/ch4/)
and since you can have Master-Master relationships in databases as well as
"equal" relationships where two masters can each be slaves to the other for
redundancy... it's messed up however you look at it.

Personally I prefer Primary & Secondary but I'll use the language the manual
uses for whatever product I'm configuring, since it makes life easier.

------
jiggy2011
Slavery is bad when it is applied to humans, you can't really oppress a Mysql
instance.

~~~
angersock
...though sometimes one wishes one could.

------
emilssolmanis
While we're at it, we should rename "web servers" to "web attendants".

------
cheekyAndFun
How about "underling/overlord" or "dictator/subjugant" or
"enforcer/oppressed"? What about "worker/parasite"?

Mayhap "strongman/peasant" or "oligarch/human rights violation"?

I know, let's all use "duckspeaker/thoughtcriminal"!

~~~
tragicAndCruel

      > dictator/subjugant
    

Actually, I think "exigent/subjugant" would make a better pairing.

------
bostik
Political correctness strikes again - and yes, it's not the first incident of
this exact sort. [1]

[1]:
[http://www.snopes.com/inboxer/outrage/master.asp](http://www.snopes.com/inboxer/outrage/master.asp)

~~~
codezero
In that page, it doesn't describe it as political correctness run amok. Those
cases are reserved for the correct usage of a word that merely resembles some
inappropriate term.

Master/Slave as a relationship originated before computers and refers to
possessing another person as property, so it's negative connotations are
inherent in the phrase and rejecting them is a linguistic choice.

Contrast that to using the phrase retarded in Physics, which originally was
just a term used to describe a time delay, and was ultimately applied to
people who had delayed development, and is now considered inappropriate,
though it is still used in physics from time to time.

~~~
bostik
> _Master /Slave as a relationship originated before computers and refers to
> possessing another person as property_

Yes, and slavery is any form is heinous. But if we're talking about
terminology... master and slave terms in computing have become to describe a
certain kind of logical topography. For me, a term being somehow inappropriate
is not alone enough to warrant finding euphemisms.

There are terms like that all over the place. Your example, "retard" is used
at least in cooking to describe a component inhibiting a desired process. I
wouldn't be surprised if someone found bridge building to be inappropriate
("erection sequence"), and people in corporate security business are doing
pen-testing all the time.

There is something in the need for euphemisms that rubs me the wrong way. It
depletes a language and nibbles its users of variety.

Come to think of it - one of Agatha Christie's novels was renamed _twice_ due
to insensitivities. The current name is, I believe, "And then there were
none".

------
joshu
Trigger warning.

------
dvl
I loved the non-intuitive names.

------
Sir_Cmpwn
This is absurd. I have a hard time beliving that the maintainers of Django
took this seriously.

I hadn't gotten into Django yet, but it looks like I won't bother.

------
lpinca
Silly.

------
angersock
I for one would prefer dom/sub, if we're going to go about rewriting perfectly
good terminology that has been around for near a hundred years, but I don't
think people are _quite_ that open-minded yet (even though it helps remove the
troubling idea of property rights on sentient beings).

Naming is hard!

Master/slave implies that there may be many slaves for one master, that the
master tells the slave exactly what to do, and that slaves will not switch
between masters on a whim.

Leader/follower implies that there is no major difference between the two
classes and that perhaps the "leader" is just a promoted follower ("leader
election", etc.), that the leader is the first to hit a request or command,
and that the followers may spontaneously decide to follow a different leader.

Primary/secondary implies that the roles are equivalent, that requests are
handled by the primaries, that there may be more than one instance of each
role, and that secondaries are only used if a primary cannot deal with its
task.

Note that each use case is equally valid: m/s could be a read/write
architecture for a database or electrical communications bus, l/f for a
distributed simulation system spanning many nodes or a swarm of agents, and
p/s for a redundant storage system.

But, changing nomenclature seemingly for the hell of it is not usually a good
idea.

EDIT: "primary/replica" fits nicely as well.

------
wcummings
Reminds me of this [1]. Funny since the historical meaning of plantation (as
intended by Rodger Williams) has nothing to do w/ slavery.

[1] [http://www.huffingtonpost.com/2010/11/03/rhode-island-
keeps-...](http://www.huffingtonpost.com/2010/11/03/rhode-island-keeps-
planta_n_778085.html)

------
aaron695
So all/most of the thumbs up/thanks/short positive replies are sarcastic?

I really can't tell. I assume so?

