DEV Community

Discussion on: Replacing master with main in Github

Collapse
 
n_develop profile image
Lars Richter

Hi Alexis.

I cannot understand why so many people are resisting this change.
Scott Tolinski found the rights word on Twitter:



So true.

Thanks for sharing the steps necessary for the change in a short and crisp way. I'm totally on board with this. All the newer repositories and the ones I'm working in regularly are updated already. All other repositories I own will be updated bit by bit.

Collapse
 
waylonwalker profile image
Waylon Walker

ditto

Collapse
 
michaeltharrington profile image
Michael Tharrington • Edited

I'm seriously stunned by how many people are fighting this! The number of folks who I've seen comment for the first time on DEV just to argue against this change is super discouraging.

Collapse
 
n_develop profile image
Lars Richter

I'm 100% with you. It's just sad.

Collapse
 
ino76 profile image
Comment marked as low quality/non-constructive by the community. View Code of Conduct
JsonKody

I think that people fight this because the idiocracy must be fought with. And this is pure stupidity.
People today just go FULL crazy, taking ideology and politics to absolutely every aspect of their lives and it is just wrong and narrow world view. Also this is just another case of ban culture .. witch is incredibly dumb and anger driven phenomenon. (sry for my english .. it's not my native language)

 
ino76 profile image
Comment marked as low quality/non-constructive by the community. View Code of Conduct
JsonKody

Btw 'main' is pretty good word and I wouldnt be much against it if it was just easy to switch and for right reasons. But it's not so easy and the reasons .. oh the reasons are the worst I can imagine. It's just like some satire from Monty Pythons sketch except that you people mean it. OMG what a times to live in. With so many crazy people everywhere. It looks like it doesn't matter how smart the group is. It still can be infected by "opposite" of wise view of reality.

Collapse
 
donut87 profile image
Christian Baer

I do.

Renaming master to main is a small thing and should not bother you, right? Absolutely!
I'm not bothered by this and I am happy to do whatever I can to make more people feel included or less excluded/repelled.
That being said, change (might it be ever so small), does not come easy for all people. We are stuck in our comfort zones where our habits rule. It's called comfort zone for a reason!
It also triggers people, if you say 'This is a racist term, stop using it.'. People will go in denial saying 'But I am no racist. Ergo this can't be a racist term!'
There are so many layers of psychology involved, I cannot uncover all (Dammit Jim, I'm a software engineer, not a Doctor)

There is one thing that bothers me: The power of github.
Github is a privately owned company with a massive impact. If github decides the new name for the default primary branch will be 'main' then this will be a fact. No discussion in the community, no suggestions, no voting, nothing near to democracy. What if their next decision is not that benevolent? They are the de facto monopolist.
This is why I do not like the process behind the decision, whereas I can agree to the decision itself.

Collapse
 
erebos-manannan profile image
Comment marked as low quality/non-constructive by the community. View Code of Conduct
Erebos ManannĂ¡n

The term "master" is a bad one, but claiming it's racist is an idiotic reason to change it. It's non-descriptive and counter-intuitive vs e.g. "default".

Has nothing to do with racism, "master" is not a racist term, and this is not a race issue.

 
donut87 profile image
Christian Baer

Thing is, we do not get to decide what counts as racist, as we (the white dudes) are not affected by it. Your argument is invalid, sorry.

 
erebos-manannan profile image
Comment marked as low quality/non-constructive by the community. View Code of Conduct
Erebos ManannĂ¡n

No, sorry, yours is. You don't get to invalidate me because of my skin color or genitalia.

 
donut87 profile image
Christian Baer

Try this one with a PoC and see how this works out...

 
erebos-manannan profile image
Comment marked as low quality/non-constructive by the community. View Code of Conduct
Erebos ManannĂ¡n

So you're saying they have special rights to disregard people because of their skin color?

No, nobody does.

 
donut87 profile image
Comment marked as low quality/non-constructive by the community. View Code of Conduct
Christian Baer

This is a waste of time. If you want to be racist, be...

 
erebos-manannan profile image
Comment marked as low quality/non-constructive by the community. View Code of Conduct
Erebos ManannĂ¡n

What an incredibly stupid statement and pretty ridiculous of you trying to make me into a racist because I don't think the term "master" in Git is racist.

Grow up.

 
xxgozixx profile image
Godstime Osarobo

I just have to say something here. Cause this whole thing is getting quite ridiculous. As a person of African origin(Nigerian - born Austria raised in Ireland) I've never seen master with regards to git as something that is related to slavery. Never. I've always understood it as the master branch. As in the main branch. The way I see it, this change is more of a nice-to-have cause it makes more sense now.
Even with the master-slave strategy which I used when working on Robocode virtual AI robots, I understood the context. This robot controls the other robots and those robots follow the command of that robot, so its called Master-slave. This has nothing to do with human slavery. Robots/Machines/Software/Code don't have emotions. If I wanted to, I could call my computer my slave and there'd be nothing ethically/morally wrong with that. Why? Because it's a machine that has no emotions and it was specifically built to obey the commands I give to it. It's a machine not a human and I understand that difference.
Personally I feel that these small remarks by companies saying "this is making people of colour feel more inclusive in the industry" or that "this shows that we support people of color", actually downplays the real problems that people of color actually face in industry.
Either way I'm happy about the change (although my OCD will now cause me to change all my Github repos from master to main. So a big thanks to

afrodevgirl image
for helping out with that). 'Main' makes more sense but this shouldn't be used as a "See, we support people of color now. So we cool?" card.
This is just my opinion as a black person. I understand that there are other black people that feel differently about this and I respect their views just as I hope they respect mine.
 
ino76 profile image
Comment marked as low quality/non-constructive by the community. View Code of Conduct
JsonKody

Exactly. Main is pretty good word. But the reasoning about slavery in git is just pure laughable and ridiculous.

So this invalid reason make the switch completely 'redundant'. Like we have not many things to learn? And now some crazy devs are clogging our code with some politics/ideology/banCulture dumb shit?

 
ino76 profile image
Comment marked as low quality/non-constructive by the community. View Code of Conduct
JsonKody

I say, change where it matters! Use brain the right way! Be at least reasonably good person at best the best version of yourself. Respect others. Thas it.

And don't add another problems milions of others devs .. like renaming branches on github for no reasons. That doesn't spark joy -___-

Collapse
 
n_develop profile image
Lars Richter

Hi Christian,
thanks for your reply.

First of all: I'm totally aware that the change is not easy for everyone. But I mean it in a technical way. There are software projects out there that have tons of automation scripts, hooks, and whatever that contains the word "master" to reference the master-branch. It's not easy to change the name of the branch in these projects.
And I'm not so much on the "CHANGE IT NOW OR YOU'RE A RACIST" side of this discussion. But I think we can all make more people feel included when we start changing it whenever we can make the change with reasonable effort. So start with your small projects where you do not need to update any automation scripts. There are millions of repositories out there where the change will be easy. Why not do it?

Because it's not comfortable? To be realistic: What will happen?
People will type git checkout master from time to time and will see the error, that master does not exist. And everybody will immediately remember that it is main now. Relearning this will take 5 days, tops. I'm ok with investing a couple of failing "checkouts" to make this change.

It also triggers people, if you say 'This is a racist term, stop using it.'

I can totally see that. But to be clear here: I did not say that. Most of the devs who stand up for this change are saying: "This term makes some people feel excluded/not welcome. I think we should change it."
And yes, there are hardliners on both ends. But let's have a healthy debate.

 
donut87 profile image
Christian Baer

And I'm not so much on the "CHANGE IT NOW OR YOU'RE A RACIST" side of this discussion.
You might not be, but consider what message people are receiving. Communication is very hard. See "Friedemann Schulz von Thun" for the problem of sending and receiving messages. I trust, that German is not an issue for you ;-)

