That said, this is slightly ridiculous. Have customers seriously complained about the term "master"? And my impression was that the usage was more similar to "master copy" than "master of the plantation".
Honestly, it's frustrating to me that companies are willing to take token actions like this that are almost completely irrelevant in the scheme of things but unwilling to lose profit by, for example, not contracting with ICE. Actions like this feels like veiled advertising, even when, as I'm sure is true in this case, there are genuine motives behind them. It seems like the structure of corporations allows only the genuine intentions that require little sacrifice to be acted upon.
It's a stupid subject to have a flame war over, but I don't understand the logic at all.
Master represents the final version of a component or software which ends up in production. It is the same meaning as an audio master (https://en.wikipedia.org/wiki/Mastering_(audio))
If the word master is considered evil, then what would happen to a Master Degree ? or Dojo Master ? Words have different meanings in different context, let's focus on changing language that changes the way you think.
Platinum degree is a far more neutral term! Wait... No, my PC adviser has just informed me it is unethical to discriminate on the inherent values of precious metal...
Excuse me, I did not mean to discriminate as to suggest there is a tier of metals of a higher desirability or intrinsic value than any of the other metals. All metals should be valued for what they are, and our language with regard to degrees should reflect that.
Therefore, the formerly oppressive Master's degree shall henceforth be known as the Bachelor's+1 and some research degree...
No, I'm sorry. I've just been informed that due to the Bachelor's degreebeing based on a 12th century term, Knight bachelor, which implied a knight too poor or lowly to gather men...er... People! People under their own banner banner... We'll have to go with the Second Degree and Third Degree's respectively... Oh God, burn victims now? Gods above, wait, monotheists? I mean God... Wait... Then the polytheists, deists, and atheists.... Uhhhhh...
The Orwellian linguistic engineering rabbit hole is a deep and terrifying place it behooves no one to muck with. One can keep the line of those insulted going all day.
I however, have work to get back to doing.
Evidently, this is a relic from bitkeeper which uses the "master/slave" terminology.
1. There are no slave branches.
2. "My impression" was my impression as someone new to git. I'm extrapolating other people, but I think it's fair to say that many (most?) people won't make the connection to chattel slavery.
3. Git is not directly modelled off Bitkeeper.
But like I said, I don't object to people changing the name, but more to people thinking changing the name is important.
Which makes it actively harmful: Anything you do which is even somewhat ridiculous can be seized upon by your political enemies and turned into ammunition against you. They can claim your whole movement is about the ridiculous thing, and use it to derail discussions: "Yes, yes, that point is good, but did you know they renamed something in a piece of software just because it vaguely reminded someone of slavery? Time to talk about that now!"
But all this aside, this would’ve been a no-brainer if renaming the default branch didn’t have other real-world consequences. If it has a possible chance of making people happy, we should by all means do so. However, the proposed change is inevitably going to break many scripts out there that manipulate git repositories and forces additional work for countless people all over the industry. At this point, I think it’s reasonable to rethink whether this is actually going to improve the lives of anyone at all before proceeding.
That's probably true, and it's probably people who didn't have grandparents that were slaves. It's closer in mind to some more than others. And if we want to have CS be more open to the black community, then being sensitive to how words can turn people off is important.
We have solved poverty, work ethics problems in IT, we have great working culture, great salaries, we put demands and employers just throw money and resources at us. We run out of real problems to solve, so as humans - problem solving and pattern matching machines - we found another problem to solve.
EDIT: in case anyone's confused: MC = Master of Ceremonies
I came across an example of this the other day after seeing the word used in a historical text for a class [0,1]. I was fairly certain it did not mean what it sounded like it meant so I looked into it. While the word does not have a definition associated with slavery (that I know of) and is thus arguably further away from the issue than the word master, its phonetics are enough for its usage to result in condemnation.
Lives can be ruined, either from an accusation over a misunderstanding or a failure to recognize actual harmful intent. Vagueness creates friction. To solve a problem there needs be a thorough and precise understanding, and when it involves multiple people there also needs to be a sufficiently common definition.
It's not as if we lack for new things to discuss and argue about.
Although California, at least (possibly other states, it's not worth my time to check), and Canada have Muslim appreciation/history months, and Jewish American Heritage month is in May, as is Asian Pacific American Heritage month.
The terminology of our software architecture, and of our software in general, mirrors that of the real world relationships that they model, reference, or are inspired by. That's a good thing. It helps us understand these systems. It's also true that if this terminology references something we don't like in the real world, we're free to change it. After all, master/slave architecture isn't a perfect modeling of a plantation, it's substantially abstract from that. There are many other relationships in the real world which could be used to describe this architecture.
Terminology is effective when it's stable, so we should be conservative about changing it, but that doesn't mean we should never change it.
Banning words is the real threat to everyones freedom, not just blacks
Shame on every supporter: good intention, maximum naivety, horrible execution.
No problem that can be fixed by changing the default name of the branch created by git init will, in so doing, meaningfully soothe any sincere moral wound.
I'm not suggesting they rename the tool or the github site, but I find it funny how sensitive github mgt can be when their entire name is somewhat offensive.
Now this is all people will think about and if they change the word to 'main' it will get memed and ridiculed and mocked to oblivion because of the huge inconvenience it will cause.
It will have so many unintended consequences.
It solves nothing honestly.
Now even if this catches on, then yeah OK I'll start naming my branches as main unless I want to make a political statement, which would just add to confusion when developing.
Meanwhile these people will pat each other on the back, yell "yeah! We sure made a difference." while black people keep getting fucked by the system and their lives don't get improved one iota.
It's called "virtue signalling," I'm told.
Let's call a spade a spade and recognize that this was a big company trying to sound "woke" without doing anything.
Is the SJW crowd not progressive? Are they not "real progressives"?
Because they can't see this, they're loath to let go of the label in spite of the fact that they're now 'just' liberals.
Left-aligned culture warriors (sjws) are far more deserving of the label 'progressive', and generally the target of teeth gnashing about progressives. This is often taken as a personal, and non-sequiturial affront by those previous recipients of the label.
Doesnt that mean i should align with these sjw types? Personally i find them detestful.
The follow up tweet from the original reqeustor is:
> 1. “Main” is shorter! Yay brevity!
> 2. It’s even easier to remember, tbh
> 3. If it makes any of my teammates feel an ounce more comfortable, let’s do it!
> 4. If it prevents even a single black person from feeling more isolated in the tech community, feels like a no brainer to me!
1 - Not sure that's an important reason, why not change it to just "M"?
2 - Not for people who are already using git and have lived their entire lives on master (or for those more considerate developers, have lived their entire lives PRing into master)
3 & 4 - This is what I'm talking about, is there anyone who is actually feeling isolated and uncomfortable, or are there just a load of white people who have focused on literally the most unimportant aspect of being a black person in the tech community?
I'm a POC in the tech community and couldn't care less about "master" being problematic. The tweets you quoted likely came from a white person who thinks a little to highly of themselves and want to go after low-hanging fruit.
Want to make a difference for POCs and Black people? Vote the racists and profit-driven politicians out of office this November and replace them with people who are more qualified to lead and actually care about the public.
They're still politicians, right?
Seems that way. It's actually offensive to suggest that such a person should be offended in the first place. It's a "we know better than you and you should be offended" attitude.
And in fact, at work, we use both git and mercurial, and they have slightly different terminologies. In particular, git's "master" is mercurial's "default". The result is that we are sometimes mixing the two. And we naturally ended up calling the master/default branch the "main branch" with the understanding that it is "master" in git and "default" in mercurial.
That we naturally came up with this name means it is a good name. And because it is the shortest, it has my vote.
That you are all used to "master" is no excuse either. There are other version control systems than git, and "master" is not a universal convention. In mercurial, it is "default", and in SVN, it is "trunk". If you are a professional developer, you are probably going to use several different VCS during your career, and it is not a good thing getting too attached to "master".
The main problem I see with the change is that if you are just getting started with git, most training material will refer to "master", and having different conventions can make things confusing at first. Of course, experts know that there is nothing special about "master" and can adapt to any situation, but beginners need guidelines, and we might as well make them consistent.
If you are going to help, actually do something that improves the lives of people. Maybe, you should really put some effort into beefing up the Computer Science programs in black high schools and colleges? You are Microsoft, and had a damn policy of only hiring people from certain schools for certain job areas. In 90, one of your damn reps told a classroom of students that they were only good for "help desk" positions because of the school they went to. I'm betting some all black colleges were not on the hire list for actual developer jobs.
Actually doing something useful is hard, this is just signalling how cool you are.
Wouldn't focusing on fixing this situation be more beneficial than reinforcing it?
Yes it is "still a thing". They are mentioned in legislation as Black Colleges. It was an extremely big deal this year when Black Colleges were successful in lobbying for Title III funding. In fact, they are listed officially as Historically Black Colleges and Universities (HBCUs). Native American's higher education institutions are referred to officially as Tribal Colleges and Universities (TCUs).
So, yes, that is what they are referred to in legislation, so stop trying to imply someone is not using the right words. It really ticks me off when people wordsmith but don't bother actually engaging or knowing any of the history of the people they are being offended for.
Maybe if you stopped implying racism where none exists, we would have a better world.
I am not american and never heard about a "black college" before. Are those words (along with the TCUs you mentioned) used for historical reasons, or is there still segregation (wether legally or de-facto)?
The meaning of my second question was actually that I disagree that "beefing up the Computer Science programs in black high schools" will help much beyond a little short term relief. Efforts should focus about understanding and fixing the systemic problems, not the symptoms.
Of course most of the real divides come down to income class, which is part of what should take an emphasis in terms of possible distribution of education funding.
TL;DR, the reason why these exist is because of historical discrimination against black people in college admissions.
While there is much less discrimination in admissions today then there was in, say, the early 1900's, these colleges still have a strong presence in the US today.
And to your point, yes I think we all (or at least most of us) want to live in a world where we don't need race-based communities or institutions, but because our country still suffers from extreme race-based segregation and inequality, IMO it still makes sense to have these active support structures in place.
What they should be doing is scholarship and mentoring programs to increase the base if that is their real goal. But that takes actual effort and costs real money.
What it does do is make a few people feel better because they are misinformed and so other things like education would be a better solution, something like "there's no need to feel bad about this word, and here's the logic about why."
Hell, switching your Amazon account to one of those smile accounts will do more good than signalling.
You're complaining about indulgence! You're saying that this change won't help people as much as something else. This is a fair criticism. Changing some technical term is probably not a optimally utilitarian use of resources.
However, while you may be trying to live an optimally utilitarian life, the rest of us aren't. I can only speak for myself of course, but evaluating all my life's actions on only that axis is too strict for me.
But, like I said, if you want to do that: props.
It would be fine if it just made them feel good, but it substitutes for efforts that would help. Its a personal indulgence taking energy from a system when more is needed. It also is a distraction from actual issues. Nothing is often better than something.
> However, while you may be trying to live an optimally utilitarian life, the rest of us aren't. I can only speak for myself of course, but evaluating all my life's actions on only that axis is too strict for me.
Yeah, this is wordplay that has nothing to do with me.
Utilitarianism is a philosophical framework. It's not for me, but based on your comments you might be into it:
It would be fine if it just made them feel good as people's mental health is an important thing that too many ignore. But, this will suck attention away from people who are actually doing things that will help people. The world has only so much time to pay attention, and that time is valuable. Microsoft is just adding to the noise.
They are bringing homemade cupcakes to a food bank and making the national news.
What I care about is that this will inevitably lead to companies and individuals that, for any reason (due to having the name "master" hardcoded in a lot of scripts, for instance), do not make this change in their repositories being labeled as being pro-racism.
We all know how this goes.
This insanity just grows every single day. The purity policing grows ever more intense. It's making my world view bleaker by the minute.
I’ve never considered “master” branch anything odd, saying “master copy” makes sense. What about music? “Remastering” something... or the terminology around mastering a skill?
Things are a bit out of control. As people say if you look at that term and the first thought is race related that’s on you.
I could see a desire to remove the word “slave” from any replication business. Since the “s” word is directly loaded. But the “m” word has many other definitions outside of that.
I understand these things stem from a place of discomfort with the racial crisis in the US - and I applaud the intentions.
However, these requests are not inclusive to:
- The foreigner in your team trying to think and communicate in English, while tip-toeing around whatever was deemed offensive this week on Twitter.
- The developer in Botswana trying to keep up with this week's terminology changes as dictated by Twitter influencers in the US.
I dread the day when someone gets in trouble for saying "Hey guys, I added the URL in the whitelist and pushed it to master"
The only reason someone would, is if they were repeatedly told "hey can you use this term instead?" but they kept using those intentionally to annoy others.
But the use of master here is from 5 b: an original from which copies can be made
especially : a master recording (such as a magnetic tape)
There is no implied slave.
It's derived from masterpiece. Something that a master craftsman has created.
Master has many definitions and usages. Master of a slave is only one minor usage.
Master/slave are pretty commonly used terms whenever we talk about things like distributed systems and communication buses. Essentially everywhere that one process, controller, computer, etc. is meant to have authority or control over some other entity or entities, this is often described as a master-slave relationship.
However I have always felt that the word “slave” (as the counterpart to master) was/is a mistake. It seems to be a relic of the past where people weren’t really thinking through the terminology they chose.
More modern approaches typically use other word pairs, like master/minion, sever/client, active/backup, master/agent, etc. Different pairs are chosen that better describe the relationships, and I suspect those choices were made, at least in some way, to avoid using the term “slave”.
But in this case, there's not even a slave branch.
I suppose this is something I don't understand. How do terms become trivial when used in separate contexts? They are simply descriptive terms. Furthermore, from an etymological standpoint, the term "master" has been used to signify preeminence since the 13th century. E.g. master's degree, master-key, master copy, etc. This is the meaning that seems more applicable to a version control system.
But I'll try to provide some insight into the argument specifically regarding master and slave used together.
> How do terms become trivial when used in separate contexts? They are simply descriptive terms.
This is where I think you are incorrect. Master and slave are not simply descriptive terms. Pretty obviously, they are an analogy, just like, for example, male and female plugs. The point of analogies is that they use existing relationships to describe new relationships, so that understanding the new relationships is easier.
So I think the issue for some people is that in master/slave architectures, the master node neither brutally beats the slave nodes nor justifies its power through a theory of racial superiority. Maybe a more accurate analogy would be that one node is the leader and the others are the followers. Maybe we should only use the master/slave in situations which are actually comparable to the historic instances of chattel slavery. Plus, an updated analogy can better serve the purpose of describing relationships. In the context of databases, for example, primary/replica or master/replica are IMO both much better analogies than master/slave.
Sure you can argue they are simply descriptive terms. But if that's the case, why did engineers choose existing terms in the first place?
May seem like a silly gesture to some, but imagine feeling an emotional trigger every time you had to use a basic tool for your job. That'd piss me off.
However, if not, it looks like a cynical publicity grab in light of recent headlines.
I think you can say "that people are arguing about it makes it significantly political".
I don't think you can say "that people are arguing about it makes it a meaningful thing to do".
Why is this so upsetting?
...because I don't want to be paying the externalities (workflow changes, having to keep up with the new "correct" naming) caused by a game of "who can be the most woke" between a vocal minority of progressives
Your second bullet is an argument against this change from the position that it's an unasked for burden. In general, I get that. In the specific context of software engineering, it's a little more surprising. Tools, APIs, interfaces, terminology, etc... are in constant flux. Software has to be actively maintained to be kept functional. Software engineers have to always be learning in order to keep current. A vendor changing something like this is par for the course, right? Why such an extreme reaction?
>A vendor changing something like this is par for the course, right? Why such an extreme reaction?
I'd be similarly pissed off if an upstream API provider suddenly decided to change all their identifier names for stylistic purposes. eg. the CTO woke up one day and decided that all of their API endpoints should be changed from camel case to snake case.
Does/did slavery only affect black people?
It’s really tiresome to see companies and celebrities voice support for equality, freedom, human rights in America while staying quiet (and even telling people to keep politics away from their platform) when it comes to the Hong Kong protests.
donate the cash equivalent to the engineering hours required to make and test this name change to BLM instead, and get something of actual consequence done.
Dear friends, do you think you’ll get anywhere in this if you learn all the right words but never do anything? Does merely talking about faith indicate that a person really has it? For instance, you come upon an old friend dressed in rags and half-starved and say, “Good morning, friend! Be clothed in Christ! Be filled with the Holy Spirit!” and walk off without providing so much as a coat or a cup of soup—where does that get you? Isn’t it obvious that God-talk without God-acts is outrageous nonsense?
This isn't the same thing as a government censoring opposition or 'insults' to the dear leader.
That's really scary!! In long run, you lost the freedom!
Don't use moral or ethics to replace law. Otherwise you are using thought police to replace police.
edit: not to mention 30 years of:
if branch in ['master', 'main'] ...
To address systemic racism, we need to change people's preconceptions and prejudices. These are things that are picked up and learned from other people in one's environment. Removing these words makes them even more intangible than they already are.
Creating prejudice is easy to communicate. Removing it, on the other hand, is an "absence" of something, which is much harder to get across linguistically, semantically and emotionally.
I'm not suggesting it's a good point, I'm just pointing out that there's going to be a lot of renaming to do.
I wasn't really trying to make a point there, just wanted to be (arguably) funny.
Unless git changes its default branch name to something else, isn't Github's approach futile?
When you "git init", git creates the master branch locally.
And then when you push, I sincerely hope GitHub wouldn't somehow rename that branch to something else...
I'm certain that most people would see renaming master to main as fairly benign. However. if a company like Github can be open to making a change like this, even if it is purely symbolic, it sends a message that changes to the status quo are possible.
I've also seen some comments complain about the technical difficulty of this change. If this forces developers to put some effort into updating tools that are hardcoded to refer to the primary branch as master then it's good from a purely technical perspective. Especially to help those of us following trunk-based development who already refer it as the trunk.
Software engineering is incredibly diverse. There are many East Asians, South Asians, Middle Easterners, and people from underprivileged backgrounds from former Soviet block countries. It also has a relatively high percentage of just unique folks.
Software engineering also has a diversity problem with respect to female, Latino, and black engineers in particular.
I'm just pointing out that "overwhelmingly white" is quite inaccurate.
I don't often comment on things, but this seems like a slippery slope and a process that I'd like to counteract in some way, so input/comments are welcome. Original comment copied below:
I'd prefer it if things didn't change, including the master/slave terminology (the 'master' branch doesn't even have a 'slave' in git...)
Have the words themselves become bad to use? It seems that this is a USA centric view anyway with its history (and even then it seems ridiculous--why can't these things be compartmentalised as technical terms?)
Slavery certainly still exists in the world, and has existed in most places at some point. Should we rename 'slavery' to something else too while we're at it? Or forget it exists and existed?
Certainly certain terms become antiquated over time, like the vocabulary used in Emacs (yank/buffer/etc vs cut/window/tab/...), but master/slave doesn't seem to be there yet.
I wonder if there's some way to counteract this newspeak stuff? I think it's harmful that these things happen for such frivolous reasons. Does one just have to be as loud as the minority that drives these things, to counteract it?
This is outrageous!
I don't mind renaming it but it feels like a token action without any real weight.
So yes, this is a token action meant to appease those that are never truly appeased due to their rapid movement of goalposts.
In fact is it even git any more if the master branch isn't called master? Nope it's an incompatible fork by Microsoft purely by a chance encounter of irony.
Where exactly do you depend on knowing the name of the default branch of an unnamed repository, and how do you handle cases where people delete the master branch.
I don't think anybody would want people who delete the master branch.
master branch/copy - that's your main or primary
master degree - is now an expert degree
martial arts master - congratulations, you're a guru!
master bedroom - is now your main, great or grand bedroom (in fact it used to be called the main bedroom not that long ago)
skill mastery - you quashed it!
Should we make these changes? I don't know, I'm a white guy. What I do know is it's time to put an end to systemic racism. If making these seemingly small changes are enough to change people's worldview in a meaningful way then I think we should explore it. There's potentially a lot to gain for such seemingly trivial and small changes in word usage.
Microsoft's shareholders, during last Dec's meeting, rejected Arjuna Capital's proposal that a report be compiled on the gender pay gap across Microsoft, specifically to include "the percentage global median pay gap between male and female employees across race and ethnicity, including base, bonus and equity compensation."
This is onomatophobia, fear of hearing names. Github is catering to people trying to ignore the problem (slavery) that still exists because of inaction instead of clearing the name "master" from the bad connotation. Logically, it's difficult to battle problems (like slavery) by forgetting it or ignoring that it exists in the first place.
The change is counter-productive for both social and technical contributions.
Anyway, Fossils main branch is called "trunk" which actually makes more sense than "master" especially because Fossil also has leafs.
new = !git init && git checkout -b main && git commit --allow-empty -m \"new\"
I suppose we will just need to wait and see what happens.
`root` is better if you really want to make a change. Or rand() is your friend.
Maybe I'm not a native English speaker. After knowing the history of Master/Slave. I still not linking them to the bad side.
If they can, rename `Git` also. Acutally I have some complaints from my clients before.
If the word master makes some black people feel uncomfortable, the issue isn't git. It lies in the society.
Edit: so it does! You learn something new...
But as others pointed out here, "Master" branch is not using that source for the term. Changing it in this context is actively harmful to BLM and race equality.
So, ignore this and don't be a pussy. (Historically pussy == cat by the way. So I am bringing this phrase back for the same reasons that my Master branch and Blacklist/Whitelist are historically clean terms.)
Especially when it's basically ground zero for SJW activity in software development.