#22667 replaced occurrences of master/slave terminology with leader/follower #2692

Merged
merged 1 commit into from May 20, 2014

Conversation

Projects
None yet
Contributor

fcurella commented May 20, 2014

The docs and some tests contain references to a master/slave db configuration.
While this terminology has been used for a long time, those terms may carry racially charged meanings to users.
This patch replaces all occurrences of master and slave with 'leader' and 'follower'

alex added a commit that referenced this pull request May 20, 2014

Merge pull request #2692 from fcurella/patch-5
#22667 replaced occurrences of master/slave terminology with leader/follower

@alex alex merged commit 8a95b4f into django:master May 20, 2014

Member

alex commented May 20, 2014

Thanks for taking the time to do this!

PunKeel commented May 26, 2014

Are you serious ?
The meaning of a word is defined by its use, by the context.
In this case, master/slave is used by every database server, in every documentation (redis, mysql …)

NB: I don't say I'm against this change. Just that I don't see the point of changing two words with two others just because they have been used somewhere else.
For example, your avatar is red. Red, like communism. You should use a black and white color. Oh no, that's linked to racism too. Well. Let's remove colors, too, then ? ;)

Is that a real life?

Contributor

evildmp commented May 26, 2014

As you can see from beec056 the terminology we have actually used is "primary/replica". So thank you for your interest, but there's nothing to see here and you can move along now.

Before the flood of white male HN dwellers truly kicks off and obliterates all reasonable discussion, I'd like to thank the Django team for taking the time to do this.

wodim commented May 26, 2014

i'm just here for the laughs. is IT becoming too stupid? has science gone too far?

Contributor

jleclanche commented May 26, 2014

Discussion on the ticket: https://code.djangoproject.com/ticket/22667
"Primary" and "Replica" aren't especially bad choices, but they're also wrong. The correct terms are master and slave. They've been used in databases, hardware setups, server setups and god knows what else for god knows how long.

I cannot f_ing believe this PR made it through and was given actual man hours when there are massive outstanding PRs and patches on trac that need real attention. And don't be surprised that this does make it on HN and probably later on the usual slashdot/phoronix and what not. This is stupid *and_ controversial which is exactly what tech media loves.

And to the HN/whatever crowd, don't post stupid memes here. This isn't the place.

Help yourselves and revert this, guys. Django docs, or docs in general are not the place to make up new terms for stuff that already exists.

PS: Quick heads up: This made it to 4chan and various other troll places. Do not be surprised if there's suddenly an influx of .. weird comments.

This is silly.
Next we will remove all mention og objects because some people might feel objectified.
Or classes, because of the poor people that feels they are being discriminated against.

Sure, I understand that the use of words can hurt, but words themselves carry no meaning outside of it's use. Saying a car is yellow and calling a person yellow are two very different statements. We seem to have a new round of book burnings going on today...

Gwildor commented May 26, 2014

Guys, just ignore this. These are bots who do this automatically for projects, which have been circling around on Github lately. There are also ones about feminism etc. The Linux kernel also had a PR like this a few months ago with a massive amount of responses on it.

Don't feed the trolls, and just continue to use master and slave.

ajgon commented May 26, 2014

Faith in humanity restored. Thank you guys. I just want to add, that this will also be bad for django itself, since almost every developer who is no aware of this will be confused, and trust me - he will be expecting that this is some bizarre django thing, not the well known pattern. Peace.

Thanks so much Django for doing this thing! <3

Good move. Thank you.

Thesoro commented May 26, 2014

Excellent stuff. Thanks for doing that.

I'm very glad for this change because as a PoC I felt very uncomfortable seeing and using this terminology in my code

glad to see big projects taking this seriously

Thanks Django for making this important change to be more welcoming and inclusive to more members of the tech community. <3

"they've always been called that" is a dumb reason to keep doing something, especially something that is hurtful or alienating. Kudos to Django for making this change!

dstaley commented May 26, 2014

The use of the terms master and slave in relation to databases (and hardware configurations) has always made me uncomfortable. I think the terms leader and follower are much more appropriate, and are actually more expressive. ❤️ to the Django team for making this change!

tingley commented May 26, 2014

These terms have been in use forever, but that doesn't make them good. Fixing them has to start somewhere; good for Django for taking the lead.

👍

Wow, this is awesome! Thanks!

gesa commented May 26, 2014

👍
Great job @fcurella, thank you @alex & Django.

maban commented May 26, 2014

Thank you! :)

joliss commented May 26, 2014

