Developers renew push to get rid of objectionable code terms to make 'the world a tiny bit more welcoming'
- Reference: 1591652406
- News link: https://www.theregister.co.uk/2020/06/08/developers_renew_push_to_get/
- Source link:
On Monday, Scott Hanselman, a programmer and educator who happens to work at Microsoft, published a [1]blog post about how to rename the "master" branch in code repositories created using Git version control software with a less loaded term.
"The Internet Engineering Task Force (IEFT) points out that 'master-slave is an oppressive metaphor that will and should never become fully detached from history' as well as 'In addition to being inappropriate and arcane, the master-slave metaphor is both technically and historically inaccurate,'" he wrote.
"There's lots of more accurate options depending on context and it costs me nothing to change my vocabulary, especially if it is one less little speed bump to getting a new person excited about tech."
This comes from an [2]IETF draft document published in 2018, the same year developers involved in [3]Redis and Python made a push to purge "master/slave" terminology, not to mention [4]Rails .
That same year, the terms elicited [5]a bug report in Google's Chromium project, one that has led to a series of changes since then, percolating down through various header and source files to change "blacklist" to a term without racial overtones, "blocklist," and "whitelist" to "allowlist."
On Saturday, that effort led to [6]a proposed name change for the classes in the components/blacklist directory, the effect of which can be seen in code diffs like [7]this one .
Redis does a Python, crushes 'offensive' master, slave code terms [8]READ MORE
Google did not immediately respond to a request for comment, but these changes represent an attempt to comply with the company's [9]code inclusivity guidelines for its Chromium project.
Google is far from the only company dealing with this issue. Pivotal's LicenseFinder swapped "whitelist" for " [10]permitted licenses " in January. Box is currently [11]discussing a shift to "allowlist" and "denylist." Elixir [12]nixed the terms about a week ago. OpenShift merged [13]a pull request to adopt alternate language four days ago. Yelp modified its [14]secret scanning code about two weeks ago. The [15]osquery project is working on it.
Among those contributing to the open source Git project, "master" terminology came up in [16]a mailing list discussion last month about fixing the terminology in the Git source code. The proposal met with resistance, partly because of the amount of work it would entail.
In [17]response to a post arguing for revised wording, Brian Carlson, a developer at GitHub who also contributes to the Git codebase, acknowledged the concerns that have been raised about the terms and objections to making changes. He expressed willingness to review potential changes to Git source code that would purge the term but said he couldn't undertake the project himself.
"It appears that if we made the obvious one-line change to builtin/init-db.c , we'd have 304 tests that fail, which is about a third of our test suite," he said.
At GitHub, the GitHub CLI replaced "master" with "trunk" [18]about two weeks ago and the GitHub Desktop software did the same i [19]n 2019 .
Despite significant support for these changes, there are also detractors who point out that Git's use of "master" hails from sound recording rather than slave owning (as opposed to the master/slave descriptors applied to device networking) and that "master" has other connotations, like expertise in a field.
Google's guidance on inclusive coding, which focuses more on the use of gendered terms rather than racial ones, notes some of the potential problems with trying to apply inclusive language. For example, coders are advised to avoid the gendered pronoun "he," but "he" is okay if it refers to Helium, the ISO 639-1 language code for Hebrew or the first person conjugation of the Spanish verb "Haber."
Hanselman acknowledges that vocabulary revision does not erase history or make people less racist. "All it does is make the world a tiny bit more welcoming," he [20]said via Twitter. ®
Sponsored: [21]The Forrester New Wave™: Public Cloud Enterprise Container Platforms, Q3 2019
[1] https://www.hanselman.com/blog/EasilyRenameYourGitDefaultBranchFromMasterToMain.aspx
[2] https://tools.ietf.org/id/draft-knodel-terminology-00.html#:~:text=Master%2Dslave%20is%20an%20oppressive,become%20fully%20detached%20from%20history.&text=This%20was%20done%20because%20the,in%20the%20community%20%5BDjango2%5D.
[3] https://www.theregister.com/2018/09/13/redis_master_slave/
[4] https://github.com/rails/rails/issues/33677
[5] https://bugs.chromium.org/p/chromium/issues/detail?id=842296
[6] https://bugs.chromium.org/p/chromium/issues/detail?id=1092096
[7] https://chromium-review.googlesource.com/c/chromium/src/+/2234793/3/components/blacklist/opt_out_blacklist/opt_out_blacklist_data.cc
[8] https://www.theregister.com/2018/09/13/redis_master_slave/
[9] https://chromium.googlesource.com/chromium/src/+/master/styleguide/inclusive_code.md#racially-neutral
[10] https://github.com/pivotal/LicenseFinder/commit/a40b22fda11b3a0efbb3c0a021381534bc998dd9
[11] https://github.com/box/developer.box.com/issues/124
[12] https://github.com/elixir-lang/elixir/pull/10078
[13] https://github.com/openshift/ocp-build-data/pull/489
[14] https://github.com/Yelp/detect-secrets/pull/178/files
[15] https://github.com/osquery/osquery/issues/6491
[16] http://public-inbox.org/git/CAOAHyQwyXC1Z3v7BZAC+Bq6JBaM7FvBenA-1fcqeDV==apdWDg@mail.gmail.com/
[17] http://public-inbox.org/git/20200505231641.GH6530@camp.crustytoothpaste.net/
[18] https://github.com/cli/cli/issues/929
[19] https://github.com/desktop/desktop/issues/6478
[20] https://twitter.com/shanselman/status/1270023537013604354?s=20
[21] https://go.theregister.com/tl/1956/-8475/the-forrester-new-wave-public-cloud-enterprise-container-platforms-q3-2019?td=wptl1956
Re: quick, they're discussing race again!!
Well divert with some irrelevant detail and turn it into a conversation blocking thread at the start of the comments! Duh!!
I suppose black hat and white hat has to go as well. then.
Or maybe we could just accept that some words have multiple meanings and context really does matter.
@Def - Yeah but
that would imply using grey matter which is getting scarce in these days.
Re: @Def - Yeah but
There is plenty of grey matter to go around. What there is a lack of is bothering to use it, because that would be hard.
context is racist now
It's not unreasonable to change black/white where the meaning is white=good, black=bad.
This isn't exactly the Daily-Mail fake frothing about not being able to say blackboard or black coffee
@Yet Another - Problem is
who decides what is good and what is bad ? For instance, a black horse, is it a good one or a bad one ?
Re: @Yet Another - Problem is
Depends how you cook it, surely?
@TRT Also
please add yellow and red to that list too.
Re: @TRT Also
Sounds like we're in for some interesting traffic intersections.
What colour alert will be used for the spore drive?
Master changed, really?
Just started a new project recently, and, ah, "master" is still "master." Oddly enough, I've never seen a "slave" branch.
Re: Master changed, really?
What about Master/Pupil to use the original academic meaning?
Re: Master changed, really?
Well as you digress what about the master keys? Shall we start applying to it to sheep also?
For what it's worth I don't think that these words are really understood to be offensive. What is offensive is the prejudices that people hold.
Re: Master changed, really?
It's 2020; we may as well go with master/padawan so we don't have to change everything again when Disney buys us.
Re: Master changed, really?
Yeah, that got a shoutout in the article. It very obviously derives from "master copy"-type terminology, and not master/slave (the only terminological experience of which I remember having is jumper configs on IDE disks).
It surprises me that steps have been taken toward this, and especially that a replacement term of "trunk" was chosen rather than "main" or similar. "master" is a pretty good name whose meaning is obvious to a lot more people than "trunk", which presumably only means something to telecom-aware engineers and those that have used Subversion (I know it seemed like a stupid name to me when I saw my first VCS).
Re: Master changed, really?
The term "trunk" comes from a tree analogy - you have a central trunk with branches diverging off it. Of course, the analogy breaks down when you try and explain merging branches back into the trunk...
Re: Master changed, really?
You know that's facepalmingly obvious now, what with branches and all. I wonder what convoluted part of my mind conflated it with trunk lines, and what sort of code it's produced over the years.
master and slave
When it's a drive that tells another drive exactly what to do then the wording makes sense and i can't think of anything more appropriate.
For the main branch of a repo "master" doesn't really convey what it is.
Blocklist and allowlist are much clearer names than blacklist and whitelist.
Re: master and slave
>When it's a drive that tells another drive exactly what to do then the wording makes sense
Except in IDE sense it doesn't. It's just who is first and who is second.
You might as well call them Gold and Silver
Re: master and slave
Oh I had lists of colored shapes, wont work there.
@sabroni - Re: master and slave
Yeah but they are less meaningful :)
Black / white box testing?
I've only ever though of these as "can I see in the box because the light is on".
Then, there is Chess...
One day the social engineers will discover a game called chess, and break down in tears before setting out to put things right. For one, both colours are considered racist these days, the game reeks of a class structure where half the pieces are mere pawns, sacrificing themselves for knights and bishops, ruled over by an all-powerful queen and a king so frail it can barely move a single square a turn. The game also promotes threats of aggression and deadly violence as a way of resolving issues, while trivialising murder by labelling it “taking a piece”.
Re: Then, there is Chess...
All I could think of was the House of Lords until your final sentence when I suddenly pined hard for Battle Chess. Dem feels
Re: Then, there is Monopoly
Monopoly. The core fundamental strategy is to grow a vast greed by controlling all utilities and evicting people from their own property so that you can grossly overcharge them to live on your own, but preferably in hotels/condos so you can suck more money. If you keep working at the game, you will get $200 every week and although it eventually won't be enough to live on, you might be able to put up a mortgage to pay your overlords until you get that $200 the following week, if you make it. Once all players but 1 can no longer live through the week, the winner is decided by who made everyone else homeless.
Re: Then, there is Monopoly
Plus: you simply bribe your way out of jail, and might even win a beauty competition.
Blacklist to Blocklist but...
What word do you use to replace Master?
Re: Blacklist to Blocklist but...
'What word do you use to replace Master?'
FOXGLOVE
You are now mine!
Yes, yes, I know ownership or repression of others is wrong.
The circle is now complete
When I met you, I was but the learner. Now, I am the trunk.
BTW: How did that work out?
Remember the controversy (abetted by a very nasty Joyent *) over gendered pronouns in source for Node? Someone submitted a PR tweaking only pronouns and one of the prime Node devs (non-native English speaker in non-hungup country) said "wha? why?" and got pilloried?
Did that original someone *ever* do anything else 'worthwhile' for that open source project? Or any other?
(* Joyent was a competitor with the company that the pilloried dev worked for. Not entirely unself-serving social action they indulged in.)