包容性命名倡议——政治正确下的计算机术语更名运动

今年的美国反歧视和反暴力执法运动(Black Lives Matter/BLM),加速了计算机界在术语方面向政治正确发展,“许多科技巨头或知名软件,调整自己的业务和产品,平息舆论”。早在“2004年,‘master/slave’就被全球语言检测机构评为年度最不政治正确的十大词汇之一,时任主席称这是政治渗透到计算机技术控制中的表现。早在那时,洛杉矶就有一个区域采购部门,以种族歧视为由,禁购采用该词汇的软件。”在行动方面,“2008年,开源软件 Drupal 在社区发布消息,高调站队,将‘master/slave’重命名为‘client/server’”。“之后一直到2018年,IETF 在草案当中,要求开源软件更改“master/slave”和“blacklist/whitelist”两项表述。计算机术语的使用才引起更广泛关注。同年,许多开发者呼吁一些开源软件厂商修改源码,Redis、谷歌、Python 都曾被要求这样做。谷歌开始避免再使用“blacklist”一词,Redis 和 Python 开始清除“master/slave”表述”。今年GitHub开始把默认分支从master改成main。(在 Git 中写下 master 的开发者反省“错误”,这些计算机术语错了吗?2020-6-19)

更改软件界面术语相对简单,要更改源代码……想想就觉得会出无数乱子,因而不只需要大家认可的新术语,还需要防止出错的更名流程等。包容性命名倡议(Inclusive Naming Initiative就是这样一个项目,“任务是帮助公司和项目移除各种所有有害和不清晰的语言,代之以一套商定的中性术语。目标是定义流程和工具,从项目中移除有害语言,包括创建替换术语综合清单、语言评估框架和模板以及帮助过渡的基础架构。”目前项目领导团队包括来自Cloud Native Computing Foundation、Cisco、Red Hat、VMWare和IBM的成员。

目前提出的更改术语清单(Word replacement list):

  • Whitelist/blacklist ——  allowlist/denylist 或 allowedNouns/deniedNouns
  • Master/slave —— Control plane/control plane node 或 Controller/doer 或 Primary/replica 或 Primary/secondary;也可考虑:Leader/follower 或 Parent/child
  • Master —— main 或 original 或 source 或 control plane

项目网站上有Kubernetes命名工作组开发的评估有害语言框架(A framework for evaluating harmful language),将有问题的语言分成三等:

  • 一阶问题(有害、特定身份):种族、性别、残障、同性恋歧视
  • 二阶问题:暴力(比如kill)、军国主义
  • 三阶问题(清晰度、拟人化、惯用语)

via OSChina: 约五十万个“歧视性”单词被计划替换,影响数千项目(一君,2020年11月20日)

【乱弹】

现在的清单基本上都是涉及奴隶或黑人的术语,看项目GitHub上提出的其他建议(inclusivenaming/org),目前要求禁用还有:#8 whitewash(粉刷),#9 male/female,#10 large/big/tall/small/tiny/short。我怎么觉得是搞笑呢?

汉语的特点是历史久、来源广,来自世界各地的大量外来语早就失却了其初始的隐喻,在人们头脑中留下的只有现实含义。因此我想,“白名单/黑名单”不必消失吧?至于“主/从”在我看来则完全没有种族色彩。
上述框架在脚注中称:“一般而言,随着时间的流逝,强大的民主社会将变得更加进步和接受”——我以为“结果”会是随着社会发展,人们越来越自信、越来越不那么敏感、不容易感觉受到言辞的伤害,没想到它的结论是——“结果,在某些未来时间点,曾经被认为可以接受的术语可能被认为是不可接受的”。