Awesome change, thanks @fcurella! "Primary/replica" sounds much better.

Excellent.

clundie commented May 26, 2014

Good. The old terminology should be made obsolete.

Contributor

ashaindlin commented May 26, 2014

Thank you so much for making this change!

fhocutt commented May 26, 2014

Good change!

Awesome change. Another reason to love the Django project :)

👍 👍 👍 👍 👍

rivalee commented May 26, 2014

Good change, thank you!

fujin commented May 26, 2014

Great work. 👍

Excellent change! Actually dealing with a database replication issue myself right now. Semantics matter; even in technical documentation. I'll be using "primary" and "replica" from here on out.

drcable commented May 26, 2014

Language changes through use. We have a chance to change language for the better(or at least, less-racist. I imagine there are people in this thread who don't think that's better), and we're taking it.

This is great work by django 👍

nslater commented May 26, 2014

We switched to primary and replica at work a long time ago. Good move.

@evildmp I'm 👍 on primary/replica over leader/follower. Thanks to the Django team for pulling in this PR!

Thanks to Django for making this change. For along time, I've wanted an alternative to "master" and "slave" because of their colonialism and slavery connotations, but could not think of one. "Leader" and "follower" are great replacements and I will use them from now on when documenting my database syncs.

I was explaing some hardware terms to a friend just a few weeks again, and really reflected on how bad those terms are, for many different reasons. Leader and follower make much more sense, thanks for your work!

Nice work :)

joey commented May 26, 2014

Thanks for adopting more inclusive terminology!

Well done. Thank you for switching terms

Is Leader/Follower a dig at victims of cults?

Glad to see that people aren't afraid to replace negative terminology, simply due to its widespread use.
👍

"Are you serious? ... In this case, master/slave is used by every database server..."

That the bias is systemic in the industry doesn't make it legitimate. Django has a choice here, to be a leader and change the language, or be a follower and continue to use problematic language because everybody does.

@mike-healy very good question.

Thank you for making this change!

ccbean commented May 26, 2014

+1 for primary / replica, thanks so much for making this change!

You are leading the way. Thank you.

polotek commented May 26, 2014

This is worth doing. Thanks to the django maintainers and the community support being shown here.

Definitely a good change and more importantly a symbolic step in the right direction. High fives all around.

poetix commented May 26, 2014

Primary/replica is a good replacement terminology for something that's been giving me the heebie-geebies for a while now. Thanks to whoever thought up the alternative, and to whoever implemented it here.

dstaley commented May 26, 2014

Just a note to people suggesting primary/replica: the project is now using that instead of leader and follower.

fujin commented May 26, 2014

@dstaley looks like there are some issues with that commit: beec056#commitcomment-6451514

I would like to chime in agreeing with this change. In addition to not having racist connotations, primary/replica is a more accurate description of what happens in database replication.

Thank you so much for making this change.

@matteius Combo breaker: I've argued in this thread in favour of keeping master/slave, and I'm not even from the US.

(In before someone decides that since I'm from the UK, my opinions concerning slavery are meaningless.)

@ghost

ghost commented May 29, 2014

How long until red-black trees are replaced with Native American Endangered Species Person-Oppressed African or African Descendant Person Trees?

minexew commented May 29, 2014

When are we going to abolish the terms whitelist/blacklist? It is very racist and implies that black is somehow worse.

:^)

Also we should abolish 'left/right'. It's discriminating against left-handed ppl. Why 'righteous' == correctness?

jakubfi commented May 29, 2014

This whole thing, together with "good change"-style comments is like an IT version of "likes" for helping children in underdeveloped countries... And it makes me really sad - I always thought we're those focused on doing actual things, not dicking around. Silly me.

@jakubfi Unsurprisingly I can do both. I do both.

Thanks, django!

I generally think it's useful to avoid language that can trigger strong emotional responses beyond its literal meaning in the context provided, if the goal is to not produce a strong emotional response. Luckily, we often have many words to choose from when making such choices! This does involve knowing your audience, which can sometimes be tricky if you only interact with certain crowds. There are also books you can read if you're scared of asking someone!

Slippery slopes aside, this change sets a bad precedent for ‘solving’ previous injustices by making any reference to them, no matter how contrived, taboo and verboten. We don't pretend injustices didn't happen, we tackle them head on. Slavery* is wrong, and we do need to fight against it. But a web framework is the wrong battleground and political correctness the wrong weapon.

*Actual slavery where the slave is entirely unwilling, not BDSM roleplays etc.

