14 votes

Linux 5.8 formally adds the inclusive terminology guidelines

Tags: linux, kernel

9 comments

  1. skullkid2424
    (edited )
    Link
    Theres been quite a bit of discussion on this topic lately, so not too surprising to see more companies/organizations making changes. The "master/slave" and "blacklist/whitelist" terms are...

    Theres been quite a bit of discussion on this topic lately, so not too surprising to see more companies/organizations making changes.

    The "master/slave" and "blacklist/whitelist" terms are probably the most accepted terminology changes, so I imagine this move will make a lot of people happy without much opposition. Of course, theres plenty of people who will be unhappy for many reasons (both valid and invalid) as well. Its a pretty heated subject right now, but I imagine rage will die down over time as new terms are used "by default" and a new generation of programmers don't have the same attachments.

    13 votes
  2. [4]
    mat
    Link
    I should know better than to read the comments but dear god what a shitshow the comments are.

    I should know better than to read the comments but dear god what a shitshow the comments are.

    8 votes
    1. [3]
      ducc
      Link Parent
      I honestly don't understand why people are so upset about these changes... How does it affect them? I think saying "This is bullshit, Linux is done" is a bit of an overreaction, lol

      I honestly don't understand why people are so upset about these changes... How does it affect them? I think saying "This is bullshit, Linux is done" is a bit of an overreaction, lol

      8 votes
      1. mat
        Link Parent
        Exactly. It doesn't make a single bit of difference to me what my controllers/hosts or blocklists/allowlists are referred to as but if using those words makes even just one person feel more...

        Exactly. It doesn't make a single bit of difference to me what my controllers/hosts or blocklists/allowlists are referred to as but if using those words makes even just one person feel more comfortable being part of linux development then good. Let's use those words.

        6 votes
      2. SleepyGary
        Link Parent
        As a person that once thought this way a decade ago I'll tell you what it is, at least for me, it's privilege. I didn't feel there was an issue with calling things master/slave or...

        As a person that once thought this way a decade ago I'll tell you what it is, at least for me, it's privilege. I didn't feel there was an issue with calling things master/slave or whitelist/blacklist because we weren't talking about people. The terms were common place and changing them seemed like a completely superfluous point of self flagellation that the pc babies were forcing upon us. When you're included as a default for everything it takes effort and introspection to empathize with the excluded.

        5 votes
  3. [4]
    kfwyre
    Link
    Can anyone shed some light on how this affects things on a technical level (if at all)? Does making this change create a lot of new work or potential incompatibilities or whatnot? I'm not a...

    Can anyone shed some light on how this affects things on a technical level (if at all)? Does making this change create a lot of new work or potential incompatibilities or whatnot? I'm not a programmer, so I'm curious if there are any significant effects beyond just using different names for things. I don't really even know enough to know how to properly word my question, so please forgive me if I'm getting something wrong!

    I'll also qualify that I'm asking this question out of a genuine curiosity and nothing more. I'm not trying to be leading in the slightest. I know this has been a hot button issue for a while now, which is part of why I'm asking, as it's been hard to suss out the signal from the noise on this topic.

    1 vote
    1. skullkid2424
      (edited )
      Link Parent
      It ranges from incredibly easy to incredibly hard to change existing content. For documentation and some code you can probably just do the programmer equivalent of a find + replace....
      • Exemplary

      It ranges from incredibly easy to incredibly hard to change existing content.

      For documentation and some code you can probably just do the programmer equivalent of a find + replace. Blacklist/Whitelist is probably on the easier side.

      But most of the time its more difficult. Things are referred to many times in many different places. Using find + replace on the word "master" will almost certainly include other references to the word outside of the master/slave context. I believe one of the statistics was that the linux kernal has ~30k instances of the word master - though that may be more of a comment on the size of the linux kernal than anything else.

      And even more daunting is APIs. Basically many programs and applications provide an interface for external programs to interact with them. For example, facebook might provide an API call that lists all of your friends, or lists the email addresses in your profile. When any of those refer to something that gets removed, everyone has to change it. So for example, if tildes.net/api/blacklist provided a list of websites that are prevented from being posted to Tildes, then updating it to tildes.net/api/denylist will break every piece of software that uses that API call (mobile apps, browser extensions, personal scripts, etc). You can somewhat mitigate this by having the old call to blacklist forward to denylist, and eventually phase it down the road - but even then its highly likely that some piece of code doesn't get updated and it will break something eventually. (Note - I just made up a random example, I don't know that tildes has a blacklist/denylist api call)

      But its a good question. A lot of programmers are technically minded people and are looking at things with a cost/benefit mindset. Changes like master/slave and blacklist/whitelist are generally recognized to have significant benefits that outweigh the costs of changing them. In master/slave, it removes language that discourages many folks of color from going further into computer science. With Blacklist/Whitelist, the benefit is that twofold in that we stop associating black == bad (regardless of whether the etymology has a concerning history), but also we provide a more accurate term with denylist/allowlist - which helps a lot of non-English speakers to parse the meaning from the word rather than "memorizing" that blacklist is a list of bad things. As someone put it, a deny list is a list that denies. A black list doesn't make sense as a list that blacks. Master/Slave also can benefit from more accurate terms, but they have a much wider definition and use, so that may depend on the context.

      But then going to some of the other suggested changes, one is to replace the "master" branch in git with the "main" branch (or another similar term). This one has seen a lot more pushback, and part of the reason why is that for many programmers, the cost/benefit analysis doesn't add up. A lot of the obvious arguments about master/slave don't necessarily apply to master branch. There is no slave branch, the history of the word isn't obviously rooted in racism (the creator was not a native English speaker or American), and the practical use is a master copy of a key or a master record. For many programmers, the benefits don't appear to outweigh the costs of making the change.

      Of course, theres other people who are not doing cost/benefit analysis and are objecting for other reasons ranging from stubbornness to racism to censorship/slippery slope fears and all the way to concerns that focusing effort and goodwill on these small changes will detract from "real" changes like addressing police violence.

      6 votes
    2. [2]
      stu2b50
      Link Parent
      Note that this is saying to It's not like it's the most difficult thing in the world to rename them, it's just that it's kinda pain in the ass. If you just do a :s/master/main, you'll have to put...

      Note that this is saying to

      For symbol names and documentation, avoid introducing new usage of 'master / slave' (or 'slave' independent of 'master') and 'blacklist / whitelist'.

      It's not like it's the most difficult thing in the world to rename them, it's just that it's kinda pain in the ass. If you just do a :s/master/main, you'll have to put out a bunch of fires.

      A bigger deal is the the fact front-facing APIs may depend on this. For example, if you had an API to add a process to a blacklist, every computer running linux would break upon upgrading the kernel. For that reason, it explicitly says not to change those.

      1 vote
      1. ohyran
        Link Parent
        I thought that it would be backwards compliant so the old naming scheme would technically still work. Note that this is something "I was told" and I am not technically competent to say anything...

        I thought that it would be backwards compliant so the old naming scheme would technically still work. Note that this is something "I was told" and I am not technically competent to say anything beyond that so insert a massive pinch of salt right about here.