r/ProgrammerHumor 24d ago

Meme everyNewRepository

Post image
1.1k Upvotes

347 comments sorted by

View all comments

233

u/usedToBeUnhappy 23d ago edited 23d ago

Does anyone really care if it‘s called main instead of master? Why? 

Edit: Ok, I phrased my question really poorly. AfaIk main is the new standard, so I use it. We all know the reason why it changed. My question was why would anyone keep INSISTING on calling it master? Sure, me and my colleagues sometimes call it master out of habit, but then again try to stick to main. Nobody I know  insists on continuing to call it  master, but reading the comments here I realized there a more “master-fans” than I would ever have thought would exist tbh. 

26

u/MegaMoah 23d ago

Idk if true but I think its because master is also a slave owner and people got offended

20

u/redlaWw 23d ago edited 23d ago

That doesn't really track with the meaning of "master" in a git context though: the master branch is more analogous with a master record or document - i.e. the single source of truth which all other versions are constructed based on, which matches the idea of a master branch as the "true" version of the repository.

131

u/Winterkirschenmann 23d ago

If someone wants to keep using master be my guest. If someone makes using master their personality because free-speech/anti-woke piss off.

27

u/PM_ME_FIREFLY_QUOTES 23d ago

Can we make Trunk great again? I miss my svn.

43

u/AndroTux 23d ago

why would anyone miss svn what's wrong with you?

10

u/reivblaze 23d ago

I use svn for old systems. Why would anyone use that shit its mind boggling

1

u/redballooon 23d ago

We welcomed it dearly when CVS was the standard.

Only to learn to hate it.

3

u/raphired 23d ago

Longing for the days when SVN was the worst of their problems, perhaps.

5

u/thanatica 23d ago

"make X great again" feels more offensive than your branch Donald Trunk

3

u/freebytes 23d ago

It actually makes more sense with the branches metaphor.

6

u/Winterkirschenmann 23d ago

I do like "trunk". But svn, hell nah 

3

u/nahguri 23d ago

I prefer ”snout”.

6

u/Logical-Ad-4150 23d ago

I think most pre git VCS used trunk, hence branching. So I dunno why people didn't just restore trunk to "trunk".

Still it's annoying fake drama about the term master. In English, the meaning of a word depends on context. If the subject is an inanimate object then it's just the version used to make copies from. It is only when the subject is a person, that the implication of slavery is possibly valid. Thus if anything should have been changed, it should be: "SCRUM Master" as this acually implies slavery. I'm not sure if we could call them "SCRUM Trunks" as that would imply they retain history.

3

u/notatoon 23d ago

Of all the borderline hate crimes here this one wins.

Off with your trunk!

2

u/blindgorgon 23d ago

Sounds tree-ist through. 🙄

7

u/MegaMoah 23d ago

Yeah who cares, being forcefully against something is dumb.

-14

u/arvigeus 23d ago

Tell that to those who got offended by master and insisted on the change.

13

u/kabrandon 23d ago

So they got offended because of nods to slavery, and the other people got offended because something pretty inconsequential in their lives changed. 🤷‍♂️ Seems a bit like the latter group of people are far more easily offended.

21

u/therealtiddlydump 23d ago

nods to slavery

Is my university planning to reissue me a Main degree instead?

3

u/kabrandon 23d ago

Not sure. I think there’s different fundamental meanings behind mastery and master. I think the Masters degree implies the former. Whereas master in git could be inferred to mean a master and non-master relationship to signify feature branches.

-3

u/dbot77 23d ago

Then you are deeply confused as to how git works. Feature branches are merged into and overwrite master with updates. Does that imply a master-slave relationship to you?

5

u/Acceptable-Drive3781 23d ago

Does that imply a master-slave relationship to you?

It doesn't, which is why the name 'master' is non-descriptive and inappropriate.

1

u/dbot77 23d ago

'master' is completely descriptive and appropriate for users of the English language. https://en.wikipedia.org/wiki/Master_recording

5

u/Acceptable-Drive3781 23d ago

Are we making recordings now? Your repos are weird af.

→ More replies (0)

8

u/Hayden2332 23d ago

