TOC

解释解释什么叫 “包容性命名”

开发者想必都有耳闻,过去一两年间,因为一些美国政治风波的影响,各大社区都被政治正确问题所困扰,然后有一些相关改名的操作。
PS: 连黑人牙膏(高露洁旗下)都改名 “好来牙膏” 了。

最著名的可能就是 GitHub 中的默认主干分支从 master 改成 main,然后很多项目宣布将主从表述由 master/slave 改成 primary/replica,黑名单 Blacklist 改叫 Denylist 或者 Blocklist。

我最近听说有个叫包容性命名促进会的组织(Inclusive Naming Initiative)。
https://inclusivenaming.org/

他们列了一个清单,将开发过程中常用的一些有冒犯性的词,按照冒犯级别分三类,然后还给出来一些他们建议的替换词。

  • 第一类:立即更换
    1. abort, abortion 退出
      下面的解释是说,这个词和堕胎有关...
      建议:cancel,stop,force quit,fail
    2. whitelist, blacklist
      建议:allowlist/denylist
    3. master, slave 主从
      建议:
      primary / replica
      primary / secondary
      leader / follower
      parent / child 可能是替换主进程的场景
      controller / doer
      control plane / control plane node
    4. master 主干
      这个词本身是中性的,但是容易联想到 slave, 所以单独使用也应该禁止
      建议:main,source
  • 第二类:强烈建议跟换
    1. sanity check / sanity test 冒烟测试(健全性测试
      原因:sanity 本意是理智的,容易冒犯到神经质的人(neurodiverse people)
      建议:confidence check,coherence check,test,verification
  • 第三类:可以考虑更换
    1. segregate 隔离
      可能是有种族隔离的意思。
      建议:
      segment / segmentation
      separate / separation
    2. tribe
      原因:部落的意思,可能是怕冒犯部分民族,或者联想到殖民
      建议:squad of squads,team

如果不出意外,这个清单今后会继续增加。
我英语本来就不好,对西方的文化也不了解,也不想去研究这些词的冒犯性问题。这里只是列出来,了解了解,免得遇到相关替换词,不知道是什么意思。