Because it's not comfortable?
Exactly. Like I said, it's called comfort zone for a reason. Change always needs energy to overcome inertia. Be that in Physics or in Psychology. We humans are beings of habit and tend to reject suggestions to change. This holds true, especially if the change is forced upon us by some "higher force".

But let's have a healthy debate.
This is what I wished would have happened. Github took this opportunity away by deciding on a new standard without asking. For a company that claims to be community-driven, this was not a smart move.
The goal is noble and right, the methods are questionable and I fear, did not help the cause.

 
shanrhyupong profile image
Olyuenhyang

For your information, "Person of Color" is the most patronising and racist term I have ever heard in my life. You're basically practising segregation with this sort of language. "Us" vs "Them". Whites vs non-Whites, and is being White is the norm? Ridiculous.

Come over to Asia/Africa/South America. You're the minority there. Let's see how you like being called an "mzungu", "firanghee", "gora" or "gaijin" or "gringo" all the time for the rest of your life.

The cognitive dissonance is really strong with you, isn't it? Smh.

 
donut87 profile image
Christian Baer

Now that you have stated what you do not want, please state what you want instead. So if you are done with shaking your head, please be so kind and tell me what to use instead.

 
shanrhyupong profile image
Olyuenhyang

Just don't use that term. Every ethnicity is different. If you want to refer to people who are not White/Caucasian, just use the term "non-White"/"non-Caucasian". That makes more sense than treating the non-White people as homogeneous, one-dimensional beings.