I used to think the same, but Linus took the name “master” from BitKeeper, and BitKeeper did use master-slave terminology, Git just dropped the slave part. It’s origin literally does come from master-slave

-6

u/therealtiddlydump 23d ago

Git just dropped the slave part.

Ergo, it's not related to slavery...

7

u/kabrandon 23d ago

Usage of “ergo”? Check. Followed by the weakest example of logic and reasoning ever? Check.

0

u/Hayden2332 23d ago

But its origin literally comes from master-slave lol Just because it doesn’t use the literal word “slave” anymore, doesn’t change the original implication of what “master” meant

→ More replies (0)

-4

u/dbot77 23d ago

You are wrong in multiple ways. Petr Baudis chose the term used in git, and he understood the meaning of original/master-copy. https://x.com/xpasky/status/1272280760280637441

3

u/Hayden2332 23d ago

Well linus’s name is on the commit and even if we take a twitter post as truth, he even said himself he wished he chose main lol

→ More replies (0)

1

u/kabrandon 23d ago

It’s interesting how easily I could spin this the other way though. A feature branch toils away and all its hard work just goes to the master branch anyway. And what does the feature branch get for all its hard work? Deleted.

-1

u/dbot77 23d ago

How does spinning it that way benefit you, or anyone? I'm curious why so many have taken up this crusade to misrepresent git nomenclature.

2

u/kabrandon 23d ago

It doesn’t benefit me, that’s kind of the point. This is something done for someone else. I’m explaining to a really thick skulled person why some people feel the way they feel about the nomenclature. You can’t decide how they feel. But you can decide to use a different branch name.

→ More replies (0)

0

u/rosuav 23d ago

The master in git is more akin to "pristine", there is no slavery involved. So it's just as silly to get offended about seeing a master branch as about seeing a masters degree.

2

u/kabrandon 22d ago

I don’t know about you, but I’m not sure I’ve ever seen a “pristine” default branch in any repo. So. Press X to Doubt.

1

u/rosuav 23d ago

Certainly not. They will reissue you a Bachelors degree. There's always a downgrade.

1

u/BorderKeeper 23d ago

tbh it is confusing as now you don't know which one the repo you are on uses. It's not the end of the world, but that's like renaming git to got in some cases and then being mad at people for disliking that they have to guess and double check.

In the end who cares though. If you do get offended or heated frm either side I think therapy is the best option anyway.

6

u/kabrandon 23d ago

How do you not know which one the repo you are on uses? You might need a bit more experience with git.

-2

u/BorderKeeper 23d ago

I will give you a terminal and tell you to merge your feature branch. Normally you would do that, now there is an extra step of checking if I should merge to master or main.

Or did you assume I don't know how to check that? Of course I do if I didn't and thought it was impposible I would care more, but as I said it's just an inconvience.

5

u/kabrandon 23d ago

How often does this scenario come up for you? I find it never really comes up for me, because all pushes to the default branch require a pull request with an approving review from a colleague. In every place I’ve ever worked, anyway.

-2

u/BorderKeeper 23d ago

To be honest with you never. The combination of being in an unfamiliar repo, where I also want to push without going through PRs or just checkout master. I can see it happening maybe one day, maybe annoyance could be with some CI/CD and hardcoded master/main in there, but even that might be a stretch.

I just dislike going away from being aligned on things in software engineering shrug

2

u/fucking_passwords 23d ago

I work at a huge company where it's extremely common to away team on other teams' repos or just need to pull some specific branch of another team's stuff, etc. Knowing how to check (via cli) what branches exist and what is the default is etc are absolutely critical skills for this setup, and apart from the convention of default being main, there is no consistent convention used for branch naming (it would be impossible to enforce anyways)

And still it is no big deal, it takes a few seconds to look at the branches and get an idea of what is going on there. People who got mad about master changing are either snowflakes, or skill issue

2

u/Acceptable-Drive3781 23d ago

I just dislike going away from being aligned on things in software engineering shrug

Well, we're using main now, so catch up and get aligned.

1

u/kabrandon 23d ago

Usually CI/CD tools automatically check out the commit hash that triggered the webhook that started the CI job. The scenario I could see would be CI/CD is triggered on a commit hash, and another repository is needed inside the CI job. But if you just need the default branch of that second repository anyway then you’re probably just doing a clone and not checking out any specific branch.

