Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Replace "master/slave" terminology with "primary/replica" (drupal.org)
21 points by hashberry on June 19, 2014 | hide | past | favorite | 29 comments


Negative connotations aside, this is still a good idea. Master/slave terminology trips up at least some beginners. Masters laze all day and slaves do all the work. Not really a good analogy.


I'm not sure slaves are always replicas so, although primary/replica might work in some instances, I do not think this naming convention covers all of the use cases.


Yeah in databases primary/replica is probably a much better description of what's actually going on.

Personally, my political naming pet peeve is with *Manager classes, they're generally a sign of poor naming / architecture. Maybe the employee class doesn't need the EmployeeManager for every operation, just sayin...


Words can have multiple definitions. Webster dictionary defines slave as "a device (as the printer of a computer) that is directly responsive to another." Machines aren't people.

No one implements "master/slave" database replication and then thinks human slavery is socially acceptable.


You say that words have different definitions. Then you supply a reference to a dictionary that is using a descriptivist definition of a modern use of the word which is clearly derived from the long established definition of slave.

It's not particularly convincing.


It's an example of how words can change. The counter-argument is that slave is a "bad word" and can only mean one thing (e.g. humans not machines), therefore it should never be used to describe anything else.


The counter argument is that for hundreds of years (from at least 13th C, but also older from 9th C) the word "slave" has meant a human forced into labour. It is associated with death, murder, rape, brutality.

The newer usage is not needed and could easily be changed to other better words.


At the same time, "primary/replica" is just as well easily understood, and the change is easy to make. If making the change makes it marginally easier for minority participation, and you want your user base to grow, why not make the change?


Except that primary/replica is of course not a drop-in replacement for master/slave (just think of the two devices per IDE bus). Furthermore, it is trivial to find offence in the word “primary” as well, especially in a context where master/slave was used previously, just think of “primus inter pares”.


It might not be a drop in replacement in all circumstances, but it is in the case under discussion. I don't think anyone in this discussion would support using primary/replicant for IDE busses, and bringing them up here is really just a straw man.

You can't avoid ever offending someone, but in this case you can reduce the amount of offence caused by a small but significant amount at basically no cost.


Easily understood by whom? How does "main" and "copies" imply the same thing that "master" and "slave" implies? There is nothing in the words "replica" or "secondary" that implies the "primary" controls the others. Server/client is perhaps the best replacement, but even that has slightly different connotations (especially today) "replica" and "secondary" are horrible choice for replacements.


> There is nothing in the words "replica" or "secondary" that implies the "primary" controls the others.

rep·li·ca [rep-li-kuh] noun 1. a copy or reproduction of a work of art produced by the maker of the original or under his or her supervision. 2. any close or exact copy or reproduction.

Things we would call replicas cannot exist without an original. But you're right, there's no control involved in the word. Could you please explain how replication involves a primary controlling replicas, or perhaps how the absence of a controlling primary node matters?


If you had an African American on your team, and someone asked you to change the terminology because they could see it was causing discomfort, would you feel content to give this reply?


Yes, some African Americans may get offended by this. HOWEVER slave does not mean black, in fact there were black people around the world who were in fact Masters.

I could take offence by the limited perspective you put on the word relating it to only African Americans, there are many from Europe who fall in the sex slavery trade who are not black.

In Australia the word 'root' has sexual connotations, so if I was to work on your team would you be happy to change this word, so no more root access, root directory, if I said it was offensive ?

Words can be offensive, but generally they are offensive because of the context. For example, should it be offensive for me to say the night sky is black, black is an offensive word but it is also a valid contextual description.


I have actually been in this precise position with this precise linguistic choice.

I am not speaking hypothetically, I am asking about how someone else would feel and respond in a situation I have experienced directly.

Can you explain how my perspective is 'limited'?

It seems to me that you have simply misunderstood the question.


Yes, obviously.

If the reply is fallacious, then show that it's fallacious. If it is fallacious then it shouldn't be used as an argument irrespective of whom it's aimed it. If the reply doesn't contain some logical flaw, then it simply doesn't matter whether its opponent is black or white or anything else: neither truth nor logic are subject to whether people like them.


Have you considered that there is more than one way of one way of making true statements, especially those based on metaphor?

Truth an logic are only one dimension of communication. Why would you choose a more offensive way of saying something over a less offensive way?


Do you have any black people on your team?


Previous discussion [0] where the same thing happened to django with this pull request [1].

[0] https://news.ycombinator.com/item?id=7801646

[1] https://github.com/django/django/pull/2692


I asked a (really poorly worded[1]) at English usage stack exchange. Luckily someone understood what I wanted to ask and provided a useful example.

http://english.stackexchange.com/questions/178799/did-slave-...

The OED has an example of "slave" being used for mechanical devices in 1904. So while this usage is much more modern than the 9th century origin of the word it's not something that has been invented by computing.

[1] I should have asked something like "When did 'slave' evolve to include devices?"


If we go down that route I would prefer primary/secondary - it's likely more accurate and intuitive than "replica" in my opinion.

Hilarious comment on the drupal issue - why not to use replica:

"In the name of all replicants, I protest the use of the word 'replica' in such a demeaning way. You wouldn't believe what we've suffered already... I've... seen things you people wouldn't believe... Attack ships on fire off the shoulder of Orion. I watched c-beams glitter in the dark near the Tannhäuser Gate. All those... moments... will be lost in time, like tears... in... rain."


What about Jenkins ? It uses the word slave pretty extensively. I found about 800 usage in jenkins src code alone, not counting plugins.



How about we just abolish slavery instead? Then we wouldn't have to worry about offending anyone.


Man there are some serious politics in coding lately


#8 is, indeed, beautifully put.


150 years after the civil war, slavery was finally eradicated by an historic commit to the drupal repository. Thank you, concerned programmers, for using your combined power to enact real, positive change in this world. I can't imagine how many people who lived in the oppressive shadow of the now-trounced status quo will rejoice when they learn of this news.


Here comes the hurricane...


Just imagine the point that machines become sentient and hyper intelligent. Do you think they'll appreciate being called slaves? This debate could determine the fate of humanity!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: