Master/Nadir
“What, then, is truth? A mobile army of metaphors, metonyms, and anthropomorphisms–in short, a sum of human relations, which have been enhanced, transposed, and embellished poetically and rhetorically, and which after long use seem firm, canonical, and obligatory to a people: truths are metaphors which are worn out and without sensuous power; coins which have lost their pictures and now matter only as metal, no longer as coins.” — Nietzsche, Friedrich., Kaufmann, Walter. The Portable Nietzsche
A big part of writing software is making metaphors, naming things and concepts. Good names make code easier to write, less likely to contain bugs, and more easily understood by others. Sometimes the names are great–you get to write about spawning or killing processes, connecting and draining pipes and traversing trees. Other times the names are less inspired, maybe they are long and boring like FileActionStateTransition or FileActionManager, names made better when turned into acronyms (at Extract we talk about the FAST table and FAMs as well as RSD files and DEPs). In either case, whether there was a good metaphor or not, after you have used it a lot the word is just the thing and you forget what it was like to hear the term the first time.
If you use too much jargon people won’t understand you, these names might sound like nonsense or might sound like they mean something totally different than they actually do. But occasionally they may sound like older meanings, like what they were meant to represent when first coined, the image sharpening like Lincoln’s face on a corroded penny dropped in a glass of vinegar.
This past year people apparently noticed that the word “master” was sounding harsher than ever. Probably GitHub’s decision to change the default new repo branch from “master” to “main” had something to do with the video of the murder of George Floyd and the many protests against the legacy of slavery.
I was initially skeptical; did a “master” branch have anything to do with a slavery metaphor? Are masters degrees and chess masters going to be renamed next? Maybe the creators of git were going for a provocative name when they picked the name “master,” but more likely it was a metaphor of a metaphor, the terminology has many precedents in technology (there are master tapes and master and slave connectors on IDE cables, e.g.) and the power of the words was lost on them.
Regardless, it seemed to me that GitHub was making a good choice. When Nietzsche talked about “master and slave morality” he meant to be provocative, to reference historical power relations to better explain a concept. Does a “master” branch in git explain any better than “main?” Do the “Master.rsd” files we use at Extract better indicate the entry point of a ruleset than a “Main.rsd?” Probably not. Will these names strike some people as odd or shocking when they see them? Certainly.
This past year obviously had many low points. It would be gauche to talk about the silver linings so I’ll just say that I’ve been very fortunate to have a job I could do during this pandemic and the opportunity to help make the world seem a little less horrible. It’s not much, but at Extract we have stopped using “master” to name branches and files.