Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Well 'main' is a more intuitive & UX friendly name than 'master' which new devs are going to intuitively relate to as it's commonly used to refer to the 'main thing', e.g. main road, main course, etc. I can't recall the last time I used 'Master' as a synonym to 'main' outside of technology (as a Redis Client author I still deal with Master nomenclature a bit). Can only think of 'Masters degree' but that has to do with Mastery knowledge rather than 'Master copy'. The only other usages of 'Master' I can think of (from TV & Films) is basically what they're trying to move away from.

As a library author I often deprecate & rename new APIs when I can think of (or have been proposed) a more appropriate and a descriptive name to replace a misleading name. I put a lot of weight into the name of symbols as it basically has the largest bearing in understanding its functionality & purpose. This is effectively what GitHub is doing, deprecating 'master' in favor of 'main' for new repos, which I don't see a problem with as it's looking pretty clear that all new technology is moving away from master/slave terminology - I don't see why Software needs to be forced to use their old legacy names forever if they're able to deprecate it and move to new more appropriate naming without immediate breaking changes.

This change hasn't broken any of my 100+ existing repos, GitHub is only changing the default branch to 'main' for new repos & have implemented a bunch of work behind the scenes to reduce the friction for orgs & users who also wish to rename their existing mater branches [1]. I don't understand the hate this effort to more modern & inclusive naming is inciting, if you want to criticize GitHub for their lack of action in other areas, criticize that instead.

[1] https://github.com/github/renaming#renaming-existing-branche...



I disagree. "Master" is a pre-existing term closer to the actual meaning of that branch in a repository the way most developers work.

Cambridge https://dictionary.cambridge.org/us/dictionary/english/maste...: an original version of something from which copies can be made

Merriam Webster https://www.merriam-webster.com/dictionary/master:

being a device or mechanism that controls the operation of another mechanism or that establishes a standard (such as a dimension or weight)

being or relating to a master from which duplicates are made

In the realm of version control, the master branch tends to have special conceptual status as the branch you fork from and merge back to. It's not "main" like the main room of your house or main street in your city, it's the canonical branch which others are understood in relation to. It has nothing to do with slavery and renaming it to "main" obscures and confuses what was being communicated with the original name.


Yes "Master copy" was the terminology it was based on, but I'm more likely to hear and use "Original version" or "Original copy" today. I associate "Master copy" or to refer to old artifacts like Vinyl LPs, Film reel or document, with it's usage becoming more rare with the move to a digitized world. So I see its relevance & usage declining, esp. in Software where it's being proactively avoided in new technology.

But I don't believe "Master" is more intuitive nomenclature for new devs learning version control either nor a better representation for the naming the main branch where terminology is around a tree with branches being created from and committed to the 'main' single branch (i.e. trunk). When visualizing branches in a commit history it's shown and referred to as branches off the main trunk that deviates from the main branch at different commit points that may or may not return to the main branch like small roads off a main highway. The emphasis of branches being they're deviations or snapshots of a main branch's commit timeline, not in their state in which they're old copies of a main branch. The "Master copy" by definition does not change, it's a completed artwork, which is the opposite in CVS where it's always growing & changing with a tree of commits and often it's the branches which are snapshots of the main branch in labelled, well-defined points in its history.

Either way the terminology is definitely moving away usage of 'master' in new Software, so I don't fault their reasoning for deprecating existing naming and moving to more modern, intuitive & inclusive terminology.


There’re two aspects to the “master” vs “main” debate: (A) the negative connotation that “master” acquired during slavery in parts of the English-speaking world; and (B) the fact that “main” is objectively clearer, benefitting newcomers and effectively reducing the barrier to entry.

I’m not entirely on board with (A).

The downside to fighting words is that the negative connotation in the word is actually strengthened when a major organization decides to censor it on such grounds.

Consider Winnie the Pooh and CCP: used to be a cute children’s cartoon character, was compared to China’s dictator and got banned—now any display of Winnie is effectively a statement. Previously you were free to take it at face value clear of any political agenda, but now the meaning is decided for you by a central authority.

Furthermore, in the case of “master”, it was replaced with another word—and words continuously acquire connotations. If some white supremacist community now adopts “main” as a slang for “white”, what do we do? Keep on renaming branches? Doesn’t strike me as a sustainable approach.

I dream of a world where every single person is secure and no one takes terms personally, but I guess that can’t happen in foreseeable future.

However, I have to support (B). If we were starting with a blank slate, there’s really no argument to be made for “master” as somehow better than “main” at denoting the, well, main branch. (It could be a tough choice between “default” and “main” though.)

It’s hard to say for sure, but I suspect a lot of the pushback is subconsciously of the “we had to learn obscure terminology, so why should newcomers be spared?” variety.




Consider applying for YC's Winter 2027 batch! Applications are open till November 2.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: