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将不再使用“黑名单”等词的更多相关文章

  1. 谷歌Chrome浏览器开发者工具的基础功能

    上一篇我们学习了谷歌Chrome浏览器开发者工具的基础功能,下面介绍的是Chrome开发工具中最有用的面板Sources.Sources面板几乎是最常用到的Chrome功能面板,也是解决一般问题的主要 ...

  2. 谷歌chrome浏览器和火狐firefox浏览器自带http抓包工具和请求模拟插件

    谷歌chrome浏览器自带http抓包工具 chrome://net-internals/ 谷歌chrome浏览器http请求模拟插件:postman 火狐http请求模拟插件:httprequest ...

  3. 在 Ubuntu 16.04 中安装谷歌 Chrome 浏览器

    进入 Ubuntu 16.04 桌面,按下 Ctrl + Alt + t 键盘组合键,启动终端. 也可以按下 Win 键(或叫 Super 键),在 Dash 的搜索框中输入 terminal 或&q ...

  4. Ubuntu小技巧——怎样安装谷歌Chrome浏览器

    对于刚刚开始使用Ubuntu并想安装谷歌Chrome浏览器的新用户来说,本文所介绍的方法是最快捷的.在Ubuntu上安装谷歌Chrome的方法有很多.一些用户喜欢直接在谷歌Chrome下载页面获得 d ...

  5. 关于如何解决谷歌Chrome浏览器空白页的问题

    谷歌Chrome浏览器突然不打开任何网页,无论是任何站点(如http://www.baidu.com), 还是Chrome浏览器的设置页面(chrome://settings/), 扩展页面 ( ch ...

  6. 谷歌Chrome浏览器提示adobe flash player已过期完美解决办法

    最近使用谷歌Chrome浏览器提示adobe flash player已过期,浏览网页时一些flash元素的东西都无法正常显示,在网上尝试寻找很多方法,都不能解决,最后,经测试有效方法如下:一:下载最 ...

  7. Ubuntu 16下安装64位谷歌Chrome浏览器

    Ubuntu 16下安装64位谷歌Chrome浏览器 1.将下载源加入到系统的源列表 在终端中,输入以下命令: sudo wget https://repo.fdzh.org/chrome/googl ...

  8. Ubuntu 16.04下安装64位谷歌Chrome浏览器

    1.进入 Ubuntu 16.04 桌面,按下 Ctrl + Alt + t 键盘组合键,启动终端. 也可以按下 Win 键(或叫 Super 键),在 Dash 的搜索框中输入 terminal 或 ...

  9. Ubuntu基础教程——安装谷歌Chrome浏览器

    对于刚刚开始使用Ubuntu并想安装谷歌Chrome浏览器的新用户来说,本文所介绍的方法是最快捷的.在Ubuntu上安装谷歌Chrome的方法有很多.一些用户喜欢直接在 谷歌Chrome下载页面 获得 ...

随机推荐

  1. vue 使用cli脚手架手动创建项目 相关的选择配置及真正项目的开始

    转载https://www.jianshu.com/p/635bd3ab7383 根据上述连接将基本的环境和命令和装好 使用命令行  vue create 项目名称  出现选项  选择手动(没有截图展 ...

  2. Ajax用法查询

    1)$.get(url, [data], [callback], [type]) 2)$.post(url, [data], [callback], [type]) 其中: url:代表请求的服务器端 ...

  3. C#中的any和all

    any是判断列表里面是否有哪怕一个: all是判断列表里面是否每一项都包含:

  4. [自动化-脚本]001.自动领淘金币:Anyweb模拟操作

    通过模拟手工操作的方法领取淘金币.该方法万能且通用,有能力的还可以自行修改脚本. 工具 软件下载 anywebscript.com 方法/步骤 1.安装软件如图所示 2.设置脚本: (1)进入网站:[ ...

  5. [书籍分享]0-008.商业模式新生代[Business Model Generation]

    封面 内容简介 <商业模式新生代>内容简介:当你愉快的看完第一章:商业模式画布,赫然发现这些构成要素全都交织成一幅清晰的图像在脑海中呈现,它们如何互相影响.如何交互作用全都历历在目.利用商 ...

  6. MFC---编辑框控件

    1.编辑框内允许多行输入,或者说是允许敲回车 编辑框属性里将multiline设置为TRUE或者将Want Return设置为TRUE 2.水平滚动条,垂直滚动条 Horizontal Scroll ...

  7. css背景图定位和浮动

    网站图标引入:<link rel="shortcut icon" href="ico图标地址"> 背景图片  background-image: u ...

  8. Java实现 LeetCode 423 从英文中重建数字

    423. 从英文中重建数字 给定一个非空字符串,其中包含字母顺序打乱的英文单词表示的数字0-9.按升序输出原始的数字. 注意: 输入只包含小写英文字母. 输入保证合法并可以转换为原始的数字,这意味着像 ...

  9. Java实现 蓝桥杯VIP 算法训练 水仙花数

    这道题有两个方法,第一个就相对来说通俗易懂 第二个可以用到Java的一些方法 public class 水仙花数1 { public static void main(String[] args) { ...

  10. 原声js数组去重方法

    数组去重方法 方法一 ---- 利用数组filter + indexOf方法去重 方法二 ---- 利用数组forEach + indexOf方法去重 方法三 ---- 利用数组from方法 + Se ...