前些日子,因为 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 处理,而不需要保持开放讨论的状态。”
然而,我们都应该明白,要摆脱真正的 master 和 slave,绝不仅仅是一件提交 pull request 就能解决的事。
编译自 https://www.theregister.co.uk/
本文出自开源中国,滴滴云博客经授权转发,查看【原文链接】