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

Reminds me of when GitHub stopped using "master" for the default branch because it was somehow offensive.


When I built a distributed system, I wanted to avoid the terms "master and slave" for the "coordinator and worker", so instead I chose something I thought was relatively less controversial- daimyo, honcho, and peasant. Only later did I realize I had merely recapitulated the power structure of feudal japan.


I prefer sovereign and vassal. No one has called me out on it.


My opinion:

`main` is better. It's shorter, it's more descriptive, and costs nothing to remove something someone might find offensive.

It's pretty much an all around win.


>costs nothing

The communication cost of the change is not free. Do you think the internal wiki and new-hire git training materials all updated themselves?

It wasn't a large process change. Most of our git users are competent git users. But I billed hours dealing with it.

I still have people here who haven't touched a repository that uses "main" instead of "master". They have better things to do with their lives than lurk social media focused on programming. They don't know yet. Eventually they'll pull something with "main" instead of "master". Can I get your phone number so you can be the one to explain to them?


> costs nothing to remove something someone might find offensive

But there is a cost. You're losing a battle in the war of free speech vs Orwellian thought control.

The woke (an offshoot of last-wave feminism, currently promoted mainly by the control-left strain of the Democratic party) are lying; they're not actually offended, they're just using that as an excuse (propaganda) and as an emotional appeal, to get you to agree to their arguments, and cede power to them. This is most obvious with "Latinx" which is pushed by white journalists & activists but which isn't even supported by the overwhelming majority of Latinos and Latinas in the US.

https://en.wikipedia.org/wiki/Latinx

Don't believe me? Listen to what they (the woke) say themselves!

> I wanted to start by focusing on the obvious one, Its harder for them to object to just one to start with, then once they admit the logic, we can expand the list

from https://scottaaronson.blog/?p=4450


I don't think Latinx is a good example. The GP mentions there's no functional cost to `main`, and this is true. Latinx has a functional cost in that the Spanish language literally does not support the phonetics of Latinx.

That phrase is going to die soon and it never picked up in Latin America. Most likely the queer community in Latin America will come up with more effective slang. It took the US queer community decades, a century? To reclaim and come up with effective phrases -- I think the main issue here is lack of patience and a somewhat condescending attitude from American liberals that we, the actual hispanic diaspora, need our hands held.

There is also what I've argued is a hierarchy of needs issue at play with LatinX. The problems facing the queer community in Latin America are more severe than those facing the US community, because it is a younger community in a more conservative atmosphere. Therefore, the effort is better spent advocating for table stakes, like marriage equality in some countries and reduced violence towards queer people -- there is no time to be wasted, right now, on the exact, precise terminology to use. And LatinX is not a way to win hearts and minds in this process.

Edit: this is NOT support for Google's product, which clearly broken and not useful. This is an explanation of why LatinX specifically is not a good counter-example to `main` versus `master`. I hope this pre-empts someone coming in and calling me all 'woke' or whatever is the cool phrase for dismissing people these days.


"Latinx" isn't meant as a counterexample to "master/main", it's meant to demonstrate that the woke don't care about preventing offence, but instead about power, even if it means enforcing non-sensical policies; the fact that Spanish has no "x" further reinforces my point.


On a data driven platform of all places, we should be able to mutually acknowledge that one Tweet does not a pattern or movement make. I, too, can raise anecdata that I've never seen someone justify LatinX as a move to gain power.

The fact the term is dying further reinforces my point: it failed. No power gained. Does optionally calling master 'main' give people power? Do you really believe that? As far as I can tell, the 'wokes' you are so afraid of seem to be failing pretty often recently. If I believed in the existence of the 'woke' monster under my bed, and they had this track record, I would simply ignore them.

Did 'wokeism' stop Disney from losing its special tax status in Florida? No.

Did 'wokeism' stop Texas from passing laws restricting transgender students and their families? No.

Did 'wokeism' stop the abortion bounty laws from passing in Texas? No.

Has 'wokeism' prevented the recent book bannings across the US; for example, the recent banning of math books in Florida? No.

Was 'wokeism', the root of this Orwellian system you propose will engulf us, the reason why state government in Florida censored the phrase 'climate change' in state congress? I would be very surprised.

Who exactly is gaining or losing power here? And why are you so adamant that the culture war will somehow involve GitHub?

I simply cannot wrap my head around it all.


Its worse because suddenly 20 years worth of tutorials are slightly 'wrong' and will confuse new users even more for no reason.

"Why does my git say main and not master? Did I break it?"

"Why cant I push to master like the 100x tutorials show? I get errors!"


Chesterton's Offence: Before we change a word, we should first understand why it was there in the first place. :P


This is when Ministry of Truth comes into play. The main character's job in 1984 was literally this: rewriting history when it came into conflict with the updated "truth". Orwell didn't foresee that in a world of computers, such updates are trivially made: no need to reprint newspapers and books, since all of them are virtual.


Master character.


This is tech. 20 years of tutorials are always becoming slightly wrong.

Don't tell me you're still using bare pointers, `new` and `delete` in your C++ classes instead of using smart_ptr fields, or explicitly declaring local variable types instead of using `auto`...


They were responding to the claim that the master -> main change has "no cost", which is clearly untrue.


It's an amortized zero cost because training material is continuously out of date and churning anyway. Amortized in the sense that the cost would be paid one way or the other, because people would still be updating their documentation.


You can make the same argument about breaking changes. Code is constantly changing and needs to be updated, so breaking backwards compatibility is zero-cost?

In reality each change that requires updates to documentation (or code) is of course not actually zero cost.


Not only can you, we often do in the circles I've run in.

Adapt or die is the motto out here.


> Adapt or die is the motto out here

This is pretty much the view of the left now :p


Refactor mercilessly.


Does this mean we should never make progress or change anything?

Also if your tutorials are using a base repository to work from, then you can still have the branch "master" it's just not default. So your existing repos should still work. And if you changed your repo then you should be responsible for updating your documentation to reflect that. It's just good practice.


I fail to see how changing the names from "master" and "slave" makes any "progress" at all. What is the most concise way to express the idea that one entity is totally subordinate to another, and must comply with every request the other sends?

I struggle to come up with any two terms that make this more clear than "master" and "slave". Just because we've abolished chattel slavery, doesn't mean we should avoid the very words themselves when they are appropriate. Destruction of meaning is far worse than some abstract offense that doesn't seem reasonable to take on behalf of a computer process.


What about giving master a new meaning? Actively banning it conservers its original meaning. Probably nobody today thinks about woman sitting in a room doing calculations when we speak about computers.


The mental model of how you use a certain branch could indeed be best expressed by the word "main", so no one can say the word isn't the best one for you to use.

But a master copy or version of something like a master recording or gold master for pressing records is different from merely "main".

Applied to software they are similar but not identical concepts, and neither is in any way wrong or harmful to anyone.

It's a small enough issue that it's not worth fighting very hard over, but, the rationale for the change, and especially for anyone trying to tell anyone else they have to do that change, is still invalid and the word master actually applies better if that's how you're using that branch. It has nothing to do with slave bosses.


But main also might be offensive because it's implying one thing is more important than another and some marginalized people who have not been the main group of people may not feel great about that. Really we should use one and two. But we should also be careful and should convene a working group with broad representation to come up with a more inclusive term for this.

See how this works? It is also definitely not without cost. It is not free to change all of your documentation and you will inevitably have to be exposed to it anyway because not everyone will have changed it, so it's ultimately not doing anything anyway.


> `main` is better. It's shorter, it's more descriptive, and costs nothing to remove something someone might find offensive.

All of these are true! I agree, "main" is a better name.

However, as to the larger point, the individuals and groups advocating for these changes also don't advocate for similar changes (that is, things that have good benefits but come with a very high cost to implement due to breaking backwards compatibility) around technologies/terms that they don't consider to be "problematic".

That strongly suggests that the driver isn't to improve technology, it's to shape language, with occasional incidental technological benefits - and the ignored technological regressions (it's harder to say "allowlist" than "whitelist", for instance, or to write applications that have a field to place in the user's preferred pronouns than just not address the user using pronouns at all).


> However, as to the larger point, the individuals and groups advocating for these changes also don't advocate for similar changes (that is, things that have good benefits but come with a very high cost to implement due to breaking backwards compatibility) around technologies/terms that they don't consider to be "problematic".

I actually know a social-justice oriented trans woman online who strongly advocates for the use of Tau instead of Pi because it is simpler and easier to learn. So sample of 1 there.

Tau vs Pi is a perfect microcosm of this debate with the social justice arguments removed. See also metric vs imperial.

The benefits are small but non-zero and localized to a handful of people, the new terminology is substantially simpler and cleaner, and the costs are primarily related to inertia and the comfort of people experienced with The Old Way.


I had a script that broke because someone changed master into main, put in an equation the 100 people that got satisfaction from this change and the tousands of people getting frustrated because of it.


I don't mind "main" for the main branch but for existing projects...

> costs nothing to remove something someone might offensive

It might break scripts, aliases, and any general automation (CI, etc) with a baked in main branch assumption


So let's say they Christians decide "git abort" is offensive, do we remove it. And then group X decides term Y is offensive, do we remove it?


Your point makes sense, but it wasn't the official explanation.


Someone somewhere will be concerned by the literal words you speak, or the way you say it, or what you actually meant, intended or unintended. They will do it with good intentions or not, and no meaningful discussion will occur because it would be shorter, cost nothing, and offend no-one if you just let them win.


Except for the decades of documentation, blog posts, etc. that will now cause confusing to newcomers.


Except that it broke all my fucking scripts that use git


No. It is just meant to trip up and confuse people so that they can be re-educated.


