Science & Tech Editor
With just one line, “I'm closing this now,” Guido van Rossum, creator of the programming language Python, strolled out of retirement on 11 September to end a heated argument about the use of the terms “master” and “slave” in the language. Used since the beginning of computer science, these terms represent leader-follower type relationships, dictating which piece of hardware or software controls another. It’s not the first time these terms have come under fire either, in 2004 a LA county worker filed a discrimination complaint after seeing devices labelled as slaves and the county forced all manufacturers, suppliers and contractors to review and relabel all their equipment.
More recently, in the years since post-millenials stopping wetting themselves, IBM, Microsoft and Amazon have all stripped their products of offensive terminology and all use the terms “primary” and “replica” in their database technology without issue. What is special about Python is that it’s an open-source technology - anyone can propose and make changes to the language and, if the community agrees, have those changes written in. This allows such occasionally hilarious discussions like the debate about master/slave, leading to punny gems from developers like “I'm afraid that this can be the start of Python becoming PCython”.
The discussion (https://bugs.python.org/issue34605) was started by Victor Stinner trying to replace the few uses of slave (and one pretty horrendous use of “pliant slave”) in the language with uses of “child”, “helper”, and other unloaded terms. These proposed changes were met in equal measure with cruel jest and absurd “rational” argument. One developer, Larry Hastings, presents a truly groundbreaking example, “A quick grep finds 555 occurrences of the word "kill" in CPython master. Everybody knows killing is bad and using the term might upset certain people.” rendering the entire audience speechless with the excellently veiled dump he took on the well meaning Stinner. Snooty sarcasm aside, Larry, you can clearly see the difference between “killing” offending literally everyone except psychopaths (apologies to psychopaths) and “slave” offending a very particular demographic. I’d call you mental, Larry, but that would be saneist.
In saying that, could Sam Parker, a commenter on a linked blog post by Antirez (antirez.com/news/122) be on to something when he writes “People who try to pressure you into changing the terminology are often white people who think they represent me or other blacks”? Has developer Gabriel got a point when he declares “To see how far could this go, look at this video” and links the incredibly awful Modern Educayshun? (That’s a short film describing a dystopian classroom where test scores are averaged so everyone gets the same, and then “privilege points” divvied out to the women, minorities and disabled in the class, while the male, cisgender student is given negative points by the way, I’m not even joking). Is changing terms like “insane”, “lame” or “silly” in source code going too far? Perhaps. But who does it hurt, Larry?
One developer, Steven D'Aprano, spectacularly misses the point, declaring “In fact, in the BDSM subcultures, "master/slave" can have *positive* connotations. You want to support diversity, then why are you discriminating against that subculture?” When a programming language is created that exclusively uses sexual metaphors as its terms, I will use only that, but until then, Steven, keep your inane comments to yourself.
Serious time: all languages change, programming languages just like any others. When it comes to trying to form a more inclusive, welcoming community in open-source projects that are defined by their developers, the choice of loaded words, even used without deliberate offense, is important to consider.
What are your thoughts? Has Python truly gone PC mad? Should the expunging be extended to removing ableist/saneist language? What about gender neutral terms? Let us know at [email protected]