Master/Slave naming debate.
Well, this is an interesting turn the "Black Lives Matter" movement went. Changing city names and software terms.
I'm not against it per se. I'll admit I'm struggling to come to terms with. I'm seeing changes in places where I never really associated it with human slavery, or in places where the association is even necessarily there.
For instance, Github is going to be renaming the "master" branch something else. But, there is no concept of a "slave" branch. And it has spun off other terms which have, in my opinion, fundamentally changed the DNA of the word within this scope. Terms like "gold master" for example.
The notion that calling you code branch "master" is in some way perpetuating our societies views on racism or even slavery are, at the least, questionable. The term "master" has many definitions. Many of which are equally, or more, applicable the true meaning of the term in coding.
And no, I'm not arguing against the name change. I don't particularly care. I agree slavery is bad. As is racism. I also agree that it is systemic in many places. However, I also tend to believe that change needs to be made rationally and in well thought out ways to avoid regression or backlash. In short; choose your battles.
I don't think the computer science community is particularly likely to revolt over this change. But, I do feel it wasn't particularly well thought out. "Master" can have other definitions which extend beyond slavery. And without a "slave" parallel it isn't clear that this link was ever there in branching, and even less likely that the association was ever prevalent.
And, while computer scientists may not push back. Others may appropriate the name change as an example of potential overreaching by the movement.
Choosing your battles doesn't mean to pick a battle just because you can win it. It means picking battles which are meaningful. It is better for any cause to choose and lose fights which are well justified than it is to win a fight not worth winning.
A better argument is the master/slave which has existed in hardware for a long time. I still don't particularly think of it as a "systemic problem". But, I also can't argue. In this case, the terminology clearly came from slavery.
And, in many cases, it is only just an OK term. I always found the master/slave concept poorly named anyway. Both devices are slaves to the computer, which is in turn slave to the people programming it. Terms like coordinator or controller often better define the "master" in this role. And something like "node" is sufficient for the slave.
In things like clusters, I didn't even know this was common terminology. (And I still question if it actually is widespread at all). But, in these cases, I would say "primary" is often better than "master" and "auxiliary", "additional", "secondary", etc... often better describe the role of other machines in things like a Kubernetes cluster or a sever.
So, yes. I have no issue with changing the names of these terms. But, I do question if it is really battle worth fighting. There are much more meaningful fronts upon which we can tackle racism. In most of these fields the terms are even optional.
You can often name a branch whatever you want. Many of these hardware terms already have alternatives. And in many cases the alternatives seem to be more prevalent. The computer science community isn't exactly one married to a single lexicon. Though, gits promise to change the "master" branch may break a very large number of applications (depending on the implementation) which have hard coded this into software under the assumption that it was an immutable term.
Comments
Post a Comment