3 min read

Python is set on changing its “master” and “slave” terminology in its documentation and code. This is to conciliate the people claiming the terminology as offensive. A python developer at Red Hat, Victor Stinner, started a discussion titled “avoid master/slave terminology” on Python bug report, last week.

The bug report discusses changing “master” and “slave” in Python documentation to terms such as “parent”, “worker”, or something similar, based on the complaints received “privately”.

“For diversity reasons, it would be nice to try to avoid ‘master’ and ‘slave’ terminology which can be associated to slavery” mentioned Victor Stinner in the bug report.

Not every Python developer who participated in this discussion agreed with Victor Stinner.

One of the developers in the discussion, Larry Hastings, wrote “I’m a little surprised by this.  It’s not like slavery was acceptable when these computer science terms were coined and it’s only comparatively recently that they’ve gone out of fashion. On the other hand, there are some areas in computer software where “master” and “slave” are the exact technical terms (e.g. IDE), and avoiding them would lead to confusion”.

Another Python developer, Terry J. Reedy wrote, “To me, there is nothing wrong with the word ‘master’, as such. I mastered Python to become a master of Python. Purging Python of ‘master’ seems ill-conceived. Like Larry, I object to action based on hidden evidence”.

Python is not the only one who has been under Scrutiny. The Redis community, Django, and Drupal all faced the same issue. Drupal changed the terms “master” and “slave” for “primary” and “replica”. Similarly, Django swapped “master” and “slave” for “leader” and “follower”.

To put an end to this debate about the use of this politically incorrect language, Guido Van Rossum, who resigned as “Benevolent dictator for life” or BDFL in July, but is still active as a core developer, was pulled back in.

Guido ended the discussion by saying, “I’m closing this now. Three out of four of Victor’s PRs have been merged. The fourth one should not be merged because it reflects the underlying terminology of UNIX ptys. There’s a remaining quibble about “pliant children” -> “helpers” but that can be dealt with as a follow-up PR without keeping this discussion open”.

The final commit on this is as follows:

bpo-34605, pty: Avoid master/slave terms

* pty.spawn(): rename master_read parameter to parent_read

* Rename pty.slave_open() to pty.child_open(), but keep an

pty.slave_open alis to pty.child_open for backward compatibility

* os.openpty(), os.forkpty(): rename master_fd/slave_fd

to parent_fd/child_fd

* Rename internal variables:

* Rename master_fd/slave_fd to parent_fd/child_fd

* Rename slave_name to child_name

For more information on the discussion, be sure to check out the official Python bug report.

Read Next

Why Guido van Rossum quit as the Python chief (BDFL)

No new PEPS will be approved for Python in 2018, with BDFL election pending

Python comes third in TIOBE popularity index for the first time

Tech writer at the Packt Hub. Dreamer, book nerd, lover of scented candles, karaoke, and Gilmore Girls.