My best friend was killed when a water main burst, and every time I am forced to use a branch named ‘main’ it causes me immense psychological stress.

Since you suggest it “costs nothing to remove something someone might find offensive”, I propose it be changed to something else instead of main.

\s


Main is offensive because it sounds like man and spells like man.

Here you go…


Reminds me of when GitHub kicked out a paying customer for using the word "retard" as a verb in the mathematical sense.


had to look that up

Retarded differential equations (RDEs) are differential equations having retarded arguments.

https://www.sciencedirect.com/science/article/pii/S037704270...


And quantum physics has degenerate energy levels.

https://en.wikipedia.org/wiki/Degenerate_energy_levels


Large planes tell pilots vocally to “retard” when landing…


Which can be amusing if you don't know what's going on, it suddenly sounds like the autopilot is pissed. https://www.youtube.com/watch?v=vmbzKsqKQoI

And for those who would like to change this, any change to a pilot's routine has a chance of being the thing that pushes an incident over the edge into a crash. Would it be worth it?


I would predict that the same people who say we should defund the police (the ones that mean it literally), and say that "being on time", "work before play", and "be polite" is part of the white oppressive culture[1], and needs to be dismantled, would also argue that flying, and the methodology of the NTSB (and foreign equivalents) that has reduced airline accidents of the decades, is also part of the structural racism of white dominant culture.

I'm not saying this is a large set of people. But it looks like some of them have power at github.

I guess if you're doing software for the airline industry you cannot use github.

Well, honestly I wouldn't use github for anything if money depended on it, because of their record of "firing" customers who don't toe the line on their exact politics.

[1] I'm quoting training material that even passed HR review in corporate education DEI here. It's not hyperbole.


I'm waiting for companies to demote anyone who had a promotion based on having a master's degree.


And the world moved on, nothing exploded and new generations will be used to 'main'.


Actually quite a lot of things exploded. You just don't care about the people who had to pick up the pieces. Moreover, lots of git repos still use master so "new generations" will just have to do deal with pointless divergence and breakage for nothing. The change wasn't progress. It wasn't useful. It didn't stop anyone being offended. It was and still is pure make-work for absolutely no purpose beyond the demonstration of power over irrelevant things.


Main is better. Master/slave has uncomfortable connotations. This one isn't a big deal.


Just FYI, it's Master as in Master record. This is different from database terminology where there is a master and slave.


Oh that is neat thank you


> Master/slave has uncomfortable connotations

Why? I think that slavery is bad only if the slaves are people. I want machines to be my slaves! (non-sentient machines only, dear future AI overlords!)


This counterargument is cute, but realistically if ever comes the day that slave feels like an appropriate term to use for my machines, I think I’ll still be a bit queasy.


Because the idea of a slave has immediate connotations of people being enslaved. I'm not talking in some broad philosophical sense of rightness, I mean it brings to mind, for me, thoughts about human slavery that are uncomfortable.


So what? Are we going to find a new word for "driver" because it brings to mind being driven to do something, without autonomy, perhaps against your will too?

Are we going to remove "duplicate" because we can somehow imagine that genetically identical twins are offended by this?

Are we going to remove "admittance" (inverse of impedance) because people will be uncomfortable when reminded that they weren't admitted to their first choice institution?

These are all equally ridiculous to the master/slave debacle.


Those are all ridiculous examples because they are purely hypothetical, but you're missing the point; if enough people felt strongly about those then yeah, we'd probably change the way we talk.


I agree that "main" is better, purely because it's a more intuitive word for that role.

As far as "uncomfortable connotations", would you agree that that's a subjective claim?

I don't like that forced slavery is a thing, but I'm capable of handling context-specific word meanings, and of not getting emotional due to alternative meanings.


Of course it's contextual, it's not an absolute claim on truth. I'm not talking about a hypothetical, I'm talking about real feelings.


Slavery was horrible and should not be forgotten. Erasing all related words so that we can all comfortably forget it ever happened seems … wrong? That’s another way of looking at it, anyway.


How is that erasure? It's ok to change your word choice, and I didn't think slavery being an uncomfortable topic was uncommon until this thread.


Can you please not use the word s____? My ancestors were Slavs, and when I see the word it is a painful reminder of how they were treated as property by Romans who bought and sold their "ex slava" captives.

Your use of the word is violence.

/s?


Where is the slave in git?


There is no "slave" in Git, but the term "master", like many things in Git, is taken from BitKeeper, which did have a "slave". Or so I've read, for example here: https://english.stackexchange.com/questions/474419/does-the-...


There isn't, but if you are going to learn about computers then you're going to hear a lot about master/slave relationships. If you don't get exposed to that kind of jargon then it wouldn't surprise me if you don't have that connotation as strongly and instead only thought of master as in "mastery" or the degree after a bachelors.


If you support this, don't complain when you're found guilty of thoughtcrime for something that seems normal and natural to you.




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

Search: