Here is something that has been controversial in the Open Source community this week.
A pull request to the main cpython
library that proposes to change the master/slave
terms used in the repository.
What are your thoughts?
For further actions, you may consider blocking this person and/or reporting abuse
Hugo van Kemenade -
basheer Mohammed -
Cleo Buenaventura -
Araz Ahmadov -
Top comments (23)
I am firmly in the camp of changing master/slave for a number of reasons:
I'm not someone who always agrees with this side of the issue. For example, I don't think the term "postmortem" to be all that problematic, though some will (I'm always willing to have my mind changed though). I do not see grey area on this issue. I've been sort of campaigning for this change my whole software career so I'm glad it's picking up steam.
Interesting perspective. I really like this line:
It makes sense. A lot of people are getting upset but code is changed all the time. Why not the naming?
Not really applicative to the use-case of the main post, but I generally try to avoid name changes in code, at least when it comes to concepts.
The reason for that is that it has substantial benefits to have a clear and stable terminology to lean on, first and foremorst inside your team but also across teams and between developers and non-developers. Being lax with naming is a substantial contributing factor for misunderstandings, leading to plenty of bugs and loads of wasted time.
The main post if of course not about that, but about whether the use of certain words is socially advisable (even though there is indeed a side-case to be made about using clearer terms).
Primary/replica makes a MILLION times more sense to me. Master/slave would only make sense (and I still wouldn't okay the terms, to be clear) if we were talking about something that is really more MVC, ie, highly delegated, aaaand even then
Personally, I'm of the camp that it's not as "horribly insensitive" as people claim. Master/slave is just a term, it's a historical fact that people recognize. Even though slavery still exists today, the term "master/slave" is making no suggestion to those individual or the morality of slavery. A master/slave relationship is just that, a commonly-recognized relationship.
That being said, @ben is absolutely right that there are better, more accurate, and more descriptive terms that could be used. Primary/replica describes what's going on better than master/slave.
My thought is simple; SJW in OSS is cancer because basically, they try to command "solutions" to non-existent problems.
“If it's not broken, don't fix it.”
But it is broken. So it should be fixed.
There are better terms than master/slave; many listed in this thread. The better terms are clearer from a technical standpoint and we should always strive for that instead of hanging on to something just because it is status quo. It's not like databases have been around forever. The master/slave relationship was chosen as the word pair in a time when throwing around the words master and slave in all white, all male basement labs of universities was never going to cause a ruckus. Those terms were used in a less diverse vacuum without thought to it being a bad choice because they just didn't have to care about it in their small world.
The very fact that you try to equate people fighting for social justice to cancer clearly puts your ideas and ideals out there. So yes, you're right, your thought is simple.
I’m glad to have simple thought and not overthink things to the point to find hate, oppression or whatever everywhere (like those people I call « cancer ») which result in waste of time and energy for everyone.
The very fact is that your « superior thought » forget one crucial parameter: context matter. Here it’s about programming. Neutral field with neutral words chosen to illustrate concepts. Nothing more.
If someone finds master/slave offensive, especially in this context, he is the one who needs to be fixed, not the code.
What about how it's inaccurate? You kinda completely ignored that part
Primary/replica is a much more accurate term than master/slave. To be honest, I don't think master/slave is insensitive either. But primary/replica is much more accurate as to what is really going on.
I totally agree with you from this perspective; chaging a word for a better meaning is great.
I’m just pointing people who commands to change words just because they find it offensive.
I think it's easy to underestimate the amount of effort actually involved in terminology changes, like many people were doing with Redis last week, and I think some other bugbears of technical vocabulary are vastly overblown; the etymologies of blacklist and whitelist, for example, have nothing to do with skin color. In all, most seem to fall into one of two categories: word policing from people who've theorycrafted themselves into knots and wound up inflicting their guilt complexes on the rest of us (seriously, what actual objection is there to "postmortem"?!), or low-effort trolling (we all know what man pages are short for, you're not impressing anybody). But the technical usage of master and slave is like if we'd spent the past half century calling some hardware/software system element the rapist.
Ditto what @ben said.
I think as software developers we're notoriously bad at naming things, and this particular terminology falls firmly under the umbrella of "bad names for things".
The insistence of folks to cleave to (and argue for) these outdated and poorly chosen names is foolish, regardless of the reason.
If there's a better thing to call something, we should call it that.
If the suggestion of making this type of change (with the added reasoning of being sensitive and empathetic towards other folks in your professional community) lights a fire in your belly or upsets you, then there's a bigger, personal, problem at hand.
For some comic relief, I'm reminded of this:
Bullfrog? I'd have called it a Chazwazza!
master
/slave
is too generic and the replacements are usually more informative of the actual architecture.That really depends on the community. Does the community value including diverse folks, from diverse backgrounds? Does the community want to welcome those folks, and allow them to feel at ease? If it does, then the onus is most certainly on the community to change.
Moreover, I'm confused by the need to clarify that the change, if made in relation to it's connotation, would be unreasonable?
Is it not the same, reasonably insignificant change, regardless of the motivation?
The fact that this is being discussed is a really big plus for the community as a whole and is a clear reflection of society at present.
My personal opinion is that terminology should be as easy-to-learn and accessible as possible. Terminology should not be a stumbling block when it comes to learning, if there is a more fitting metaphor out there then let's use it.
Yes, the terminology needs to change. I don’t think anyone disagrees with that.
What I do think gets tiresome is the histrionics that attend these conversations. I find it awfully hard to believe that someone is going to be going about their merry way in TechVille and gasp drops dead or immediately quits their job because of such a “micro-aggression”. The virtue signaling gets really old.
We should change it in part because primary/replica, for example, is a clearer term for what it actually is, as well for cleansing a term that refers to a terrible human institution.
I try to think of words that cannot offend anyone. Haven't found one yet though