How do you feel about changing naming terms?

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?

Did you find this post useful? Show some love!
DISCUSSION (24)

I am firmly in the camp of changing master/slave for a number of reasons:

  • We change the names of things in code all the time. And we make much tougher technical challenges than changing some terminology consistently.
  • Master/slave is an incomprehensible technical metaphor. It makes zero sense. Primary/replica or leader/follower and some others all make way more sense as to what's actually going on.
  • It is horribly insensitive.
  • It's presence as a term brings confusion, as there will always be a lot of people who just don't want to use this term. Nobody is going to be strongly against using primary/replica beside the people protesting the changing of this in the first place. Big corporations are probably not going to use terminology like slave going forward, and neither are many individuals. Holding onto this is impractical.

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:

We change the names of things in code all the time. And we make much tougher technical challenges than changing some terminology consistently.

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.

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.

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 agree with the change towards more precise/clear terms, but the arguments of sensitivity are, from my pov, plain dumb.

It's not because something may have a bad connotation than an entire "community" should change.

Else, the egyptians should change their goddess' name, ISIS, to something else, and that's just one absurd example.

It's not because something may have a bad connotation than an entire "community" should change.

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?

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!
Bullfrog? I'd have called it a Chazwazza

  1. This change makes sense and introduces more clarity. master/slave is too generic and the replacements are usually more informative of the actual architecture.
  2. But saying it's controversial is ridiculous. It has no bearing on real life and can not sanely be referred to as a metaphor.
  3. If you are irrationally obsessed with insisting not only that it's a metaphor but even that it informs our thinking on other subjects, just tell yourself it's a reference to BDSM and go on with your day.

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.

Based on this problem... Then will remove these word from everything, already that attack someone...

I have seen this words in your meaning based on its environment... Technology.

I try to think of words that cannot offend anyone. Haven't found one yet though

I was trying to stop a process the other day and found out that Linux uses a very insensitively-named kill command. Oh, I was reading the man page for that command when I realized why is it man and not woman anyway? Can we find alternatives to blacklist and whitespace while we're at it?

This is ridiculous.

But nobody is doing any of that? At all? Why on earth are you using the slippery slope argument in a case where THERE IS NO SLOPE? master/slave has connotations that aren't in the same universe as any of these terms.

I don't understand where all this passion comes from. We all pass by pull requests every day that probably contain some questionable code, but whatever, it gets the job done, and we're busy, so we let it pass...but we want to die on the hill of protecting master/slave nomenclature because we are SO butthurt that there are some people that find the terms offensive?

Really?

Idk if slavery is in a different universe than murder, gender equality, and racial segregation, but hey you might be right.

And that's no passion on my part. Just annoyance that we enable these kind of behaviour.

Not to mention that a Linux process can become an orphan!

Classic DEV Post from Aug 29

How would you define high quality code?

What would be the main attributes of good code? ...

Lewis Menelaws
My name is Lewis Menelaws. I am a developer and entrepreneur located in Sarnia, Ontario focusing on creating great things for the web. Currently I am Lead Developer and Co-Founder of TMRRWinc.

dev.to is where software developers stay in the loop and avoid career stagnation.

Sign up (for free)