Also, cut out the passive-aggressive nonsense. It is very boring, I assure you. You wish to talk like adults, let's do so. If you cannot, then I don't see any reason to continue engaging with you. There is a time and place for levity, and I am all for that. This is not one of those occasions.

Collapse
 
huncros profile image
David Herskovics • Edited

"I cannot understand why so many people are resisting this change."

Because it is a breaking change for no real reason - and as an engineer it makes my eyes roll.
It is also a "panic reaction" and a "displacement activity" instead of facing the real problem - and as and intelligent person who dislikes BS, especially instead of real solutions and actual debates on how to reach them, it makes me cringe.
And it's also done in an idiotic way - which again, makes me as an engineer and an intelligent person sigh in annoyance.

Let's start with the very first thing: Git's (and thus: Github's) "master" has nothing to do with slavery. There are no "slaves" in Git. The "master" refers to the "master recording".

I know that there is this one email where SOMEONE ARGUES that the naming PROBABLY comes from BitKeeper where it was used as part of the master/slave terminology. And I see you have also used it in this thread as if it were some kind of evidence.
Nope, it's not. It's someone's theory, and I find it alarming how people driven by their agenda try to push an OPINION AND THEORY as an evidence.
Especially when it's totally false: twitter.com/xpasky/status/12722807...

This makes it the whole premise false - thus my claim that this change is for "no real reason".


On the other hand, tt's a breaking change, which means extra cost (for no reason) for developers using GitHub, for developers who will start using GitHub in the future and also for GitHub's own tech department.

1.) It breaks the common standard shared by Git, GitHub and GitLab. This hurts portability and adds annoyance. Now it will e.g. be possible that I will get different result if I first create a local git repo and then upload to GitHub compared to if I did it the other way around.

2.) It breaks tooling.
Do you have a release script that makes sure that you are on the latest version of the master branch before allowing the release? You have a problem then.
Do you have a pre-commit hook that guards against committing directly to the master? You have a problem then.
Do you have any kind of innovative / crazy / highly customized / whatever tooling that references the master branch in anyway? You know, all the kind of unforeseeable stuff that is sure to happen a lot when over 40million developers are using your stuff for all kinds of projects.
Yepp, you will have a problem.
Now, of course GitHub will try to mitigate these problems with the addition of new tooling and automation - which will probably add new layers of indirection for the users and new functionalities to maintain (and thus quite possibly new bugs) to the GitHub team.
And normally, such a change would be rolled out in steps to test waters and stuff. You know stuff like beta testing as such. But now, instead it is rolled out in one huge update which will affect all the over 40M developers. Heck of a way to test new - and seemingly put together in a rush - features.