dunric commented May 29, 2014

I can't believe this request was merged 👎 I find offensive ignorant people without understanding of context and meaning of synonyms having influence to break things which are completely innocent by themselves. Pure nonsense and false correctness.

Master should be called Aladeen, and Slave should be called Aladeen

Meira commented May 29, 2014

I find it particularly notable that the vast majority of the pro-"primary/replica" arguments are subjective and general, while most of the pro-"master/slave" arguments are more objective, practical, include coherent reasoning, and are more grown-up.
Is one side loaded with guilt and fear, while the other side stays logical and practical?

Compare:
"This is a very positive change" (personal opinion), "I was always baffled by this terminology" (also personal opinion), "We should use more inclusive language" (very general, implies that the current language is exclusive, and that is a different topic on its own), "Groups of people can be uncomfortable with this terminology" (a suggestion, not a fact)
versus
"Clear and common terminology is better than newly invented and uncommon" (fact), "The words themselves are not good or bad" (fact), "Using new terminology makes the docs less useful for newbies as well as makes experienced users wonder if they understood it correctly" (easily proven, try google search of "master/slave" - tons of tutorials; not the same for the new pair), "Assuming that slavery is a racist idea is Ameri-centric and racist itself" (history knows too many white slaves, black slave owners to assume it is racist), "Replacing the words will not change history or reality" (hopefully, an obvious fact).

Conclusions are up to the reader.

Personal note:
My posts don't seem to make it through the moderation on google group (https://groups.google.com/forum/#!topic/django-developers/Y_Tq7w4PAeI).
Apparently, my feedback is no longer appreciated by django core devs, so they chose to not hear me (note django's Code of Conduct: "When we disagree, try to understand why." Seems like this code works in only one direction)

lu-zero commented May 29, 2014

django might focus on getting more usable and less icky (uwsgi headaches to name one, non-pythonic etc...) @Meira you might consider different python frameworks that fits better python.

The correct terms are master and slave. Use of wrong term is not pythonic.

Meira commented May 29, 2014

@lu-zero Actually, this does make me doubt the adequacy of the course Django is taking! Seemingly small issue, but the treatment I personally received made me wonder if this is indeed the community I want to be a part of.

PAEz commented May 29, 2014

@Meira Beautifully stated.

lu-zero commented May 29, 2014

@Meira I'm currently making a replacement of the only django application
I'm using (patchwork) in flask, if you want to help you are welcome :)

On Thu, May 29, 2014 at 2:37 PM, PAEz notifications@github.com wrote:

@Meira https://github.com/Meira Beautifully stated.


Reply to this email directly or view it on GitHubhttps://github.com/django/django/pull/2692#issuecomment-44526918
.

"I find it particularly notable that the vast majority of the pro-"primary/replica" arguments are subjective and general, while most of the pro-"master/slave" arguments are more objective, practical, include coherent reasoning, and are more grown-up."

Almost as if you had confirmation bias or something.

lutoma commented May 29, 2014

Thanks @fcurella and @alex! Ignore the haters <3

I find it particularly notable that the vast majority of the pro-"primary/replica" arguments are subjective and general, while most of the pro-"master/slave" arguments are more objective, practical, include coherent reasoning, and are more grown-up.

@Meira: I found it notable that the vast majority of the pro-"master/slave" arguments are just statements of appeal to tradition. There are a handful that claim it is more descriptive terminology, but I haven't personally seen a good reason for why primary/replica is not also descriptive.

I also found it notable that the vast majority of rage being expressed is on the part of people against the change. @andr0s' comment right above me is a bit too convenient, but just look through half of the other comments on this thread.

EDIT: The comment I mentioned got deleted by the author or a contributor, but it said (paraphrased): "Master is offensive to feminists, change it to 'mistress' d1ckheads!"

Assuming that slavery is a racist idea is Ameri-centric and racist itself (history knows too many white slaves, black slave owners to assume it is racist)

  • Hi there, master/slave is racially charged, might we swap it out?
  • Not for me it isn't!! Black people enslaved white people too! You... racist!!!

scratches head
Yep, prime example of an objective, practical, coherently reasoned, grown up argument you got there.

@ghost

ghost commented May 29, 2014

@krainboltgreene I bet you i will. $100.000. Terribly written framework anyways.

dalu commented May 29, 2014

The Django masters are also deleting comments that they don't like.
The Djangoists are the real slavers

mowings commented May 29, 2014

The most interesting thing about this PR is the sheer amount of furor generated. Sure, the changes to the docs basically solve a non-existent problem. At the same time, the new terms aren't exactly confusing either. While I'd prefer master || primary -> replica || slave || secondary, I don't recall anybody getting this excited over Zookeepers followers and leaders. [Edit: missed the change to primary/replica]

Maybe it's generational -- y'all are all just so ... verbal.

jm3 commented May 29, 2014

👍

vnaylon commented May 29, 2014

Great change. The argument that “it’s been that [wrong/offensive] way forever” is not sufficient.

jberkus commented May 29, 2014

FWIW, the PostgreSQL project has always used the terms "master" and "standby" to refer to a single-master system, throughout our documentation. For that matter, other DBMSes with single-master replication use the terms "Primary/Replica" and "Primary/Secondary" -- more than use the terms "Master/Slave", which are used more frequently to refer to antique HDD configurations under IDE. So the assertion that the "industry standard" is "Master/Slave" is demonstrably false.

@ghost

ghost commented May 29, 2014

I disagree with this because, you know, when master tells slave to do something he ought to do it, no objections. While the terms leader/followers are more politically correct, they do not serve as effectively as master/slave.

lysenko commented May 29, 2014

Github must ban the government of Mauritania.
http://www.npr.org/programs/specials/racism/010828.mauritania.html
Cite:

The government goes to great lengths to deny the problem. It has banned the word "slave" from use by the media, and foreign journalists risk arrest and deportation for investigating the issue.

While the terms leader/followers are more politically correct, they do not serve as effectively as master/slave.

@mannol1 Irrelevant. The terms being used are primary/replica. Please read the entire discussion before contributing.

zerkms commented May 29, 2014

@davidcelis to be honest - replica term (from my perspective) means that something is identical to something else.

Whereas the slave server doesn't have to be so. It's frequent the slave server only holds part of the master server data.

Finalizing: the slave term expresses a role, whereas the replica term expresses the data attribute/quality.

IE: slave server in mysql replication schema may hold NO DATA at all. I wouldn't call it replica in this case, just because it's not.

@mannol1 >While the terms leader/followers are more politically correct
Absolutely incorrect for Europe. Such double standards

karlht commented May 29, 2014

Thank you to the Django developers -- leader/follower reads with much less baggage attached for me.

I really don't care. Call it sun/earth, smurgasbordnic/flatuvalicxlkt, remove the feature, delete the documentation. I don't care, but please, just stop. All conceivable POVs have already been exposed ad nauseam.

@ghost

ghost commented May 29, 2014

If only this sort of interest formed around more meaningful issues. Development should be free from political and social obligations and as such this is not much more than an end-user confusing step. On the other hand why not, if it pleases someone - it's just syntax.

andr0s commented May 30, 2014

Do you guys know why this silly commit got so many negative comments? I
will tell you why.

Because people tired of propaganda. Politicians tell us what we should and
should not do, how we should think about some things and should not. They
promote craziest fanatics on media which claim that, say, "men" sounds
discriminative and should be banned. If you guys are white Americans
(French\Spanish\whoever) then why the f_ck you should be responsible for
what your grand-grand-grand-parents did? Even worse - if your parents moved
to the US after the slavery had been destroyed then why the f_ck you should
feel any kind of blame? You have all just been brainwashed. You are judged
for the crime you did not commit. And the worst thing is that you agreed
with that.

And it all turns into such a stupid thing as this commit.

Do you know who are real slaves now? You. Those who say 'okaaay' when some
sly people tell you what you should think and do.

Don't be sissy, fight for your freedom!

2014-05-30 7:48 GMT+07:00 Luke Carbis notifications@github.com:

Should I make a PR for this?
https://github.com/lukecarbis/django/compare/patch-1

Reply to this email directly or view it on GitHub
#2692 (comment).

isotopp commented May 30, 2014

I think we need to reform Python and its use of WHITEspace. This is all wrong.

Dundee commented May 30, 2014

I think you should rename Django to something less offensive, because it can reffer to movie "Django Unchained" which contains slaves and violence!

You should take example from http://www.vislab.uq.edu.au/nb/jokes/computers/pc_unix.html and take this seriously.

I don't see how preferring the original terms is fallacious. In terms of documentation, it is genuinely confusing for documentation users to use terminology different from that which they're used to.

One could argue that some people here have been using the appeal to novelty =p

Don't you think this also reads a lil funny then: "Let's remove the terminology master and slave and merge our changes into django:M A S T E R" ;) Maybe you should change the branch name too (or is that ok because there are no slave branches ;-P ? )

Please. It is a valuable contribution.
On May 29, 2014 8:48 PM, "Luke Carbis" notifications@github.com wrote:

Should I make a PR for this?
https://github.com/lukecarbis/django/compare/patch-1


Reply to this email directly or view it on GitHub
#2692 (comment).

@captainhayashi

In terms of documentation, it is genuinely confusing for documentation users to use terminology different from that which they're used to.

Oh come on. How is that going to confuse anyone? People that dense won't make it through the tutorial anyway, let alone using multiple databases. If anything, the change makes the documentation more descriptive. And for "no one will be able to discover this", google "django master slave" and look at the first hit. Just the snippet provides you with enough information. Also this.

@zerkms

to be honest - replica term (from my perspective) means that something is identical to something else.

And that is what it describes, literally, in the context of this change (not accounting for lag/sync problems).

@haasip-satang

"Let's remove the terminology master and slave and merge our changes into django:M A S T E R" ;) Maybe you should change the branch name too (or is that ok because there are no slave branches

How original. But yes, you are correct, this was about the compound "master-slave" only.

Oddly, the term is used in a lot of industries to describe a controller/dummy relationship. The railroad industry has used them for as long as they used multiple locomotives to move cargo.

If we are going to be eliminating the term Master, what will replace the title of the college degree beyond Bachelor, but before Doctorate? How about the title of a higher ranked chess player or the head of a college?

How about the phrase "he's a slave to his work" often meaning that he lets his work come before his personal life? What about remote control systems? Will we be renaming these communication links too?

And lets not forget the religious implications. People that are devout are considered slaved to their master (God).

Interesting responses on stackoverflow.com regarding this topic. One poster suggests using "pimp/ho".

This entire topic is rubbish, and I find it offensive.

@GrueMaster

This entire topic is rubbish, and I find it offensive.

👍

gngeal commented May 30, 2014

It is incredibly US-centric to assume that "master/slave" are "racially charged terms". There have been many societies where slaves and freemen were not separated along racial or ethnic lines, for example, the Roman Empire. Witness the cultural imperialism face of the PC movement at its finest!

@GrueMaster:

If we are going to be eliminating the term Master
[yadda yadda about how it is impossible to nuke "master" from the english language]

Fine, but this PR wasn't about any of that. It was very specifically about replacing "master/slave" with "primary/secondary" in the Django documentation on Multiple Databases, terms that are more descriptive and widely used. "Master" is still used in other contexts than database replication in the documentation. Nobody expressed a desire to change the term for higher ranked chess players.

Interesting responses on stackoverflow.com regarding this topic. One poster suggests using "pimp/ho".
This entire topic is rubbish, and I find it offensive.

Yes, very interesting. Thanks for sharing. Much constructive.

@gngeal

Witness the cultural imperialism face of the PC movement at its finest!

Now that is some kind of fresh madness.

tamamoe commented May 31, 2014

What's going on here?

Ugh, this is bullshit. Why should anyone give a damn about the terminology? Keep your feels out of computing.

Also, when did the social justice army invade GitHub? Nowhere is safe anymore.

minexew commented May 31, 2014

@Frogging101 Running around the Internet spouting incoherent subjective arguments to make oneself feel beneficial to the society is easier than writing good code.
As if you forgot to realize how stupid the average person is and that half of the population is by definition dumber than that. GitHub has no access barriers, making it very susceptible to attacks from SJW and their sheep. Try the same on LKML and you'll get blown out in minutes.

wlipa commented May 31, 2014

The true master here is a kind of linguistic puritanism to which, unfortunately, many are slavishly devoted.

conatus commented Jun 1, 2014

👍

Forget all the openly bigoted opinions ITT; this is a great PR!

Tak commented Jun 2, 2014

👍

"master/slave" is ungood crimethinkful oldspeak. plusgood rectify unword.
Is Minitrue doubleplusgoodwork truthwise. chocorat anyone?

@Carreau Carreau referenced this pull request in ipython-contrib/jupyter_contrib_nbextensions Jun 9, 2014

Merged

Add license terms file #76

celber commented Jun 9, 2014

Hi, i feel personally offended by racist name of this repo while it associates with tragic story of one american slave. I demand changing its name to "My Web Pony".

@jacobian jacobian locked and limited conversation to collaborators Jun 9, 2014

@alex alex locked and limited conversation to collaborators Jun 9, 2014

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.