专栏首页CU技术社区Redis 之后,Python 的 master-slave 亦恐被无奈修改

Redis 之后,Python 的 master-slave 亦恐被无奈修改

英文:TheRegister,翻译:开源中国社区 www.oschina.net/news/99858/python-purges-master-and-slave

前两天我们报道了一篇关于 Redis 的新闻,因为 Redis 中的 master-slave 术语被认为具有侵犯性,所以出现了很多呼吁修改的声音。最终,Redis 作者迫于无奈,在尽量不影响项目的情况下,做了一些妥协。而如今,这项带有政治色彩的“运动”蔓延到了 Python 身上,就连宣布退出 Python 核心开发组决策层的 Guido van Rossum 也被请回来解决关于政治不正确的语言辩论。Guido van Rossum 是 Python 创始人,素有“终身仁慈独裁者(BDFL)”之称,不过他现在的处境就像教父中黑手党柯里昂家族首领的 Michael Corleone 一样。

和其他开源社区一样,Python 的管理员也被问及是否真的想继续使用 master 和 slave 术语来描述相关的技术操作和关系,因为这些单词会让一部分人想起美国旧时的黑奴制度,这是一个历史遗留问题而且直到今天依然会引起关于政治方面的激烈争论。

就在上周,在 Red Hat 工作的 Python 开发者 Victor Stinner 公开提交了 4 个 PR,希望能将 Python 文档和代码中出现的 "master" 和 "slave" 修改为像 "parent" 和 "worker" 这样的术语,以及对其他类似的术语也进行修改。Victor Stinner 在他的 bug report 中解释说,出于多元化的考虑,尽量避免出现与奴隶制相关的术语反而可能会更好,像 'master' 和 'slave' 这种。他还指出之前就已有关于这个问题的投诉,但都是私下提出的 —— 以避免引起激烈的争论。

等到 Python 3.8 发布时,相信像这些被认为具有“侵犯性”的术语将会减少。

事实上,在技术圈子里,这种关于政治正确的事屡见不鲜。前两天关于 Redis 的这件事,社区去年就因这个问题进行了激烈的争论。而在 2014 年,Drupal 在经过一番论证之后,将 "master" 和 "slave" 这两个词换成了 "primary" 和 "replica"。同年,Django 用 "leader" 和 "follower" 代替了 "master" 和 "slave"。CouchDB 也在 2014 年进行了类似的语言描述方面的清理。

这些争论在科技行业也仍然存在。2004年,观察组织 —— 全球语言监测组织将科技行业中 "master" 和 "slave" 的使用列为当年政治最不正确的术语。而这些术语的行业用法可追溯到几十年前,我们甚至可以在多个 RFC 中找到它,例如 RFC 977 (1986)。

而这次关于 Python 的讨论,我们可以预见到,参与讨论的每个 Python 开发者都不会同意 Stinner 提出的变更。Stinner 提交的 bug report 中的评论回应了关于这一主题的所有其他在线争论。

“我不会因为 Python 根据秘密评论改变其行为而感到激动”,Larry Hastings 感叹道,“传统上,Python 有一个非常开放的治理模式,所有讨论都是在公开场合进行的。” “是否真的有必要用 SJW(Social Justice Warrior) 的意识形态/术语来“污染” Python 代码库?”Gabriel Marko 质疑道,“那么接下来又会是什么?” Raymond Hettinger 也对这些术语是否真的有明显伤害他人感到疑问。他在评论中写道:“如果一个特定的段落表述不清楚或令人反感,这确实应该被修改;否则,我们不应该让含糊不清的政治正确观念影响其他明确的常见英语用法。而且据我所知,没有一个案例表明,在文档中使用了'master'就是为了反映奴隶制这件事,或者暗含对这一概念的认可。”

最后,van Rossum 介入了这场争论,以结束一场似乎是无解的讨论。他在评论中写到:“我正在关闭这些 PR,Victor 的 PR 中有四分之三已被合并。但第四个不应被合并,因为它是对 UNIX ptys 底层术语的反映。还有一个关于 'pliant children' -> 'helpers' 的讨论,这个后续可以作为 PR 处理,而不需要保持开放讨论的状态。”

I'm closing this now. Three out of four of Victor's PRs have been merged. The fourth one should not be merged because it reflects the underlying terminology of UNIX ptys. There's a remaining quibble about "pliant children" -> "helpers" but that can be dealt with as a follow-up PR without keeping this discussion open.

然而,我们都应该明白,要摆脱真正的 master 和 slave,绝不仅仅是一件提交 pull request 就能解决的事。

本文分享自微信公众号 - CU技术社区(ChinaUnix2013)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-09-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 盘一盘 Python 系列特别篇 - 面向对象编程

    在写 Keras (下) 时,发现很多内容都要用到类 (class) 和对象 (object),因此本文作为 Python 系列的特别篇,主要介绍面向对象编程 ...

    用户5753894
  • Windows 下 python 版本切换

    编最近在学习python相关的知识,电脑中安装的是python3,就发现一些python2脚本无法顺利运行。

    一名白帽的成长史
  • Django学习-第五讲:模板中静态文件的加载

    一个网站中除了正常的html页面之外,还有相应的样式,以及js等其他的文件,我们把除了html网页外的文件称之为静态资源文件,下面我们介绍一下怎么在django...

    小海怪的互联网
  • Java 8 中处理日期和时间示例

    在Java 8以前,日期和时间处理一直被广大java程序员抱怨太难用,首先是java.util和java.sql中,都包含Date类,如果要进行时间格式化,还需...

    芋道源码
  • 会用python把linux命令写一遍的人,进大厂有多容易?

    看过这篇《2000字谏言,给那些想学Python的人,建议收藏后细看!》的读者应该都对一个命令有点印象吧?没错,就是 linux 中经常会用到的 ls 命令。

    机器视觉CV
  • pyspider最佳实践

    pyspider是好东西,非常稳定,很久很久以前架了一个,心冷了一段时间,但人家尽忠职守地持续运行,一直在抓取东西。

    用户1075292
  • 12.Django基础十之Form和ModelForm组件

      我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来。

    changxin7
  • 17个Python骚操作,你都Ok吗?

    Python 是一门非常优美的语言,其简洁易用令人不得不感概人生苦短。在本文中,作者 Gautham Santhosh 带我们回顾了 17 个非常有用的 Pyt...

    小小詹同学
  • Python进阶|函数变量作用域

    在Python编程中,函数是我们接触较多的知识点,毕竟函数是用来节省代码量和提高程序效率很重要的一个手段。

    罗罗攀
  • CuPy | 教你一招将Numpy加速700倍?

    就其自身来说,Numpy 的速度已经较 Python 有了很大的提升。当你发现 Python 代码运行较慢,尤其出现大量的 for-loops 循环时,通常可以...

    昱良

扫码关注云+社区

领取腾讯云代金券