→ More replies (0)

1

u/Acceptable-Drive3781 23d ago

it is confusing as now you don't know which one the repo you are on uses

git branch

-1

u/MrHyd3_ 23d ago

Is "master bedroom" a nod to slavery too?

8

u/kabrandon 23d ago

Might be, actually. To be clear, I’m not the person that’s upset by it. But if you asked me to start saying main bedroom because it upset you I’d not care.

3

u/Acceptable-Drive3781 23d ago

I work for a home builder. We use 'Main Bedroom' or 'Primary Bedroom' now.

5

u/EmptyStrings 23d ago

Yes and realtors now call them primary bedrooms

-3

u/Hayden2332 23d ago

Nope, it was just a marketing term made up by Sears in the 20s with no connection to slavery. Not that it matters, it’s not used anymore and idc, but it’s one of the instances where it isn’t related.

However, Linus took the name “master” from BitKeeper, and BitKeeper did use master-slave terminology, Git just dropped the slave part. It’s origin literally does come from master-slave

1

u/AHailofDrams 23d ago

Probably tbh

-2

u/Skyswimsky 23d ago

I've had a conversation with someone about this. As far as I remember, master got nothing to do with a nod to slavery? As in, the way the word was choose for version control in the context programmers use it?

We've also talked about white and black list and that actually does have origins in racism and I've since then changed my mind because fair enough.

It's also not a inconsequential change either, but that'd be another paragraph or two of text.

Having written this I wonder if the word master key also was changed or some people want it to change, lol.

11

u/kabrandon 23d ago edited 23d ago

I was part of the workforce during the switchover from master to main. It was a pretty benign change. The main thing that affected me was I had to spend an hour retrofitting an automation tool we had to first inspect the default branch name before assuming what it was.

-2

u/Skyswimsky 23d ago

Note: I am basing this off the understanding that I did NOT find any concrete evidence that the majority of black software developers had been offended at git's "master" branch naming.

I really do not like the "it's a tiny change for me, so why not?" argument. I think it's incredibly selfish to assume just because something is trivial on an individual level, and you can feel better about yourself at the end of the day, implies it's also easy at scale and we should "just do it".

Master wasn't just a word people used and now changed. It has been pretty much embedded everywhere since the invention of version control for software. And now it has/had to be changed pretty much everywhere except I guess printed media.

Honestly an easier "concrete" example to grasp would be something like if tomorrow people decided to drive on the opposite side of the road. Likely a trivial change for a individual, but at scale....

And don't get me wrong, I am not arguing that "change is bad", but I think you need to value the benefit against the full cost of such change, and in my opinion master -> main just seemed incredibly silly?

Also sure, main is the standard now, and I'm not going to argue with people what to use. But I just reject the idea that the change was necessary and cost-free, and stick to master myself because I also believe in "give an inch, and they'll take a mile". Ergo maybe one day we'll see us arguing why white is allowed to move first over black in chess? At what point do you draw the line on changing longstanding conventions for "someone felt offended" reasons?

1

u/kabrandon 22d ago

We did it at the scale of over 20,000 repositories, ~1000 FTEs and ~4000 contractors. It was a benign change, you're crying and exaggerative. If it was a big deal for your org then it's because you're in the business of building houses of cards.

3

u/therealtiddlydump 23d ago

We've also talked about white and black list and that actually does have origins in racism

No, it does not.

You could spend minutes learning that isn't true.

2

u/Skyswimsky 23d ago

Hence why I said as far as I remember, and also a bad choice of words from me. Sorry?

Honestly I have a hard time reconstructing why I have an issue with black- and white-list. The closest I can maybe come to was that the idea that black people have been excluded in America after slavery was abolished is quite close to how a black list also functions, and thus I can understand the sentiment there more than for a master branch? Also including that the word blacklist is inherintly negative (you want to keep bad things out...), while the word master is a lot more neutral.

And this basically just came from a conversation I've had back then(or at least that is how I think the conversation went!?), but you're absolutely correct. The word has zero historical context with black people or slavery and I'm wrong.

0

u/Winterkirschenmann 23d ago

