News: 1591652406

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Developers renew push to get rid of objectionable code terms to make 'the world a tiny bit more welcoming'

(2020/06/08)


Amid the protests over the death of George Floyd, activists in the software community have taken the opportunity to remind people that they're trying to do away with terminology tied to racial oppression.

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

BTW: How did that work out?

Anonymous Coward

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.)

Re: quick, they're discussing race again!!

Anonymous Coward

Well divert with some irrelevant detail and turn it into a conversation blocking thread at the start of the comments! Duh!!

TRT

I suppose black hat and white hat has to go as well. then.

Def

Or maybe we could just accept that some words have multiple meanings and context really does matter.

@Def - Yeah but

Anonymous Coward

that would imply using grey matter which is getting scarce in these days.

Re: @Def - Yeah but

jake

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.

Graham Dawson

context is racist now

Yet Another Anonymous coward

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

Anonymous Coward

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

logicalextreme

Depends how you cook it, surely?

@TRT Also

Anonymous Coward

please add yellow and red to that list too.

Re: @TRT Also

logicalextreme

Sounds like we're in for some interesting traffic intersections.

Anonymous Coward

What colour alert will be used for the spore drive?

Master changed, really?

Brian Miller

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?

Yet Another Anonymous coward

What about Master/Pupil to use the original academic meaning?

Re: Master changed, really?

BigE

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?

logicalextreme

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?

logicalextreme

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?

Woza

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?

logicalextreme

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

sabroni

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

Yet Another Anonymous coward

>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

BigE

Oh I had lists of colored shapes, wont work there.

@sabroni - Re: master and slave

Anonymous Coward

Yeah but they are less meaningful :)

Black / white box testing?

Anonymous Coward

I've only ever though of these as "can I see in the box because the light is on".

Then, there is Chess...

Lucy in the Sky (with Diamonds)

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...

logicalextreme

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

overunder

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

logicalextreme

Plus: you simply bribe your way out of jail, and might even win a beauty competition.

Blacklist to Blocklist but...

Blackjack

What word do you use to replace Master?

Re: Blacklist to Blocklist but...

Foxglove

'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

logicalextreme

When I met you, I was but the learner. Now, I am the trunk.

"Cogito ergo I'm right and you're wrong."
-- Blair Houghton