Python creator Guido van Rossum retired as "benevolent dictator for life" in July, but like Michael Corleone in The Godfather III, he's been pulled back in to resolve a debate about politically incorrect language.
Like other open source communities, Python's minders have been asked whether they really want to continue using the terms "master" and "slave" to describe technical operations and relationships, given that the words remind some people of America's peculiar institution, a historical legacy that fires political passions to this day.
Last week Victor Stinner, a Python developer who works for Red Hat, published four pull requests seeking to change "master" and "slave" in Python documentation and code to terms like "parent," "worker," or something similarly anodyne.
"For diversity reasons, it would be nice to try to avoid 'master' and 'slave' terminology which can be associated to slavery," he explained in his bug report, noting that there have been complaints but they've been filed privately – presumably to avoid being dragged into a fractious flame war.
And when Python 3.8 is released, there will be fewer instances of these terms.
The Redis community wrestled with this last year. In 2014, Drupal, after some argument, swapped the terms "master" and "slave" for "primary" and "replica." The same year, Django traded "master" and "slave" for "leader" and "follower." CouchDB carried out a similar linguistic purge, also in 2014.
The debate goes back further still in the tech industry. In 2003, the County of Los Angeles briefly directed electronics makers doing business with the county to remove or change terms used in the identification or labeling of equipment or components that could be interpreted as discriminatory or offensive, such as "master" and "slave." Public complaints followed and the county backed down by insisting its directive was merely a request.
In 2004, word watching group Global Language Monitor cited the usage of "master" and "slave" in the tech industry as the most politically incorrect term that year. Industry usage of the terms dates back decades; they can be found in multiple RFCs, such as RFC 977 (1986).
Begun, the flame wars have
Predictably, not every Python developer participating in the discussion agrees with Stinner's changes. The comments in the bug report filed by Stinner echo every other online flame war on this topic.
"I'm not super-excited by the idea that Python has to change its behavior based on secret comments," lamented Larry Hastings. "Python has traditionally had a very open governance model where all discussions happen in public."
"Is it really necessary to pollute Python code base with SJW ideology/terminology?" asked Gabriel Marko. "What comes next?"
Redis releases respectable revision, tiptoes through tricky political terminologyREAD MORE
Raymond Hettinger asked whether there's any demonstrable harm from the terms. "If a particular passage is demonstrably unclear or offensive, it should be changed; otherwise, we shouldn't let vaguely formed notions of political correctness shape other clear uses of plain English," he wrote.
"As far as I can't 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."
Finally, van Rossum stepped in to end what appears to be an irresolvable discussion. "I'm closing this now," he wrote. "Three out of four of Victor's [pull requests] 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 [pull request] without keeping this discussion open."
Getting rid of actual masters and slaves, however, will take more than a pull request. ®