Git: Changing Master to Main -- Was it Necessary?

This is probably off topic, since it really has nothing to do with the technicality of the change, and more to do with 'why'. This may even be a controversial topic for some--so if you're not in the mood, feel free to dismiss this post for what it is: academic conjecture on a somewhat politically charged topic.

If you're unfamiliar with this topic, here's some background on GitHub (and now GitLab's) change from "master" to "main".

Let me start by saying this: I'm pretty far left on the political spectrum. I believe that rhetoric in popular media does matter. I'd also be one of the first to advocate for U.S. reparations to our African American communities, the Central American States, as well as any other numerous indigenous and minority populations our gov't has given the short end of the stick to. In a time when U.S. politics is highly tribalized, most of my peers would place me squarely within the progressive camp. As a registered Green, some would even put me in the dreamer/nut-job tent (alongside Ralph Nader and Jill Stein). After reading this post, you might put me there, too; hopefully it doesn't put you off of the blog.

Despite my progressive leanings, though, I can't get fully on board with the idea of changing "master" to "main". Here's why:

"Master" is a versatile word with many meanings. It's probably a safe bet that when the creators of Git (Linus Torvalds, et. al.) chose to label the the "main" branch "master", it wasn't a faux-pas. They almost certainly meant "master branch" in the sense of "master record", or "master copy". The word "master" in all of these cases has nothing to do with slavery or subjugation. "Master", in this sense, means "original". A master copy is the original item from which all other copies are derived. A master branch, then, might be understood as the original branch from which all other copies are derived (albeit indirectly, as the case may be). This is exactly the way the Git master branch behaves: not as an owner or controller, but as an original. It's worth noting, also, that the word "master", as an adjective meaning "original", is about 800 years old. Without asking the creators of Git, I don't actually know this for sure, but my guess is that the master/slave dichotomy (even as it exists in computing), wasn't where the naming came from.

Just as old as the adjective is the noun, "master", which can also have multiple meanings. The phrase "kung fu master" has zero connotations of slavery; in this case, a master is simply "one who possesses a high degree of skill". Masterclass.com is almost definitely in the business of promoting mastery over skilled trades--and not ownership over living beings. The "master craftsmen" who teach their trades there (many of whom are presumably progressively minded), would probably resent the implication that they are somehow promoting human trafficking. A "master's degree" is about acquiring skills; it's not about learning how to force people into submission. The use of the noun "master" in this sense is equally as old as its use as an adjective meaning "original". 

It seems odd to me, then, that developers at GitHub made the decision to rename the "master" branch last October and call it "main". Generally speaking, developers have a pretty solid grasp of semantics. Of all the meanings associated with the word "master", the one having to do with slavery doesn't seem like the one we're referencing when we use the term "master branch". So... did someone at GitHub actually think there was ambiguity in the intent of the word? Did someone actually think: "Oops! This phrase might be misconstrued as a legacy of colonial patriarchy!" I guess so. They're entitled to make that judgement... but...

It Doesn't Actually Help

America has real problems. Unfortunately, some of our attempts at "political correctness" actually work to diminish the impacts of real social progress. Here's how:

  • These changes can be tokenized; they become false indicators of progress. It becomes easier to say, "hey look--we did our part--we got rid of a questionable word"--when in reality systemic racism goes largely unchecked.
  • PC efforts sometimes redirect the dialogue on racism to places it really doesn't need to go. The voices that are most important in our national dialogue on race should really come from the victims of racism. Is anyone actually complaining that the use of a "master branch" in Git version control is perpetuating systemic racism? People are getting shot by police; there are riots in the street; Asians are getting beat up on their way to the store; Latinos are getting mowed down by gunmen at Walmart. Do you really think that this is the change those people are advocating for?

I'll leave it at that. Sorry to bring politics into an otherwise "safe space". Like I said earlier, though, I do believe rhetoric matters. In this case, I don't see the change from "master" to "main" as productive (let alone semantically necessary). I don't think I'm alone in that sentiment.