Why calling things slave is weird
I’ve been trying to write this post for a while, and I will probably be trying to write it for a while yet, even after it’s published. But, as has been pointed out to me recently, first drafts and feedback are important.
Background
In the world of software development / computer science, there is a technical term that is spelled “slave”. This bothers some people. (I am one of them.) Some other people think that this state of affairs is fine, or not worth changing.
Definitions
What does “slave” mean as a technical term? “Master/slave is a model of communication where one device or process has unidirectional control over one or more other devices. In some systems a master is selected from a group of eligible devices, with the other devices acting in the role of slaves” Wikipedia
What does “slave” mean outside of technical fields? “A person who is the property of another person and whose labor and also whose life often is subject to the owner’s volition.” Slavery in this sense is bad. Let’s all agree that this should not happen; that no human should be a slave.
Reasons for changing
Many people who want to keep the existing phrase are publically racist and I do not want to be tainted by agreement with this viewpoint that they hold. See: “It’s nice to see that no one here has expressed some of the more distasteful responses we see in the Django thread. Yay Drupal community!” sreynen
It is possible that this term is offensive and/or offputting to some people. It seems likely that people descended from people who were slaves would be more likely to be offput by this term. It is currently public knowledge that some tech companies are trying to hire more individuals from HDA (Historically Discriminated Against) groups. Removing a source of microagressions seem likely to be helpful.
Objections
A possible objection is: “It takes work, and the benefit would be incommensurate with the work involved.” To that I say- the work is worth it. This is a matter of opinion and we can discuss it based on survey data about the connotations of the word to various people and groups. I do not currently have access to data like this; please feel free to send me links to data.
Alternatives
- master/minion SaltStack
- primary/replica
- leader/follower Django Django docs
- leader/replica
Better terms:
- Replication: origin vs. replica
- Task delegation: chief vs. worker
- Consensus: arbiter vs. follower
-
thanks to @rhymoid
- node (currently in use for this concept, if not maximally precise)
- dumry (generated nonsense word with no current meanings)
- arnd (generated nonsense word with no current meanings)
- ibuk (generated nonsense word with no current meanings)
Opinions
“But I don’t like the terms “Master” and “Slave”, because these are reminders to a bad time in our pasts. It may sound silly but I think it’s not correct to keep these, at least from a moral perspective. I know it’s just a part of modern computer science,… but….” - openfrog, StackOverflow
“no need to employ a morally reprehensible term for a hierachical computer/technological controls arrangement… for example, we would designate connectors as “male” and “female”, not “male” and “whore”…. both cases “make the point” in a somewhat descriptive sense, however it is best to make the point using non morally reprehensible or inflammatory terms” - Auden, StackOverflow
“For many, “master/slave” has an overriding context that cannot be unselected. And it’s not even a proper metaphor for the thing we’re describing. I don’t ever want to have to say to anyone that it was more important, to our community, to continue using those imprecise terms, than it was to make you feel welcome.” Les Lim
“A colleague and I were discussing how to migrate our primary database server from one datacenter to another, when a group of college students (business and marketing) arrived for a tour. We were deep in the discussion, trying to ignore the interruption, when the teacher interrupted because she couldn’t believe we were casually throwing around the terms ‘master’ and ‘slave’. We explained that it was the technical terminology for database replication, created a long time ago, etc. etc., but wow that sounds lame and racist coming from two white males.” - John Whitlock, Quora
“Ordinarily in Jepsen we’d refer to these as “primary” and “secondary” or “leader” and “follower” to avoid connotations of, well, slavery” - aphyr
“We’ve been using Gru and Minion. Probably gonna get sued.” - @mcculloughs
References & Resources
- Twitter thread about “slave”
- StackExchange question
- Quora
- Mesos mailing list (argument against) Mesos Jira (several cards; work done)
- Jenkins still uses “slave” copiously
Typofixes, questions, factual corrections, and feedback are welcome: please file an issue on github at https://github.com/compwron/compwron.github.io/issues or message me on twitter as @compiledwrong