Most of us developers use metaphors to help convey an understanding of how our software works. Sadly, many developers choose the "master" and "slave" metaphor. Why would we voluntarily choose such an ugly human human interaction with a real and present history in many of our lives to describe software that we've written?

I wouldn't rule out the possibility that someone will (or already has) invented software for which the master/slave metaphor aptly conveys its function, however, I'd prefer not to use it. Also, many people intentionally play with master/slave relationships because of the history and connotations it provokes.

However, use of this metaphor in software like MySQL databases or Bind Name servers seems pointless, offensive and mis-leading.

I've never seen the use of the master/slave metaphor in software that conveyed more than the idea that one piece of the software essentially controls, wholly or in part, another piece of software. So, why master/slave? There are many metaphors to choose from - parent/infant, boss/worker, guard/prisoner, king/subject, landowner/serf, top/bottom, etc.

What does master/slave convey that the others don't convey?

Or, maybe they all convey the same thing, so it doesn't make a difference which one you choose (after all, it's just a metaphor). In that case, how about replacing master/slave with the metaphor husband/wife? Whoops. Now that's offensive (if you don't think that's offensive you can stop reading here and please don't post any comments - I won't change your mind).

But, that's different right? At one point in history, the role of the wife was to do as her husband says, but it's 2011, and we've evolved beyond that, so by using husband/wife we'd be re-enforcing that ugly, sexist stereotype.

However, how is that different from master/slave? It is 2011 after all. Isn't the role of the master to abdicate and the role of the slave to revolt?

Maybe that's why Bind has so many security problems...

So, what would you suggest, seriously?

The phrase "At one point in history, the role of the wife was to do as her husband says" is debateable, to say the least. Try to find a dictionary where the definition for "wife" states something like that. Definitions for "slave", on the other hand, usually leave little room for interpretation.

You could also look at it like someone on urbandictionary.com did:

"Slave: someone who is willingly owned as property by a master or mistress. Slaves have a very deep need to please and serve a Dominant person, and doing so is the only way they can feel truly happy and complete."

It takes the whole thing entirely out of any historically awkward context. Problem solved?

Comment by Anonymous Tue 31 May 2011 10:42:29 AM EDT

The term "master" seems fine, as it has several other independent meanings that have nothing to do with the "master/slave" pair; for instance, see the phrases "master copy", "master key", and "master electrician". I think we just need a replacement for the term "slave".

Depending on context, you don't always need such a term; for instance, "We have two master databases, and the rest replicate from those two".

Comment by Anonymous Tue 31 May 2011 11:14:24 AM EDT

Do you have an alternative definition of slave? You may not agree with slavery (I don't), but that doesn't mean that using the term to mean something that is doing work for something else and has no other purpose (I'm not saying this is the definition of a slave, btw) is an incorrect usage. However, if you have an alternate definition, that would certainly qualify as a good reason not to use the word in this metaphor. Slaves have also been known to live in reasonably good conditions (at least, that's what they're teaching in college) under some masters. I can't say (and probably wouldn't believe) that that could be said about slaves in general, and certainly not about the majority of slaves.

On the other hand, a wife is generally not considered equivalent to a slave, except by some (imho; they might actually prefer it that way) perverted (not necessarily in...that way) husbands/wives. As such, using the terms husband or wife in that way would certainly not be appropriate.

One might also note that the word "slave" may have been derived from the word "Slav" (I'll let the curious do their own research on this), which could be used as a base for a good argument against using the word "slave" in this way (or at all), though I don't know any word which accurately describes this specific relationship as well as "slave" does; subjects could leave a kingdom and not worry about the king sending soldiers out to get them, and prisoners generally have more freedom than they have historically had (at least, in the U.S. they do)...the other alternatives you provide are just poor (except maybe landowner/serf or top/bottom; I'd need to check those out).

Comment by Anonymous Tue 31 May 2011 12:13:55 PM EDT

It's not that I'm against slavery, I'm against enslaving other human beings. However, I'll all for the enslavement of animals (see pack horses or carrier pigeons) and replicating database servers.

Let's use our brains on this stuff. If you read a db book and just seeing the term slave in print causes you emotional distress, odds are more likely that you need help of a different kind.

Comment by rharding [launchpad.net] Tue 31 May 2011 12:35:16 PM EDT

It's not only a question of taste; it's a question of how we integrate the racially exclusive world of techies -- which is an MF/PL priority right now (one of several, I'll admit). Rharding writes: "If you read a db book and just seeing the term slave in print causes you emotional distress, odds are more likely that you need help of a different kind."

Cute in an insensitive and mocking way...but not the point. Many black people I know would notice the "master/slave" terminology and it would offend them even if they wouldn't openly admit it. I know several people who knew and spoke to grandparents or even great grandparents who had been slaves. As a Puerto Rican whose forebears contended with harsh slavery (both African and indigenous Taino), the term is repulsive to me and gives me shivers.

These experiences are burned into people's cultures. I would never call a piece of proprietary software a "concentration camp" or call a server cabinet failure a "holocaust". There are terms we don't throw around lightly or shrug at because of what they represent to people.

Can I live with the master/slave thing? Yeah. Should I go get the "different kind of help"? Unless you're talking about a revolution, which would help all this, I don't think so.

If things we say and do are offensive to African-Americans, we shouldn't do them. Period. No argument. Especially because we need to recruit African-Americans, and all people of color, into the techie ranks. And that would be a lot easier if the terms we use weren't offensive to them.

Comment by alfredo [id.mayfirst.org] Tue 31 May 2011 02:58:58 PM EDT

The phrase "At one point in history, the role of the wife was to do as her husband says" is debateable, to say the least. Try to find a dictionary where the definition for "wife" states something like that. Definitions for "slave", on the other hand, usually leave little room for interpretation.

The history of marriage isn't a pretty thing. Wikipedia documents that in the Old Testament wives were regarded as the property of their husbands. There a lot more where that comes from.

Comment by jamie [id.mayfirst.org] Tue 31 May 2011 03:11:43 PM EDT
Ignoring the fact that human language is full of unfortunate vocabulary largely chosen to be provocative so you will remember it. Master/Follower is probably a better choice. It better describes the relationship, and the grammar is just cleaner. "This disk follows the master." vs. "This disk slaves off of the master". In English we love turning words in verbs, but we really flubbed this one.
Comment by Anonymous Tue 31 May 2011 05:24:26 PM EDT

I think that the upshot is this: if the master software is a piece of software that partly or completely controls the slave, then the term master/slave will never be socially reevaluated in a way that obscures the metaphor.

Unlike the changing roles of husband and wife.

Comment by Anonymous Tue 31 May 2011 08:00:32 PM EDT

Publisher/Subscriber. I would think this is an appropriate use for many of the times when Master/Slave is used. Implies asynchronous activity.

Dominant/Submissive. An accurate metaphor when the controlling entity gives orders for the subordinate to carry out. Implies synchronous activity. Could be used when actually running procedures on a shell on a subordinate.

Controller/Subordinate might be a more PC alternative to Dominant/Submissive, while giving roughly the same meaning.

Leader/Follower. Implies that the leader breaks new ground, while the followers walk in the leader's footsteps. Think Lemmings (the game). Implies autonomous, coordinated activity. Perhaps used when spidering the web, a leader handles the domain names while the followers chew through the web pages within a domain.

Comment by Anonymous Wed 01 Jun 2011 06:39:54 AM EDT

I agree we need to change master/slave into something better.

Coach and player? Queen and drone (bees and other social insects, might give some bad associations)? Chief and workers? Controller and actors?

Comment by Anonymous Wed 01 Jun 2011 10:23:49 AM EDT

To some extent the issue of why 'master/slave' and not any other pair of terms can be cleared up by being careful about what the terms denote, and what they connote.

It's hard to argue that 'master' and 'slave' don't express well the particular relationship - one controls the other, and that's what the terms pick out, or denote or refer to. Furthermore, that's pretty much the entirety of what 'master' and 'slave' denote - that's clearly not the case for 'parent/child', 'guard/prisoner', 'king/subject', 'husband/wife'. These terms really do refer to quite different things; intuitively there are scenarios where the 'parent/child' metaphor is more appropriate, and we do see it used then. The other metaphors are largely inappropriate because they denote things other than what is relevant to the case at hand.

(To elaborate on the 'husband/wife' example. Once, it may be argued, that 'husband/wife' really did denote a relationship in terms of property. However that itself is certainly up for debate and at the very least it denotes a relationship beyond property or control and so on, and therefore tends to confuse the metaphor. At any rate, any sense of 'master/slave' within 'husband/wife' in modern English usage appears to be contingent, rather than necessary.)

But, as other have highlighted, 'master/slave' does have unhelpful connotations, that is the application of the terms to humans in (relatively recent) history. Certainly the term might offend some people. However, "If things we say and do are offensive to African-Americans, we shouldn't do them." is rather hard pill to swallow. Certainly, no-one should aim to offend people, at least not because of the colour of their skin or the suffering of the ancestors, and if we can easily avoid doing so then we should do so.

First, let's address the idea the we're offending 'African-Americans', which is rather ill-advised lumping together of a group based on their ethnic, or at least historical, background. At most, we're offending some African-Americans, partly in virtue of a (mostly) common history. True, we should aim to make as few people unhappy as possible, but given that there's absolutely no malice behind our use of 'master/slave', and it really is a very appropriate pair of terms, it's not a trivial decision to give it up.

Sometimes, people might have to deal with words with uncomfortable connotations, and accept that the context of the use, and the intention of the user are sufficient grounds to accept that no offence need be caused. Let's be clear here though - it's rarely obvious one way or the other who should give, and it's not a bad idea to err towards causing as little offence as possible.

On that line of thinking. what do we really have to replace 'master/slave' that has the correct, limited, denotation suitable for the metaphor. 'Dominate/Submissive', 'Top/Bottom' are best obtuse, at worst terms of, uh, art, and therefore I'd argue poor choices. "Controller/Subordinate' isn't a bad effort, albeit liable to confusion with other uses of 'Controller' in computing, and horribly wordy, and, again, somewhat jargon-ish (but at least it's HR jargon rather than BDSM jargon, and thus probably more widely understood).

Few things analytically have the sense of 'master/slave' - unsurprisingly perhaps, given that languages rarely throw up exact synonyms and that users of languages often really do pick their words carefully. You suggest that it's actually not an appropriate pair of words, in that it fails to accurately convey the relationship. I really would like to know why you think that, and for that matter of examples of people unpleasantly playing off the historical connotations of the words.

(P.S. My own use of language is all over the place in this comment, sorry.)

Comment by Anonymous Wed 01 Jun 2011 11:16:56 AM EDT

I totally agree. Master / slave is not needed in technical terminology. I prefer primary and replicant.

I feel the same about black, gray and white lists. How about block, wait, and pass lists?

Comment by openid [www.openid.albertlash.com] Mon 06 Jun 2011 05:53:20 PM EDT

All of the possible metaphors you've listed are just as offensive to some people as the master/slave metaphor. With the possible exception of the top/bottom metaphor which is unfortunately semantically broken.

As such this is irresolvable, a time sink, and pointless. The analysis above under 'Denotation and Connotation' is right on the money.

Also this is a very bizarre claim: "many people intentionally play with master/slave relationships because of the history and connotations it provokes". This is definitely not my experience and I struggle to believe it.

Cheers, David

Comment by Anonymous Thu 09 Jun 2011 02:49:29 AM EDT