This story is over 5 years old.


‘Master/Slave’ Terminology Was Removed from Python Programming Language

The terminology has been a point of contention in the tech community for nearly two decades and now it was just removed from one of the most popular programming languages in the world.
Image: Shutterstock

If you’re not immersed in the world of software or electronics engineering, you might find yourself surprised at how often the terms “master” and “slave” are thrown around in documentation. When discussing technology, these terms are used to refer to components that have total control over other components or are controlled by a component, respectively. Given that slavery was institutionalized in the United States for hundreds of years, however, the casual use of these terms by techies has understandably become a contentious issue in recent years.


The issue escalated last week when a programmer issued a change request that advocated for avoiding this terminology in Python, which is consistently ranked as one of the top three programming languages in the world.

“For diversity reasons, it would be nice to try to avoid ‘master’ and ‘slave’ terminology, which can be associated with slavery,” Victor Stinner, a developer with the open source software company Red Hat, wrote. Stinner cited multiple private complaints in the thread as the reason for requesting the change.

Unsurprisingly, the change request resulted in a heated debate among Python developers about the necessity for the change. Many developers agreeing that the word “slave” ought to be removed, but that “master” wasn’t an offensive term. Others argued that the terminology accurately describes the relationship between electronic components and should be taken in context. One developer even invoked BDSM culture, saying “‘master/slave’ can have *positive* connotations. You want to support diversity, then why are you discriminating against that subculture?”

Read More: Open Source Devs Reverse Decision to Block ICE Contractors From Their Software

In the end, most of Stinner’s suggested terminology changes were adopted. Thus, “slaves” was changed to “workers” or “helpers” and “master process” to “parent process.”

This isn’t the first time the use of “master” and “slave” has been contested within the software community. In fact, the issue goes back to at least 2003, when an employee of the Los Angeles County Probation Department filed a discrimination complaint to the county Affirmative Action office after seeing the words “master” and “slave” on a videotape machine. The complaint resulted in the county issuing a request that any electronics manufacturer doing business with the county remove the terms from its products.

More recently, several programming languages have also opted to replace “master” and “slave” terminology in their code. This began with Drupal in 2014, which opted to use “primary/replica” instead. Django followed suit that same year with “leader/follower” and last year the Redis community tore itself apart over the issue. According to a blog post last week by an Italian Redis developer who had resisted the change to terminology, the issue is still contentious a year later. Still, the Redis developer argued against the change as a superficial fix that points to deeper systemic issues.

“I believe that political correctness has a puritan root,” the Redis developer, who goes by Antirez, wrote. “As such it focuses on formalities, but actually it has a real root of prejudice against others. So let’s call it master-slave, and instead make a call for the US, where a sizeable black population is very poor, to have free healthcare, to have cops that are less biased against non-white people, to stop the death penalty. This really makes a difference.”