The default branch for newly-created repositories is now main
github.blog
github.blog
The new term is neutral, it's shorter, the downside of renaming a branch is negligible for git.
A tempest in a teapot.
Obviously racism isn't solved by this, but it's a net-positive change that doesn't take much work to adapt to and is mostly unobtrusive. I don't see why that's something to get upset about, unless you endorse the maintenance of systems that can be seen as oppressive (now matter how small the oppression!). There's no good reason not to be on-board with this change.
That group might be small but some other people (who some will say are overreacting and draw parallels with 1984 Newspeak) decided to not offend people for nothing.
I guess the main argument is a slippery slope type of thing.
What I've found, though, is that people in aggregate are reasonable. Slippery slopes almost never happen, not in the "landslide" sense. Things shift a bit, quite slowly, and at some point the shift slows down or even stops. And yes, I know about exceptions (Germany WW2, etc.). There's a reason we call them exceptions.
I know, after-all there are people who are offended to anyone having a Master degree.
> I know about exceptions (Germany WW2, etc.)
In my case, I feel offended when anyone brings up things like that. Please stop posting this kind of comments.
Obviously, it's nonsense. I don't have anything against github changing the names if they desire to, but I wish we called the argument behind it exactly for what it is - nonsense.
A German tourist drives through the Polish border, the guard asks
"name?" Helmut
"married?" Yes, two kids
"occupation?" No no, just visiting
I don't mean to offend anyone, I just have to point this out:
I'm Romanian. Considering how much worse, overall, our history was compared to yours (since I noticed you're Polish), I'm not sure you get to play the "I'm offended" card against me.
EXACTLY what problem is trying to be solved in this change, and for what group? Do we actually have accurate representation from that group? Do we have any reason to believe that this change will make things better for that group? As my own organization grapples with similar things, the answer is “no”, and we haven’t been able to find anyone else who’s approaching these things with any engineering-like process. You all are pushing new things into master without any of the usual industry practices which we’ve developed over decades to protect against unforeseen consequences. That’s not a trend I want to be a part of.
Requiring so much proof puts a significant burden on people who might actually be in the affected group.
(Before going further, I want to say that I am not in this comment taking a firm stand on the master->main transition directly, but rather commenting on this type of process in general.)
Let us assume that in the general population GP of people exposed to a given term T, there exists some portion of people who feel they are negatively affected by it (GP_n) and those who do not feel directly affected by it at all (GP_0).
A proposal is made to transition from using T to T'.
Some portion of GP_0 will report that they are opposed to this transition, which we can call GP_opp. I would argue that, based on reactions to the master->main issue, the members of GP_opp are either a significant portion of GP_0, or else are incredibly vocal.
Members of GP_opp call on GP_n to make their voices heard and to systematically prove their injury due to use of T. They say "I do not see the problem with T. Please explain to me why you find use of T bad, and why T' is a better substitute."
Many members of GP_opp make this call.
So now those in GP_n — which was likely a minority of GP to begin with — find themselves needing to explain over and over again the same issue. It is tiring, and it is burdensome. They are constantly needing to defend their emotions against people who claim that the T->T' transition is illogical and baseless.
I would argue that this is an undue burden. We, as a society, should do better. If the T->T' transition is not incredibly difficult to perform, and if T' is a strictly (or even just mostly) improved alternative to T, then I think we should not be requiring members of GP_opp to defend themselves systematically. We should not be going to great lengths to prove the necessity of the transition, because the transition itself is not that big of a deal. It's a relatively minor change, but one which when completed leaves us in a net positive state.
There's no particularly good reason not to make the T->T' transition, other than "tradition" or a minuscule amount of effort.
---
Applying engineering principles to human problems only serves to maintain a status quo that we already know is harmful to people in various minority groups (whether race or otherwise). Yes, it sounds reasonable, but that's really the issue with a lot of things going on lately to begin with: it sounds reasonable, but it really isn't, because arguing in favor of it requires ignoring the emotions of the people who are most likely to be affected to begin with.
I think instead we, as a society, should be moving towards arguing on behalf of people who might be injured, instead of requiring the injured to defend themselves. If no harm is done by transitioning from T->T', then why fight it? What good reason is there to not be onboard with such a change?
I cannot think of one, so I err on the side of trying to consider the feelings of those who I haven't met. I try to think about how what I do may affect others, instead of requiring that other people prove that I have affected them.
---
It's definitely worth putting some consideration into these things to ensure we're not wasting time on a bunch of unimportant stuff, but when it's something as trivial as changing the name of default branches of git repositories... I don't see what the hullaballoo is all about. Why shouldn't we? What are we avoiding? It seems to me that there's just a lot of people who are uncomfortable with change in general, and unfortunately it is this attitude that has by and large caused social progress of important issues to stagnate. Too many people fight change for the sake of fighting change, and the end result is we don't improve as a society. Maybe taking small steps like this more often will help us with making the big steps more often too, and I think that's a more important consideration overall.
Just my (wordy) $0.02.
They should be able to avoid this if they can type up a few sufficiently convincing arguments, and then instead of explaining over and over, they link the most relevant of those in any discussion.
> There's no particularly good reason not to make the T->T' transition, other than "tradition" or a minuscule amount of effort.
We don't know the effects of this transition. You think they're minimal. They probably will be, but there is at least some risk, and yet extremely minimal analysis of the benefit. The risk v.s. reward tradeoff is totally unclear until someone actually bothers to quantify it.
My worry is the accelerating spiral towards axing ever more of our language. If "blacklist" is offensive (I'm more concerned with the removal of that term than I am "master"), does that mean "black market" will also be offensive two years down the road, so we replace it as well? What happens to "gray market"? Nobody really cared about it ever, but without "black market", "gray market" no longer makes any sense. The metaphor is broken, so I guess we have to go with "legally-ambiguous market" and then I feel like something was lost along the way. Metaphors are powerful tools in language which allow you to express ideas more vividly; I will miss them when they're gone.
My bigger worry is the gradual relaxation of the requirement to drive changes by measurement, which is one of the fundamental principles which has allowed technology and science to achieve more than many other fields/approaches.
> Applying engineering principles to human problems only serves to maintain a status quo that we already know is harmful to people in various minority groups (whether race or otherwise).
To my knowledge, we actually don't know this. We don't know that minority groups are harmed by the use of the language currently under discussion. You can claim that they are, but you need to back that up with something measurable. Anecdotes are weak: I can point to a half-dozen trans friends (a different minority group with which I have more experience) that complain to me about Microsoft's use of PoliCheck. In that limited sense, they could be a minority group which has been harmed by the people wanting to make the type of language change you're advocating. Now's a great opportunity for you to show me that some group of people is meaningfully worse off because of the use of the language under discussion. I'm open to having my mind changed, just show me something.
> I appreciate the sentiment, but I think there's a problem with your proposed methodology (which I readily admit I do not have a direct solution to).
I feel that this is the blocker. The methodologies we use today have their limitations. But I don't think that's reason enough to sidestep them completely. We have gotten so much further with these methodologies than we ever got without them, and so tossing them out seems like a dangerous step in the wrong direction. If you argue that today's dominant problem-solving methodologies are ill-suited to the problem at hand, then seek to make them stronger. Don't toss them away.
Please stop doing that.
But it does make zero difference what the name is, as long as it's descriptive.
Main is kind of obvious, even if you don't know a lot about English.
I don't understand all the huff. The branch names were designed to be mutable in the first place.
I'm not totally convinced if this is an appropriate or effective response to systemic racism - compared to, say, working on company culture or donating to worthwhile causes to address the more substantial issues in society.
But the fact that the new default branch name is shorter, 4 letters instead of 6, is a saving grace. I can see the value, while being skeptical of the reasoning behind it. Even those opposing the change would probably agree that it's logically a better naming.
As the meme-girl would say: "Why not both?" :-)
This is what every newbie programmer needs: an additional obstacle on their way learning just because some people find it cool.
The first downside is that it creates work. Yes, some tools will break, it's always going to happen when stable identifiers are renamed. No, saying "it was always theoretically possible" is not a get-out clause. Breaking software has a cost, often a large and unpredictable one. Any protocol, any API can theoretically change at any moment, which is why successful software companies often promise not to do that.
Secondly and more subtly it creates work discussing it, actually doing the renames. This is time that would be spent on other useful things, but instead gets sucked up by this.
Thirdly, the premise is offensive and wrong, which will anger a lot of people. The implied belief behind these changes is that the people who chose to use the word "master" before were racist. And now all this fuss has occurred, there's an even stronger implication that anyone who does not rename their branches is racist. But this isn't true and thus a deeply offensive case of false accusations on a truly epic scale. Moreover this appears to assume that language creates reality, so strongly that renaming "master" to something else will actually alter people's deeply held and embedded beliefs based on their own lifetime of experience. There's a lot of evidence this idea is completely false, in fact linguists haven't believed this for nearly 100 years. So it's anti-scientific.
Fourthly, everyone knows that exactly because the premises are aggressive and irrational, it doesn't stop with this. The sort of people demanding these changes are insatiable. Once you start paying the Danegeld, you never get rid of the Dane. Next up, anywhere that uses whitelist and blacklist. You think renaming master generates an acceptable level of breakage? Wait until those two start getting renamed and a whole lot of security mechanisms stop working. What about whitespace?
No, the madness (for that's what it is) will never end. The downsides to giving in to this kind of aggressive, toxic demand are limitless because there will never be a point at which the Woke Police will feel they've done enough - they will continue demanding that when they yell and get upset you dance for them, forever, until they are expelled from the communities they are attempting to take over.
Are people changing the name for master records too? Should we change the term mastering?
Context is everything in language. I find this case (and many others, to be honest) borderline stupid.
1984 features control over language, and subsequent distortion of the meaning of words, as one of the main methods of societal control in the depicted dystopian society.
~
But playing this game can be fun! For example, my Apple Inc. supplied dictionary defines "main" using terms such as "dominance", "supreme", "paramount", "preeminent". So, it remains about "power", "position", and "authority".
As some suggested, "default" would have served the stated functional purpose of the word switch, without substituting one power word for another:
"a preselected option adopted by a computer program or other mechanism when no alternative is specified by the user or programmer: the default is fifty lines"
I'm sure all that is already in the works, unfortunately.
I see it almost as a failing of the English language, to have one word represent so many different meanings.
This whole thing is stupid. Its normalizing treating language and words in a "gold nugget in a pile of shit" sort of way.
If you could tell me that this whole push would not also come with a slowly growing judgement of people who don't conform to this new nomenclature it would be easier for me to not care. But thats never how these things work, and I can't really support adding more and more landmines for people to stumble over in social situations for no gain.
And it all comes back to context. Allowing bad contexts to infect other contexts just isn't maintainable. Its unneeded mental load to social situations, and it runs counter to how language functions.
At least keep the default master and let people customise it however they want.
Compare that to the expressed but not quantified harm by continuing the status quo.
Once we quantify both, let's talk.
How does it not affect you?
Is this really all that far? Changing the default branch name? What do you feel would be taking political correctness just the right distance?
Yes! This is happening! Realtors are often now framing the largest bedroom (often with attached bathroom) as the Primary Bedroom.
While we're at that:
Ma,am -> madam -> ma dame -> mea domina (my mistress)
The "master" in "master's degree" indicates that you have mastered a topic, and the terminology comes instead from the master/apprentice relationships. Totally different background.
Edit: I provided it in child comments, but support for my claims is available here: https://mail.gnome.org/archives/desktop-devel-list/2019-May/...
Citation needed, i think. I assume it's rooted in the idea of a master copy.
On the other hand, consider the fact that in most VCS workflows the alternate branches essentially report to the master branch by periodically merging with it. This is similar to the master/slave terminology in use with disk drive configurations.
Edit: A source for support here: https://mail.gnome.org/archives/desktop-devel-list/2019-May/...
Yeah, but only because you slaved away on it for years right?
The logic behind the original first use of the name doesn't matter.
The way the word "master" is used in the default branch of git repos, is in the context of master/appearance not master/slave. And the way it is actually used is what matters, not the logic of why one person decided to use it.
Of course not. This line of argumentation is silly.
The use is most similar to the explicit master/slave terminology used in disk drive configurations, where the "slave" drives report to the "master" drive. In VCS, the alternate (non-master) branches do their own work and periodically "report" to the master branch by merging to it.
Yes, by being merged in.
In a replication master/slave, the changes on master get replicated to the slave, but the changes on the slave do not go up to the master, as no changes are allowed on the slave that did not come from the master. In this example the slave has no autonomy.
In the git example, this is reversed, its rare that feature branches get updated to master, only if they go long enough, you can think of it as the apprentice branch operating with autonomy, learning from the master branch, until it becomes the new jedi master, and the old master retires.
To me those seem practically indistinguishable, but I will admit I did not dig into it far enough to determine whether the true etymology is as closely aligned as I have assumed. I wonder whether you happen to know offhand (if not I will try to look into it further).
So? It's being changed to something that's no longer an oblique reference to human slavery. The fact that it's being done to because of that reference to human slavery is the entire point, not a mark against it.
And a second random example here: https://en.wikipedia.org/wiki/Mastering_(audio)
I always create repos this way - i never create on GitHub then clone the empty repo. It would be annoying if this stopped working smoothly.
The only difference is that Github might not assume the name 'master' for the default branch anymore, so you may have to change the default branch in the project's settings on Github. Possibly Github will detect that there's only one branch and set it as the default, or recognize 'master' as the initial default branch. We'll have to wait and see what the exact behavior will be. Either way it won't stop you from using a Git repo with traditional naming conventions on Github in any shape or form.
Some repo I use still use master, some have main. I can retrain my muscle memory (and my scripts) eventually, but having both of them coexisting around in my various projects directories is already biting me. I honestly don't mind about the name (and if it weren't for muscle memory i think main is nice and short; perhaps "tip" would have been even shorter)
Two years from now - no one will care about that
I really, really like the example of Sweden changing the side they drive on. They used to drive on the left, like Britain. However, Sweden, as the astute observer will notice, is not an island.
Neighbors and close-by countries Norway, Denmark, Finland, Germany, Russia all drive on the right.
So Sweden had 2 (I think) referendums to change the side. Because people are creatures of habit, the referendums failed.
About a decade later a government somehow snuck the change in a law, I don't remember how.
There was much gnashing of teeth, but they switched. For a while I think light accident rates were higher as people got used to the system. I think major accident rates even went down, as people were a bit more cautious than usual.
After that, it all went back to normal and I imagine a young Swede in 2020 doesn't even know much about it anymore.
I'm surprised it's drawing so much ire.
Presumably GitHub will be around for a while so this change will forever make it a little bit more straightforward for people new to GitHub.
Additionally if anyone says that they’d benefit from the change then I think it’s best to take them at their word because the cost to change is not high.
This will let you override this change, so you can set whatever default name you want for the first branch of new repos
Done that. Github can virtue signal on their own code if they want. But they're not doing it on mine.
I don't think anyone is trying to hide the horrible parts of history.
https://www.google.com/amp/s/www.nationalreview.com/2017/04/...
https://github.com/ContributorCovenant/contributor_covenant/...
Both have some interesting discussion points.
But this is free and easy.
Heck, I worked on a repo where "master" was 2 years untouched, "rc" was like 8 months untouched and effectively deployment, "next" was effectively the release candidate but also used in production elsewhere, so it was gated like it was a master branch, and everything else was dev. Yeah.
If we are going this route, just in case we should also remove the word "default", because it means failure to repay a debt, to avoid upsetting somebody in a tough economic situation.
Yeah, it is pretty silly. But we do a lot of silly things; this one seems pretty far down the list.
> we should also remove the word "default", because it means failure to repay a debt, to avoid upsetting somebody in a tough economic situation
That's an interesting idea. Are you personally offended by the term 'default'?
Let's check the etymology of "main":
---
Old English mægen (Mercian megen) "power, bodily strength; force, violent effort; strength of mind or will; efficacy; supernatural power," from Proto-Germanic maginam "power" (source also of Old High German megin "strength, power, ability"), suffixed form of PIE root magh- "to be able, have power."
Original sense of "power" is preserved in phrase might and main. Also used in Middle English for "royal power or authority" (c. 1400), "military strength" (c. 1300), "application of force" (c. 1300). Meaning "chief or main part" (c. 1600) now is archaic or obsolete. Meaning "principal duct, pipe, or channel in a utility system" is first recorded 1727 in main drain.
https://www.etymonline.com/word/main
---
Maybe it's an improvement. But not a big one (oh wait, 'big' is also 'power').
/sarcasm?
Master much more clearly implies the antonyms "slave" "servant" "underling". to me, "main" doesn't have one single strong antonym, it's more contextual, but could be side, alternate, aux, etc.