Language and trade-offs
Sep. 4th, 2015 10:41 pmFor example, a person of color might suggest that the terms "primary/replica" could be used instead of the technical term "master/slave", to avoid trivializing an extended era of structural violence which to this date the United States has never made amends for. A white person might reply indignantly, might condemn "language policing" and say "you can't tell me what words to use!"
Now suppose I make the claim that an adjacency list uses less memory to represent a sparse graph than an adjacency matrix does, at the cost of making edge-existence queries less efficient. Is anybody going to tell me that I'm algorithm-policing or that I can't make them stop using an adjacency matrix? I don't think so, because they would recognize that I'm stating that there's a trade-off implicit in your choice of data structure: make edge-existence queries faster, or use less memory. I'm not telling you how you should resolve that trade-off, just that there is one.
Like engineering, language involves trade-offs. Continuing to use the term "master/slave" in technical contexts where it's historically been used arguably has the advantage of being a well-understood term, as well as saving the time that would be spent explaining and possibly defending the decision to switch to new vocabulary. The disadvantage of continuing to use "master/slave" is that it alienates many Black Americans, among others.
It's up to each individual to decide whether they want to resolve this particular linguistic trade-off on the side of subjective clarity, or of making as many people as possible feel welcome. To point out that a trade-off exists isn't to demand that it be resolved in one particular way. It's just to help people make decisions that reflect their values, just as explaining engineering trade-offs helps people make wise use of the resources available to them.
Another politically loaded technical term is "divide and conquer". Recursive algorithms aren't inherently violent or militaristic -- why not "divide and solve" or "divide and organize"? Again, there's a trade-off: using the historically accepted term "divide and conquer" has the advantage of clarity, while "divide and solve" has the advantage of not normalizing violence or abuse of power. You might choose to accept "primary/replica" but continue saying "divide and conquer", and that's fine. Just realize that there are trade-offs involved in both, and that the choice to continue using an accepted term whose connotations are political is just as political a choice as the choice to adopt a new term.
If I say that QuickSort has better average-case performance while MergeSort has better worst-case performance, I don't think anyone would complain that I'm telling them what sorting algorithm to use, or dictating whether they should care more about average-case performance or about worse-case performance. So why do so many people seem to interpret observations as commands when those observations are about language trade-offs?