3.) It breaks documentations and TUTORIALS. And most of these will not be updated. Now we will have broken tutorials all over the net. So new users will be easily confused.
Add the possibly user indirection that the new GitHub automation will possibly introduce and you have just effectively increased the entry bar for using GitHub for new devs.


And now let's continue about how this is a "displacement activity" instead of trying to make a real solution.

I have no problem replacing the master-slave terminology. But the intelligent and engineering way is to do this by acknowledging the cost of doing this and trying to minimize it.
From a purely technical point of view, the master-slave terminology is a very good terminology. It clearly express the relation of the master and slaves. The words themselves are not that much used outside the terminology (the "master" is a bit more, but the "slave" is basically only used in this context which makes reasoning about and searching the code much easier). They are widely used in the industry, so everyone knows what they mean.

So if we are to replace this terminology, then as an engineer, my requirements is to have a similarly good new terminology for as low a cost as possible.

This means that first of all, there should be a wide-spread discussion about what should be the new terminology. Let's create a new widely used replacement instead of everybody choosing their new one.

Secondly, I want the new terminology to be expressive. Also want the new words to be not overused by other meanings.
Renaming the master to main does not satisfy these requirements.
The "main" is already used for a lot of stuff. And whatever you rename the "slave", it won't express the same relation. So it's simply a quite bad name.

Thirdly, I want the cost of change to be minimized. So that the amount of code, documentation, tutorial, whatever that needs to be updated is minimized.
The obvious way to achieve this is to leave the name "master" and rename "slave".
E.g. rename "slave" to "minion" as it is done in SaltStack.

It clearly express the intent, the name "minion" is highly unlikely to to be used in some other way in the code and it minimizes the cost by keeping the name "master".


Oh look, if we don't do BS as a panic reaction we could actually do some meaningful stuff!

And that's why this is infuriating.
GitHub could have just say, that:
"our 'master' branch refers to the 'master recording' and we do not use master/slave terminology anywhere so it does not affect us, but we still feel that inclusive language is a positive goal and we should push for that. But since the term is a wide-spread industry standard, it should also be replaced by a wide-spread new standard instead of everyone just trying to figure out their own replacement in a rush.
So we are calling upon the big companies and open source community to let's find a new terminology that will be adapted.
The new terminology should clearly express the intention behind the architecture (i.e. one boss delegates the jobs to others while supervising them); It should be not over-used for other uses; And ideally, the change should be as natural and pain free as possible.
For this reason, our team has checked the alternatives that are already in use and found the following ones to be a good candidate:

  • master / minions:
  • ... "

Look at the difference. This reaction would have made sense. This reaction would have actually tackled the actual problem. On a industry level, nonetheless.
This reaction would have actually also taken into consideration the millions of engineers who uses GitHub.

Many of them not even being from the US so they don't even have these kind of "triggers" that you have in the US. What happens here is basically a US-centered panic reaction being forced down the throat of the whole world.
I don't know if there is already a "US progressive" world for this, but shouldn't we call this something like "cultural dictatorship"?

Just food for thoughts...

Collapse
 
itranscend profile image
Banks

This really hits the nail on the head.

I'm a black software engineer and I don't find the use of the word "master" offensive, in any way whatsoever, and neither do any of my black developer friends.
In my opinion, it's an unnecessary change that doesn't make blacks in the tech industry any better. I heavily doubt that there was once a black dev that quit programming just because he/she ran into GitHub's "master" term.
I also doubt if there can even be any measurable impact aside from the PR and social points GitHub is getting by implementing this change.

 
xxgozixx profile image
Godstime Osarobo

I totally agree. Like honestly, I saw this post the other day and
started questioning whether I'm black because I didn't see it this way.

 
shanrhyupong profile image
Olyuenhyang

