乐趣区

为避免种族歧视谷歌Chrome将不再使用黑名单等词

近日,美国黑人乔治‧佛洛伊德(George Floyd)被警员制服期间死亡而触发的反种族主义已经持续了 10 多天,这场有关种族的示威浪潮蔓延至欧洲英国、法国、德国、西班牙和澳大利亚等国家。

关于这个事件,最近也有很多互联网公司纷纷加入。几天内,微软、苹果以及谷歌等多家美国本土的互联网公司的 CEO 均通过不同形式表达了对于种族平等的支持。

而在技术圈,最近也发生了一些支持这一运动的行动。

谷歌摆脱 ” 黑名单 ”

近日,谷歌的 Chrome 浏览器的源码提交记录中,出现了几条关于种族歧视相关的提交。其中主要提交内容是废弃了 ”blacklist” 的写法:

下图是部分文件重名的提交内容:

因为有开发者认为“黑名单”和“白名单”之类的术语强化了 ” 黑 == 坏,白 == 好 ” 等意思,具有一定的种族歧视色彩。

在提交记录中,Chrome 的开发者将 blacklist 修改为 blocklist。其实,这一修改早在去年 10 月份,就已经有了相关规范,

自去年 10 月以来,Chrome 已在其官方代码样式指南中包含有关如何编写“种族中立”代码的指南。该文件明确指出,Chrome 和 Chromium 开发人员应避免使用“黑名单”和“白名单”一词,而应使用中性术语“阻止名单”(blocklist)和“允许名单”(allowlist)。

技术也要 ” 政治正确 ”

除了 Chrome 废弃了 ” 黑名单 ” 的表述以外,其实还有很多类似的事件。

如开发者熟知的 ”Master/Slave”,是分布式系统中一个比较常用的计算结构,这个名词由两个单词组合而成:Master 和 Slave。

Master:主人、雇主。Slave:奴,奴隶。

很多开发者认为 master-slave 这一表述中的 slave(奴隶)对于人权具有一定的侵犯性,所以有很多呼声要求修改这一词汇。

早在 2014 年,Drupal 项目就用 primary 和 replica 替换了 master 和 slave;Django 项目则用 leader 和 follower 替换之;CouchDB 项目也做了类似语言上的净化。

在 2018 年,两个被我们熟知的软件,Redis 和 Python 也为了 ” 政治正确 ” 而做出了相应妥协。

2018 年 9 月 7 日,Redis 5.0 RC5 发布了,该版本中仍然使用 master-slave 来表示主从模式,这引起了很多开发者的抗议。之后 Redis 的作者在推特上发起了一个投票,结果显示,超过半数的人希望修改这一描述。

最后 Redis 的作者决定将 master-slave 描述改为 master-replica。

同样是 2018 年 9 月 7 日,在 Red Hat 工作的 Python 开发者 Victor Stinner 公开提交了 4 个 PR,希望能将 Python 文档和代码中出现的“master”和“slave”修改为像“parent”和“worker”这样的术语,以及对其他类似的术语也进行修改。

对于这个问题,Python 的创始人,已经宣布退出 Python 核心开发组决策层的 Guido van Rossum 被请回参与了这一事件的讨论及仲裁。最终他做出了重要的决定:

计划在 Python 3.8 中,将 slave 改为 worker、helper、另外将 master process 改为 parent process。

近日,Golang 也有开发者提了类似的 commit,要求修改 whitelist/blacklist、master/slave 等表述:

对于类似的修改,有一些是相对简单的,只要修改命名就行了。就怕有些软件修改之后产生各种兼容性问题。

所以,很多软件都是持谨慎态度的,但是随着很多呼声越来越高,相信很多厂商也不得不最终选择 ” 政治正确 ”。

对了,美国还有个地方叫 ” 白宫 ”…

退出移动版