新浪新闻客户端

代码也搞歧视?凭啥要叫黑名单

代码也搞歧视?凭啥要叫黑名单
2020年07月02日 21:00 新浪网 作者 久谦咨询

  ▪ 弗洛伊德事件后,美国围绕系统性种族主义展开了热烈讨论,科技行业也开始采取行动。为了提高平台包容性,开源社区GitHub将替换诸如黑名单、白名单之类冒犯性的软件术语。

  ▪ 更具包容性的术语不仅帮助黑人开发者和其他边缘化群体感到更自如,新术语在描述软件的功能方面通常也更加准确。然而,这些变动始终遭到一些人的反对,他们坚称科技与政治无关。

  ▪ 支持者认为,软件应该反映开发者的价值观,小小的改变也会产生巨大的影响,令科技生态系统更具包容性,从而赢得更多社群成员的信任。

代码也搞歧视?凭啥要叫黑名单

  原文来自Business Insider,作者Rosalie Chan

  在科技行业工作二十多年,软件开发高级工程师迈克尔·布朗经常发现自己是所在团队中唯一的黑人。

  这使得他在遇到 “master(主)”和“slave(从)”这两个常见术语时,格外恼火。这些过时的术语通常让人联想到奴隶制,感觉在歧视黑人开发人员

  布朗说:“事实上,黑人在科技领域的代表性很低。只有少数黑人能够上大学,难免会受到轻度冒犯,觉得自己从一开始就不属于这个群体。”

  在许多情况下,这些术语在技术上还被误用。在早期的硬件工作中,“master”设备实际上是“slaves”设备的客户端,之后才被用于指代软件项目的主版本,也许改为“primary”、“ trunk”或“main”更准确。

  弗洛伊德事件发生后,全国围绕系统性种族主义展开热烈讨论,科技行业也开始采取行动,将“master”、“ slave”、“ blacklist”等术语从常用词汇中删除。除此之外,“whitehat hackers”(白帽黑客,指那些帮助公司发现漏洞、抵御黑客攻击的人)和“blackhat hackers”(黑帽黑客,指那些出于恶意目的进行黑客攻击的人)也被提议删除,以免加剧偏见。

  Microsoft 旗下的GitHub已经宣布正在努力删除这些术语,Google的Chromium浏览器、Android操作系统等其他软件项目也采取了类似举措。

代码也搞歧视?凭啥要叫黑名单

  图注:GitHub CEO奈特·弗里德曼(左)和Microsoft CEO 萨蒂亚·纳德拉(右)。

  支持者表示,虽然这只是一小步,对于解决硅谷多元化问题也没有多大作用,但此举向黑人开发者发出信号,强调在行业中依旧有他们的立足之地。

  Delphix系统(Windows平台的快速应用程序开发工具)平台开发总监塞巴斯蒂安·罗伊表示:“就我而言,包容的环境很重要,员工在工作中感到自如,觉得自己和其他人一样有价值。”罗伊还组织了一次编程马拉松,为Delphix产品添加更多的包容性术语。

代码也搞歧视?凭啥要叫黑名单

  图注:Microsoft软件开发高级工程师迈克尔·布朗。

代码也搞歧视?凭啥要叫黑名单

  更新语言

  开源代码共享社区GitHub公开表示将替换“master”等术语,将其默认分支名称从“master”改为“main”,方便用户为新项目选择名称,并为想要重命名的用户发布指南和工具。

  Google的Android操作系统和Chromium浏览器决定将“blacklist”和“whitelist”等术语改为“blocklist(阻止名单)”和“allowlist(允许名单)”。

  据悉去年Microsoft 的一位Chromium开发者首次提出了这一想法,此举并不奇怪,因为Microsoft 正在使用Chromium代码打造Edge浏览器。

  开源存储项目OpenZFS已经将术语“slaves”改为“dependents(从属)”。Google的Go编程语言和Red Hat的OpenShift也做出了类似的更改。

  OpenZFS项目的创建者马修·阿伦斯提议删除存储软件中对“slaves”的引用。阿伦斯想知道OpenZFS中是否还有类似的术语,他惊讶地发现,该项目中多次使用“slaves”。

  阿伦斯说,“我认为使用这些术语很伤人,它不利于人们之间的交流互动。”他后来补充道:“以如此轻率的方式使用沉重的术语并不合适。”

  诸如“master”和“slave”之类的术语已经在科技行业中存在了数十年,但人们最近才开始改变。这些术语早已扎根在硬件和软件中——1969年的计算机手册就提到了这两个术语。

  美国知名科技博客媒体Ars Technica指出,关于这些术语的讨论可以追溯到几十年前,至少在90年代就已经有人开始抱怨。

  事实上,早在2003年,洛杉矶政府就要求制造商、供应商和承包商停止在计算机设备上使用“master”和“slave”。当时,一些工程师也曾公开反对使用这些术语。2018年,互联网工程任务小组针对该主题发表了一份备忘录,以识别科技领域的“压迫性术语”,并提出替代方案。

  其他几个项目也已经替换了这两个术语。例如,Drupal和Django web应用程序框架在2014年开始使用“primary”和“replica(副本)”。

  在过去的几年中,流行编程语言Python也一直在做相应的更改。

  Python核心开发人员玛利亚塔·维贾亚回忆说,2017年,开发人员希望为GitHub引入一项功能,以检查用户是否签署了贡献者许可协议。维贾亚并不想将已签署的用户归类为“whitelist”,将未签署的用户归为“blacklist”,而是选择细分为“trusted users”(可信任用户)和其他。

  不久之后,2018年9月,Python将“slaves”替换为“workers”、“ helpers”或“child”,将“master”替换为了“parent”。

  维贾亚说:“这些改变十分重要,我知道有些人会因历史原因而受到冒犯,受到心灵创伤。即使我们的经历不同,但我们与他们感同身受。通过这些术语,我们知道有哪些人会因此被排除在外。”

  维贾亚表示,这些改变会在整个行业产生连锁反应,因为新的开源项目可能会以流行的开源项目为模型,其或许可以为开源社区的成员树立榜样,让他们在别处也要注意自己的语言

  维贾亚说道:“我认为维护人员有责任树立一个好榜样,使用更具包容性的语言,不仅是在术语中,在向听众讲话时也应如此。”