Same here. I'm Brown, and I think this kind of fetish that these so-called SJWs have with derogatory terms like "Person of Color" (what, do White people not have any colour?) as well as segregating the world into "Whites" vs "non-Whites" (never mind that the "non-Whites" part consists of Asians, Blacks, Hispanics, Native Americans, Indians, Pakistanis, Bangladeshis. Turks, Australian Aboriginals and so) is honestly dehumanising. Shameful and reprehensible. I'd rather have to deal with an outright racist than with these closet racists.

 
xxgozixx profile image
Godstime Osarobo

Well said!

Collapse
 
staplegun profile image
Douglas Campbell

What I think is most interesting is that when we say "but that's the way we've always done it" we are saying what people in 'the establishment' usually say.

In IT we are happy to disrupt industries causing all kinds of pain to people in 'the establishment' who have 'always done it the old way', yet when someone tries to disrupt us we cry foul.

At some point we moved from taking down 'the man' to actually becoming 'the man'.

You can't have it both ways - complaining when others don't change, then complaining that you don't want to change.

Collapse
 
n_develop profile image
Lars Richter

Amen to that.

Collapse
 
packetdancer profile image
Packetdancer

I cannot understand why so many people are resisting this change.

I honestly can't either. It's such a small thing. Even doing it by hand takes a minimal amount of time!

We've been having this discussion at work; in the course of the discussion the topic of the etymology of the term 'master' as used in tech came up, and discussion of whether or not it was meant to be taken in that sense. Someone replied to that all asking "Does intent matter here?", and I think the answer is "no".

The analogy I used in the discussion there is that if hurl something at someone's face, they get bruised. And with regards to that bruise, it doesn't actually matter if I threw it deliberately or if I lost my grip on something while gesturing and flung it accidentally; they get hurt either way. And I'd think we all want to avoid injuring our colleagues, even if such injuries are accidental.

I mean, people put on wrist straps when using Wiimotes or JoyCons or VR controllers of any form because you don't want to fling them at someone's face unintentionally. I view renaming the primary branch of a repository to be akin to those wrist-straps: a safety measure to ensure we don't unintentionally fling daily microaggressions at someone's metaphorical face.

I mean, the only reason I haven't migrated all of my own older personal repositories yet is that I'm trying to work on a tool in my spare time which will use the github GraphQL API to handle the whole process—including shifting the default branch to 'main' and migrating any necessary branch protections from 'master' to 'main'—and have left the repos I'm not using on a daily basis as a final test case for when I finish.

Collapse
 
n_develop profile image
Lars Richter

First things first: I saw you joined dev.to just a few days ago. I am glad you joined this great community. Welcome!

Thanks for your reply. I agree 100% with your comment. It's good to see people like you with a healthy attitude to this subject.

Most people don't understand that it is not about them. It's not about them "being racist". You are not a racist if you use "master" as your main branch. That's not the point. It's about the other people interacting with your repository and your code. The point is: how do THEY feel?

 
shanrhyupong profile image
Olyuenhyang

As a "minority", I don't see any logic or usefulness in this change. Thankfully, github has accepted the views of the "other side" (the rational side) as well and have given people the choice of using master or main, which, ironically, you would have argued for as well - the choice - if you really did care about "minorities"). Get off your high horse - you don't represent me.

Collapse
 
zerquix18 profile image
I'm Luis! \^-^/

I disagree with the change for three main reasons:

  1. Force of habit

Yes, I know it's not the best one, but that's how pretty much everyone that disagrees feels. I've been using master since 2012 when I learned git, and I still use it every day. Deployed projects on Netlify or AWS use master, and those in VPS as well. When switching to main, I will be struggling for a while.

In addition, every online tutorial that wasn't published or updated after this change will be outdated, making it confusing for beginners. Is it master? It it main? They'll have to figure it out. Not just for them, but also for the projects they will be contributing to.

  1. The precedent

Right now, nobody who uses the word master in a git context is referring to slavery. But this will set a precedent if main becomes the standard. People who use master in 5-10 years will be accused of racism, by at least some minority, since everyone else will be using "main" because "master" is viewed as racist. Repositories will have issues demanding to rename the "master" to "main", and arguments will happen. That will also make black folks uncomfortable when contributing to projects with the "master" branch. It will increase a polarization already happening in the tech community.

  1. Is it really worth it?