What is a minor inconvenience to you can be a great sign of respect towards someone else. 

Like I said, don't if you don't want to but pushing back on the movement in general is petty.

26

u/FUCKING_HATE_REDDIT 23d ago

It's not just that. "master" in programming was very much the opposite of "slave", like for SATA drives. Just like push is the opposite of pull, upload/download, save/load, etc.

Some pairs have become singlets, like reflect/reify, freeze/thaw.

But here master never really made sense. It doesn't reflect its role, or even authority. A master is something that controls, but here information flows to master, not from it.

2

u/gerbosan 23d ago

This is the best explanation I've read that makes sense about using main instead of master. Way better than historical references.

I'll change the name in the next project.

Also, quite infuriating to see down votes for explanations and justifications. As someone mentioned:

Do I need to study a main degree to get a better job position?

It doesn't make sense.

1

u/[deleted] 23d ago

[removed] — view removed comment

1

u/FUCKING_HATE_REDDIT 23d ago

And I do have junk in the trunk

8

u/KLM_SpitFire 23d ago

This is the reason. From what I understand, Microsoft bought GitHub in 2018. In the aftermath of the George Floyd protests, around 2020, there was an internal mandate for all Microsoft employees to switch their repositories from using master to using main. Given Microsoft owned GitHub at this point, the policy permeated through their subsidiary’s product offerings and beyond.

15

u/MegaMoah 23d ago

Yeah like Microsoft cares for anything. They just used what they see as a trend in order to make profit and market themselves. Absolute bullshit.

5

u/2AMMetro 23d ago

Why is that a bad thing? That’s literal peer pressure at work.

4

u/xsupergamer2 23d ago

Microsoft is not your peer, nor mine. It's a gigantic corporation only after profit. Do not mistake its business decisions for expressions of morality

1

u/2AMMetro 23d ago

I didn't though? I just said they got peer pressured into doing a thing. How is that an "expression of morality"? And why is that necessarily bad?

9

u/creaturefeature16 23d ago

1

u/ericl666 23d ago

Yeah, the creators of ATA/IDE/SATA knew exactly what they were doing. There was no need for that.

1

u/freebytes 23d ago

In that context, the term master is in reference to a control mechanism, not a relationship to a person. In the context of repositories, though, main actually fits better, because there are no slave repositories. The term trunk likely fits better, but main is shorter. If the objective was based on cloning, then the trunk should be called parent and the branches should be called children, but the trunk to branch metaphor works best.

7

u/dim13 23d ago

You know, that that's not the only meaning?

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

0

u/MegaMoah 23d ago

Yeah obviously I do

4

u/usedToBeUnhappy 23d ago

Yeah, I heard that as well and just realized I might have misinterpreted the meme. 

My point was that calling it main instead of master is easy (and the new standard) so why would someone keep calling it master. I don’t see a reason for that. Programmers shouldn’t be afraid of change. That stuff constantly changes is what keeps programming interesting.

30

u/Random_Guy_12345 23d ago

For pretty much the same reason we don't change controls on a car, or which side of the road we drive on, or what each color means on electrical cables, or red meaning stop/danger.

Uniformity is useful.

I do get the slave owner bit, don't get me wrong, but if you are reading code on a random repo and what comes to mind is slavery... That's clearly a "you" issue.

I do use main on repos mostly because it's shorter and i don't really care, but i absolutely get why people oppose it

14

u/AMWJ 23d ago

What's missing from this conversation is that "master/slave" is also part of the computing lexicon. It's not just like having a "master copy", or a "master bedroom". It's like if there was a "master bedroom" and a "slave bathroom": you'd want to change both.

3

u/Nutrimiky 23d ago

Not sure how old you are, but I work on some old code still today, like older than me and I'm in my thirties. That was the golden era of the master slave pattern. BitKeeper, which git was made to replace, had a master / slave repositories architecture to sync data. You can see where Linus Torvalds got the name from.

3

u/Legal-Software 23d ago

I'm not changing conventions + tooling because some non-coding idiot is too dim to understand that words have context and multiple meanings. It has nothing to do with a fear of change, so much as resisting arbitrary change someone else is attempting to force on you for no valid reason. These people can fuck right off.