代码也搞歧视?凭啥要叫黑名单

  沉默的大多数

  这些术语已有数十年的历史,相关争论也是如此。但布朗表示,由于开发人员不大愿意直言不讳,科技行业并未发生大范围的变革。他说,科技行业的黑人为了保护自己不被排除在外,往往不会参与这些讨论,而是选择默默接受。

  布朗说:“我们不想把事情搞砸,于是表现得毫不在意。当我们听到‘master‘和‘slave‘一词时,我们会默不作声,避免引起不必要的麻烦。”

  例如,农业解决方案公司Adama Robotics的CEO道达·巴里也是一位黑人。当他上大学时第一次遇到这两个词时,他努力掩盖了自己的不适,告诉自己只是太敏感了。但看到Twitter最近关于这个话题的讨论,他意识到,并非自己一人不喜欢这些术语。

  巴里在接受采访时说:“当我第一次看到这个术语时,我就感到不舒服,很快便刷过了它。有很多方法可以让一个领域具有包容性,而改变这些术语可以增加科技生态的包容性。我们希望让更多的非白人开发者在科技领域工作时感到舒适,做真实的自己。”

  此外,开源社区经常培养所谓的领袖,即“仁慈独裁者”,这些项目创建者和维护者对所有决策有最终决定权,但并非始终将包容性视为优先事项。

  产品设计师克里斯·梅西纳说:“非常相似的人们汇聚在了一起,他们能够做出贡献或提出更大的问题。而你所使用的语言会影响到有能力参与的人。”

代码也搞歧视?凭啥要叫黑名单

  改变迫在眉睫

  独立产品设计师塔蒂亚娜·麦克说,即使没有针对是否改变术语的讨论,现在的黑人维权运动也增加了大家的紧迫感。

  过去改变语言的建议往往会被忽视或受到排挤。当某些项目确实做出了改变时,一些人会在Twitter或者社群内部反抗,认为不应该出于政治原因对软件进行更改。有时,改变术语被视为涉及“政治正确性”的问题

  维贾亚说:“2018年,当Python更换术语时,一些支持者最终因为此事而受到骚扰。她认为,这类事件对未来做出改变的努力产生了寒蝉效应。我们知道此举存在争议,一些支持者也对此感到精疲力尽,他们没有足够的精力继续争论。改变已经发生,开源维护人员却受到了精神上的骚扰,不得为此付出代价。”

  麦克表示,科技公司参与了种族问题的讨论。尽管Microsoft、Salesforce、Amazon等公司承诺与黑人团结一致,批评人士认为,这些公司与执法部门的合作可能会破坏其立场。鉴于两者的相互交织,软件是否代表了制作者的价值观这点十分重要。

  麦克说:“我认为必须改进技术,让技术符合我们的道德立场。科技领域有太多人以‘科技非政治’作为自己的借口。

  布朗说:“美国有数以百万计的人因这些术语而受到伤害,而有些人认为无关紧要,保留这些技术上不准确的术语没什么大不了,他们并不认为这会给人们带来麻烦,而更改术语只需要30秒。”

代码也搞歧视?凭啥要叫黑名单

  更包容、更准确

  “master”、“ slave”和“ blacklist”、“whitelist”等术语不仅伤人,而且不明确。更新后的术语如“main”、“primary”、“allowlist”和“blocklist”更清楚地反映出实际含义。

  布朗说:“黑人在现实中面对许多轻度歧视,而这些术语带来了另外一种歧视。做出改变并不难,有些术语甚至在技术上并不准确,但仍有人在为它辩护。”

  开发人员已经在软件中看到了许多类似的语言现象。软件项目往往附带文档解释如何正确设置和运行代码,通常会用“he”或“him”来指代工程师,将女性或其他人群排除在外。

  Mozilla(火狐浏览器)的工程师艾米丽·凯奇说:“我在文档中看到很多次这种情况。这很微妙,人们会因此觉得自己的性别不那么受欢迎。我们应该让语言将所有性别尽可能地包容在内。”

  “Sanity check(健全性检查)”是另外一例,指的是开发人员审查代码时的情况,但它将患有精神疾病或残疾的人排除在外。

  因此,麦克为科技行业设计了 “Self-Defined(自定义)”的词典项目,该项目可以识别有问题的语言,解释其影响并提出可以使用的替代方案。

  麦克说:“语言具有强大的功能,它被动地嵌入在我们看到的内容中,而类似的对话实际上非常频繁。”

  尽管科技行业在增加多元化、提高公平性和包容性方面还有很长的路要走,但这些小小的改变将使科技生态更具包容性,从而赢得更多社群成员的信任,并让黑人开发者感到更自在。

  布朗说:“改变只需30秒,不会造成任何破坏,只会让你的项目更受欢迎。”

特别声明:以上文章内容仅代表作者本人观点,不代表新浪网观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与新浪网联系。
权利保护声明页/Notice to Right Holders

举报邮箱:jubao@vip.sina.com

Copyright © 1996-2024 SINA Corporation

All Rights Reserved 新浪公司 版权所有