A quiet debate has been brewing in the coding community for years that’s forced programmers to ask if using the terms “master” and “slave” are insensitive. Now, Python, one of the most popular high-level programming languages in the world, has ditched the terminology—and not everyone is happy about it.
Master/Slave is generally used in hardware, architecture, and coding to refer to one device, database, or process controlling another. For more than a decade, there’s been some concern that the terms are offensive because of their relationship to the institution of slavery. Last week, a developer named Victo Stinner published four pull requests asking the Python community to consider changing the Master/Slave terms to something like Parent/Worker. “For diversity reasons, it would be nice to try to avoid ‘master’ and ‘slave’ terminology which can be associated to slavery,” he wrote to explain his thinking.
This is the internet, so people had opinions. Some people disagreed with the suggestion in measured terms and simply didn’t feel it was necessary. Others launched into the anti-diversity screeds and predictable talk of censorship and mind control. “Seeing all the PC/SJW nonsense around me, I’m afraid that this can be the starting of Python becoming PCython,” one developer wrote. Another commenter decided to take things quite literally, saying, “As far as I can’t [sic] tell there isn’t a single instance where the docs use ‘master’ as a reference to human slavery or where the use could be seen to imply an endorsement of that notion.” Someone else claimed that the terms are actually positive in the BDSM community. “You want to support diversity, then why are you discriminating against that subculture,” they asked. And, of course, Reddit turned into a cesspool as users watched this all go down.
It was all enough to get Guido van Rossum, the creator of Python, involved. Van Rossum officially retired in July, leaving the community to fend for itself when it comes to governance, but the squabbles pulled him back in to lay down the law. “I’m closing this now,” he wrote. His final decision was to accept three of Stinner’s four requests. In his view, “the fourth one should not be merged because it reflects the underlying terminology of UNIX ptys.” And so it is decided that Python 3.8 will change the term “slave” to “worker” or “helper” and “master process” to “parent process.”
Whether you think this is just another symptom of an out-of-control desire to be politically correct or not, it’s just a fact that languages change over time. Programmers should know that better than anyone.