So after #1 and #2, is worth the change?
If you were to ask black folks what are the problems that they're facing in the industry, I don't think the word "master" in git would come up in their top 10 list. Are we avoiding the long, complicated solutions and doing this just to show we're doing something?

Github still has a contract with ICE and has banned people based on their nationality.

Are we paying attention? Or did they make us happy already?

(please notice I'm not white, I don't live in a first world country and english is not my first language, so that might explain why I'm wrong/wasn't clear on something - no bad intentions here)

Collapse
 
perpetual_education profile image
perpetual . education

Have you already spent more time defending it, than it would take to switch?

 
delioda79 profile image
Kahless The unforgettable • Edited

I think killing a man takes less time than explaining why it is wrong, are you going to do it if they tell you so, just cause it takes less time? It is, in fact, a matter of principle here, I will have no problem with having "main" as the default branch, but the reasoning behind it, for many people, is wrong. Now I'm very scared of people who just do things cause it takes less time than understanding what the problem is.

 
perpetual_education profile image
perpetual . education

We'll be letting our students decide.

 
shanrhyupong profile image
Olyuenhyang

I am a student, and I choose master because that is the technical term for the technology.

Collapse
 
n_develop profile image
Lars Richter

Hi Luis.

  1. As you stated yourself "Force of habit" is not a real argument. "We have always done it that way" is killing every healthy discussion at its core.

  2. Just because nobody is referring to slavery while using the term master in the context of git, doesn't make the origin of the word disappear. If you ask me, I will happily do this change if more people will feel more comfortable and welcome.

  3. in my opinion, we should be able to do smaller changes like this while we tackle the big issues in other places.

 
erebos-manannan profile image
Comment marked as low quality/non-constructive by the community. View Code of Conduct
Erebos ManannĂ¡n

The origin of the word? Oh you mean "master craftsman", don't you, or maybe "masters degree"? Oh but you don't, you just assume it means slave master, because you want to.

 
n_develop profile image
Lars Richter

Hi Janne. Thank you for your comment. But, to be honest, I doubt that the branch name originates from "Master degree". I think it's also unlikely that "Master craftsman" is the real origin.
Bastien Nocera answered the question, why the name has a reference to "master/slave" here: mail.gnome.org/archives/desktop-de...

But it would be really cool if you could provide some proof that it originates from "Master degree". That would shorten this debate for sure.

 
erebos-manannan profile image
Comment marked as low quality/non-constructive by the community. View Code of Conduct
Erebos ManannĂ¡n

I honestly don't much care if it's a "master copy" or from Bitkeeper's "master" and "slave" repository -concept, and really the only person who likely knows for sure where it came from is Linus Torvalds. When you say "answered" you mean "speculated".

  1. Master-slave relationships in computing are used to pretty accurately describe exactly what is going on. In case of version control "master" is just a bad name because it's non-descriptive and random, but it wouldn't be the first thing Git has failed at naming in a clear and useful way. Does not mean it is racist.

  2. The word "master" is not purely related to slavery, even though people want to assume that because it fits their narrative. Using master lists, having a master plan, having a blacklist, being a white hat, or wearing a white shirt are all equally racist words, not at all.

Definitions for the word master

  1. I would assume only someone from the U.S., or someone completely ignorant of the world history, could equate slavery as purely a racist issue. I would recommend to more rooted in the modern day reality of economic/wage slavery, and working against that, than the imagined threats of referencing slavery in the relatively recent U.S. history.

Whatever the origin of the word (of which you've only assumed that you know it - not given any proof), it's not a race issue. It's still a bad word that confuses people needlessly and a better name like "default" or e.g. "main" should have always been the right choice. Unfortunately Torvalds makes bad decisions on a regular basis and nobody dares to question him on those because there's some cult of personality thing going on around him.

 
shanrhyupong profile image
Olyuenhyang

Totally agreed.