为避免种族歧视,谷歌Chrome将不再使用“黑名单”等词
GitHub 15.2k Star 的Java工程师成神之路,不来了解一下吗!
GitHub 15.2k Star 的Java工程师成神之路,不来了解一下吗!
近日,美国黑人乔治‧佛洛伊德(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等表述:

对于类似的修改,有一些是相对简单的,只要修改命名就行了。就怕有些软件修改之后产生各种兼容性问题。
所以,很多软件都是持谨慎态度的,但是随着很多呼声越来越高,相信很多厂商也不得不最终选择"政治正确"。
对了,美国还有个地方叫"白宫"...
为避免种族歧视,谷歌Chrome将不再使用“黑名单”等词的更多相关文章
- 谷歌Chrome浏览器开发者工具的基础功能
上一篇我们学习了谷歌Chrome浏览器开发者工具的基础功能,下面介绍的是Chrome开发工具中最有用的面板Sources.Sources面板几乎是最常用到的Chrome功能面板,也是解决一般问题的主要 ...
- 谷歌chrome浏览器和火狐firefox浏览器自带http抓包工具和请求模拟插件
谷歌chrome浏览器自带http抓包工具 chrome://net-internals/ 谷歌chrome浏览器http请求模拟插件:postman 火狐http请求模拟插件:httprequest ...
- 在 Ubuntu 16.04 中安装谷歌 Chrome 浏览器
进入 Ubuntu 16.04 桌面,按下 Ctrl + Alt + t 键盘组合键,启动终端. 也可以按下 Win 键(或叫 Super 键),在 Dash 的搜索框中输入 terminal 或&q ...
- Ubuntu小技巧——怎样安装谷歌Chrome浏览器
对于刚刚开始使用Ubuntu并想安装谷歌Chrome浏览器的新用户来说,本文所介绍的方法是最快捷的.在Ubuntu上安装谷歌Chrome的方法有很多.一些用户喜欢直接在谷歌Chrome下载页面获得 d ...
- 关于如何解决谷歌Chrome浏览器空白页的问题
谷歌Chrome浏览器突然不打开任何网页,无论是任何站点(如http://www.baidu.com), 还是Chrome浏览器的设置页面(chrome://settings/), 扩展页面 ( ch ...
- 谷歌Chrome浏览器提示adobe flash player已过期完美解决办法
最近使用谷歌Chrome浏览器提示adobe flash player已过期,浏览网页时一些flash元素的东西都无法正常显示,在网上尝试寻找很多方法,都不能解决,最后,经测试有效方法如下:一:下载最 ...
- Ubuntu 16下安装64位谷歌Chrome浏览器
Ubuntu 16下安装64位谷歌Chrome浏览器 1.将下载源加入到系统的源列表 在终端中,输入以下命令: sudo wget https://repo.fdzh.org/chrome/googl ...
- Ubuntu 16.04下安装64位谷歌Chrome浏览器
1.进入 Ubuntu 16.04 桌面,按下 Ctrl + Alt + t 键盘组合键,启动终端. 也可以按下 Win 键(或叫 Super 键),在 Dash 的搜索框中输入 terminal 或 ...
- Ubuntu基础教程——安装谷歌Chrome浏览器
对于刚刚开始使用Ubuntu并想安装谷歌Chrome浏览器的新用户来说,本文所介绍的方法是最快捷的.在Ubuntu上安装谷歌Chrome的方法有很多.一些用户喜欢直接在 谷歌Chrome下载页面 获得 ...
随机推荐
- Java并发编程volatile关键字
volatile理解 Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和volatile 关键字机制.volatile具有synchronized关键字的“可见性”,vo ...
- Java——动态生成POJO类
package com.java.test.dynamicpojo; import java.io.ByteArrayOutputStream; import java.io.IOException; ...
- html文本超出加省略号
如果实现单行文本的溢出显示省略号同学们应该都知道用text-overflow:ellipsis属性来,当然还需要加宽度width属来兼容部分浏览. 实现方法: overflow: hidden; te ...
- Java8中的Lambda表达式
Lambda是什么 Lambda表达式,也可称为闭包,是java8的新特性,作用是取代大部分内部类,优化java代码结构,让代码变得更加简洁紧凑. Lambda的基本语法 (expression)-& ...
- js解析MarkDown语法
1.问题描述: 我们使用MarkDown编辑器之后,比如我们写的MarkDown的语法是: # 一级标题 ## 二级标题 ### 三级标题 这种语法我们最终要转换成HTML的格式最终要存入数据库 ...
- spring设计模式之applicationContext.getBean("beanName")思想
1.背景 在实际开发中我们会经常遇到不同的业务类型对应不同的业务处理,而这个业务类型又是经常变动的; 比如说,我们在做支付业务的时候,可能刚开始需要实现支付宝支付和微信支付,那么代码逻辑可能如下 /* ...
- Mysql基础(四)
##约束 /* 含义:一种限制,用于限制表中的数据, 为了保证表中的数据的准确性和可靠性 分类:六大约束 not null: 非空,用于保证该字段的不能为空,比如姓名,学号等 default: 默认, ...
- NIO 的非阻塞式网络通信
1.阻塞与非阻塞 ① 传统的 IO 流都是阻塞式的.也就是说,当一个线程调用 read() 或 write()时, 该线程被阻塞,直到有一些数据被读取或写入,该线程在此期间不能执行其他任务. 因 ...
- R语言入门一
一.数据分析相关概念 数据:是指对事物或对象各方面进行描述的符号,包括事物的基本属性.特征.性质.状态.相互关系等:比如描述人的数据有:身高.年龄.性别.兴趣.性格.婚姻状态等等. 分析:是指把事物或 ...
- python调用大漠插件教程01注册大漠
使用大漠有两种方法,一种是直接调用特殊的dll实现不注册就能使(本人不会),另一种则是注册后使用. 如何用python注册大漠? from win32com.client import Dispatc ...