Master/Slave: Addressing Problematic Coding Terms in the Open-Source Community

Master/Slave: Addressing Problematic Coding Terms in the Open-Source Community thumbnail

The coding world is full of weird terms. You have back ends, tags, frameworks, and plenty more. However, while some words and phrases might sound odd until you get used to them, they usually aren’t offensive.

There are some rare exceptions, however, such as the frequent use of master and slave. It goes almost without saying that those are two potentially problematic words, due to their historical connotations. However, they’re still widely used in developer circles and multiple coding languages. In fact, their use is so built-in that most people have never stopped to think about the terms.

Today, we’re going to talk more about these two problematic coding terms. We’ll discuss the controversy around their use, introduce the debate over the possibility of replacing them, and explain what some open-source teams are doing to tackle the issue. Let’s talk terminology!

Get Content Delivered Straight to Your Inbox

Subscribe to our blog and receive great content just like this delivered straight to your inbox.

The Existence of Problematic Coding Terms in Open-Source Coding

As we mentioned earlier, there’s a lot of controversy regarding the use of the terms master and slave within the open-source community. Usually, these terms refer to a communications model where one element has full control over a second one.

For example, you can have master and slave databases, with the master being primary.

If you’re not a part of the tech community, this might seem a little odd. We all know the meaning of both words, as well as their historical context. However, these terms have been around for a while, and most people who use them never question it or give them much thought at all.

At the same time, for a while now some people have pointed out that their use could be problematic. We can find references as far back as 2004 to the controversy around this issue. During that year, the Global Language Monitor Initiative selected the master/slave coupling as the most egregious example of politically-incorrect terminology. Ever since then, there’s been a lot of discussion within open-source projects about the possibility of replacing both words.much time in developer circles. However, a lot of interesting arguments have been made about it

To be honest, this whole affair might sound like it’s blown out of proportion if you don’t spend over the past decade, which is worth considering.

Why There’s a Controversy About the Terms Master and Slave

When the terms master and slave are used in the open-source community, they’re not referring to people. If that were the case, we could pack up this discussion quickly, since just about everyone would agree we’d need to come up with less offensive terminology.

Instead, those terms are used to refer to elements such as databases, drives, and more. That brings us to the reasons some people are against replacing the terms master and slave, which we can sum up in a couple of points:

  • Both terms have been around for a while, so it doesn’t make any sense to replace them.
  • In the tech world, the words aren’t used in an offensive context.

For some people, master and slave are just words, and the idea that we should discourage their use within coding seems like a waste of time. From a practical standpoint, it’s hard to argue against those points. However, if we’re being practical, then it’s also worth pointing out that replacing those terms wouldn’t affect projects in terms of functionality.

Moreover, the argument that we should stick to using the same words because we’ve always done so isn’t particularly persuasive. As a society, it’s become normal for us to discourage the use of offensive terminology, even if that change takes time. It would be a simple matter to choose replacement words that are far less charged and start using them instead.

That brings us to the core of the debate, which is whether a word by itself can be offensive regardless of context. Some people would argue that changing the terms master and slave sets a bad precedent since there will always be words that others find offensive. Slippery slope debates aside, though, it’s hard to argue against the fact that these two terms, in particular, have clearly negative connotations.

All in all, it’s important to consider that while these words might not affect you personally, they can have a lot of impact on other people and the way they think. The open-source community is built around collaboration, so if we can improve the environment and make it more friendly to all by replacing a couple of words, then it might make sense to do so.

How Open-Source Projects Are Discouraging the Use of Problematic Coding Terms

The debate around the terms master and slave has been around for so long that several companies have already taken steps to address it. IBM and Microsoft, for example, use the words primary and replica when referring to databases within their documentation.

As for open-source projects, Python, Drupal, and Django have already excised the terms from their documentation entirely. Python went the same route as Microsoft and IBM, using primary and replica. Django, on the other hand, opted to implement the terms leader and follower.

Those are just the most high-profile examples we could find. There are also a lot of smaller projects that have taken steps to address the controversy. What’s more, the fact that several big players in the tech world agree that the use of these terms is worth taking seriously sends a clear signal that others will likely follow suit.

In the end, whether to replace the terms master and slave is a personal decision for each developer. If you’re part of an open-source project, consensus can be harder to reach. However, it may be for the best that we move towards replacing these terms within developer circles. After all, the open-source ethos is one of accessibility for all, which is hard to achieve when commonly-used terms can turn away a segment of the potential community.

Do You Think Problematic Coding Terms Should Be Changed?

The terms master and slave are common when it comes to computing. For many people, the words don’t carry negative connotations, since they have very specific meanings within the IT world. However, it’s impossible to deny their historical weight. With that in mind, there will always be people who find the casual use of both terms within coding to be problematic.

Although changing the terms we use in coding can seem inconvenient, it’s both possible and relatively simple. The fact that several well-known projects such as Python and Drupal are taking action to eliminate the use of master and slave is already a big step. Getting rid of those terms is not only a good PR move, but it also makes the community more friendly to those who might find them personally offensive.

Do you think it makes sense to replace problematic coding terms in the language of software development? Share your thoughts with us on Facebook or Twitter.

Photo of Jason Cosper
About the Author:

Jason is DreamHost’s WordPress Product Advocate, based out of Bakersfield, CA. He is currently working on making our DreamPress product even better. In his free time, he likes to curl up on the couch and watch scary movies with his wife Sarah and three very small dogs. Follow him on Twitter.