Redian新闻
>
这是Linus最忍不了的一集——虚幻引擎代码规范禁止使用脏话、禁止slave、master

这是Linus最忍不了的一集——虚幻引擎代码规范禁止使用脏话、禁止slave、master

公众号新闻
⬆️ 本周日下午,源创会深圳站,一起轰趴!


一位网友近日分享了 Epic Games 官方的 “虚幻引擎代码规范”,指出其中一些规定非常离谱,并质疑 Epic “为什么要把本来不是问题的事情变成问题”。

经查证,上面的截图确实来自虚幻引擎官方文档。

但这并不是 Epic Games 对使用虚幻引擎 5 开发的要求,而是 Epic 的自我约束 ——“在 Epic Games,我们有一些简单的编码守则和约定。本文档反映了 Epic Games 当前编码标准的状态。必须遵守编码守则。”
BTW,Linus 几年前通过了在 Linux 内核中避免 master/slave 等术语的提案。

当然不止 Linux,其他知名开源项目和社区都有相关的政治正确举动:

继GitHub之后,GitLab也将默认分支名master改为main
几天后,GitHub的“master”将更改为“main”
Linus通过了Linux中避免master/slave等术语的提案
MySQL也替换了master、slave
Python 也摊上事儿了,术语 master-slave 亦恐被无奈修改
太无奈!Redis 作者被迫修改 master-slave 架构的描述
微软工程师建议将Chromium代码库中的白名单改为allowlist,黑名单改为blocklist


最后放一篇开源中国发表过
的旧文

《在 Git 中写下 master 的开发者反省 “错误”,这些计算机术语错了吗?》

6月17日,最初在 Git 中写下“master”一词的开发者 Petr Baudis 在社交网站上说,“当我说话时,是给别人听的,而不是给我自己听的。”意指当年不该使用“master”这个可能给别人造成伤害的词语。
Petr Baudis 2005年参与编写 Git 时,选择了“master”(和“origin”),他曾多次希望可以改成“main”(和“upstream”)。直到现在,才由 GitHub 开始主导替换工作。
这几天,GitHub 首席技术官 Billy Griffin 也在社交网站上忙着回帖。他的大多数回复都在表达一个意思:谢谢您的意见,我们非常同意,并且我们已经开始着手将 master 替换成 main
他们发表上述言论的直接原因是,6月12日, 推特用户 Una Kravets 喊话 GitHub,建议把 Git 中默认分支名字 “master” 改成 “main”。随后,GitHub CEO 称赞了这个提议,并在评论区@Billy Griffin。
紧接着,更多人提出自己的意见,参与讨论。Billy Griffin 开始一遍遍回应:我们在改了、我们在改了…… Petr Baudis 则说要去研究计算机术语“master/slave”的历史。
GitHub 不是第一个在公众的监督下,换掉“master”的主体,也不会是最后一个。美国的反歧视和反暴力执法运动,已经促使许多科技巨头或知名软件,调整自己的业务和产品,平息舆论。
IBM、亚马逊、微软接连调整面部识别平台业务,以防加深歧视或遭受指责。GitHub、谷歌、OpenShift,微软的 PowerShell 脚本语言、P5.js JavaScript 库等近几周先后开始更改源码中,被认为带歧视色彩的术语,以免不恰当的词语造成伤害。
现在,关于是否要更改“master/slave、blacklist/withelist”等词语,可以改成什么的讨论还在继续,而越来越多的软件和厂商已经站好队——决意替换这类词汇。

多个公司更改代码中的计算机用语

计算机术语政治正确性其实不是新鲜话题。
2004年,“master/slave”曾被全球语言检测机构评为年度最不政治正确的十大词汇之一,时任主席称这是政治渗透到计算机技术控制中的表现。早在那时,洛杉矶就有一个区域采购部门,以种族歧视为由,禁购采用该词汇的软件。
不过当时计算机软件和网络并不像今天这么普及,因此更改用语的事件比较零散。比如,2008年,开源软件 Drupal 在社区发布消息,高调站队,将“master/slave”重命名为“client/server”,并解释称,在有更好的替代方案可用时,继续使用潜在的、冒犯性术语通常是不受欢迎的。
之后一直到2018年,IETF 在草案当中,要求开源软件更改“master/slave”和“blacklist/whitelist”两项表述。计算机术语的使用才引起更广泛关注。
同年,许多开发者呼吁一些开源软件厂商修改源码,Redis、谷歌、Python 都曾被要求这样做。谷歌开始避免再使用“blacklist”一词,Redis 和 Python 开始清除“master/slave”表述。
清除这些表述的成本不低。谷歌几天前确定 Chrome 浏览器中不再使用“blacklist/whitelist”的说法,后续计划用用“blocklist/allowlist”来替代,但这项工作并不确定什么时候能完成。
Redis 的作者 Antirez,早在2018年就解释过修改源码会产生的兼容性问题,例如:
  • 不能再应用现有的 PR

  • 有像 INFO 和 ROLE 这样的命令 —— 使用包含 slave 术语的协议进行回复

  • 术语 slave 中的源代码包含 1500 个事件

  • 拥有私人项目并根据需要进行代码合并的人会遇到很多问题

尤其是最后一项,GitHub 现在也面临这个问题。Billy Griffin 在回复更换用语的建议时说,“我们正在与 Git 的其他利益相关者合作,以达成一致。”GitHub 从更新新存储库的默认设置开始,并为迁移提供更多指导,除了 GitHub Pages 之外,他们正更广泛地更改新存储库的默认分支名称。
Billy Griffin 还在跟开发者解释,为什么更认可用“main”而不是其他词来代替“master”。原因包括,前两个字母相同,容易有肌肉记忆,另外表意也更为准确。此外,6月7日,Billy Griffin 还曾建议将计算机使用的 “blacklist/whitelist” 更改为“allowlist/denylist”。
在 Una Kravets 呼吁 GitHub 换掉“master”一词时,大家就在等待 Linus Torvalds 对这件事作出回应,解释为何这样写。事实上,这个词并不是 Linus 写进去的,而且从 Linus 2018年的一些行动中,或许就能看出 Linus 对此类事情的态度。
2018年9月16日,Linus 发行了 4.19-rc4版本的内核,他和其他几个内核开发人员在内核树的补丁程序上签字,合并了新的行为准则政策。
行为准则涉及要使用受欢迎、包容的语言。人们对 Linus 的做法和行为准则本身有很多不满,有些人认为采用行为准则是某些利益获得群体,控制软件项目的一种方式,没有必要在计算机用语中讨论立场是否正确,技术应该是中立的。虽然 Linus 发完公告就退出了开发团队,很多人也不喜欢新的行为准则,但这份准则还是留了下来,而“master”显然不属于准则中说的,是受欢迎的语言。

为什么硕士学位 master 不用改?黑色有什么不对吗?

反对的声音一直很多。 
最突出的两个理由是:计算机源码中的“master、blacklist”等词语,并不包含歧视情绪;更改的成本不低。
“即使我的想法是博客中表达的那样(代码中的 slave 并没有指代奴隶的意思),但我最终还是决定改变 Redis (中引起争议的)术语……但是我们需要做更多事情。”这是 Antirez 6月13日在社交平台上发表的言论,他道出了很多人的心声。
有开发者会问,如果要改代码中的词,那么英语国家的硕士(master)是不是要换?黑帽子、黑天鹅中的黑字是不是也要换掉?
其实倡议者们想表达的,并不是不能使用“黑”这个词,而是希望不要把“黑”作为“白”的对立面,表达“不好”、“坏”、“需要被限制”等负面意思。同理,当“master、slave”出现在源码中,并且表达的“主-从”关系,这会让一些人联想到奴隶制。 
Drupal 十多年前重命名“master/slave”时,就指出过这一点:如果代码里有一句“here are the steps I had to take to get my slave running”,可以理解成:我执行一些步骤,让分支运行;也可以理解成让我的奴隶跑起来。而奴隶制并没有消失,有些地方有人口贩卖交易,很多移民或特殊工种本质上正在被奴役,所以在软件社区,应该尽可能反对所有形式、语言的压迫。
针对“blacklist/whitelist”。黑名单 blacklist:代表该被禁止的、不好的名单。白名单 whitelist:代表可以被允许的,好的名单。更容易给看到代码的人,造成“黑 = 不好,白 = 好”的印象,而且,“black”也常常和“slave”联系在一起,提醒人们此前长时间存在的种族不平等。
一直以来,黑人运动中,一个重要的“任务”就是告诉所有人:黑色 ≠ 不好、黑人 ≠ 奴隶。上世纪,被誉为“黑人民族的桂冠诗人” Langston Hughes 曾用一首诗,来证明这个道理:
我是黑色的
当我照镜子时,我看到我自己,但我并不感到羞耻
上帝并没有让我比其他人更坏
大地是黑色的,各种好东西从大地里出来
树木、鲜花、水果、红薯和玉米,以及一切使人活下去的东西,都是从地下冒出来的——古老的黑土地
煤是黑色的,它可以温暖你的房子、做饭
夜晚是黑色的,有一个月亮,和一百万颗星星,非常美丽
睡眠是黑色的,它让你得到休息,所以你醒来时感觉很好
我是黑色的
今晚我感觉很好
“黑色有什么不对吗?”



延伸阅读

在 Git 中写下 master 的开发者反省 “错误”,这些计算机术语错了吗?


Reference

https://dev.epicgames.com/documentation/en-us/unreal-engine/epic-cplusplus-coding-standard-for-unreal-engine

END


热门文章

npm又被滥用,灰产用《庆余年2》盗版资源——把开源公共基础设施的羊毛薅秃了

macOS开源终端神器iTerm2——原生集成ChatGPT、让AI帮你写命令

寡姐“硬控”奥特曼

Linux之父“吃狗粮”最积极!

前端第一可视化库、百度知名开源项目——ECharts创始人“下海”养鱼


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
Meta、微软、Mistral AI、Hugging Face、通义、港中文六路进发开源大模型 | 大模型一周大事战争前后的少男少女们(二)T30最「高人气」的5个学院!卡梅CS最有实力、哥大GS最贴心、UCB化学最独特!精选SDE岗位丨NetApp、Adobe、Tesla持续热招!忍不了了!加拿大边境开始禁止印度人入境!40多名老印被原机遣返!“白夜”来袭,一集杀疯!上半年黑马,好看到忍不住夸…传理想开启新一轮人员优化;索尼警告 AI 公司禁止使用自家 IP 训练;雷军将直播自驾 SU7 Pro | 极客早知道麻州参议院通过限塑令!禁止使用一次性塑料袋 再生纸袋每个收10美分大厂动态丨Google、Tesla裁员不停,Apple捞人不止!历史上总统身边的一些趣事In China, the Hottest Travel Accessory Is a Tenured ProfessorPerplexity认为Google、Meta、马斯克和整个世界都在抄袭它禁止使用!微信、抖音最新公告今日实习|亚马逊开启Tech Business Developer Intern,学士学位即可报名!Unforgivable Blackness 4 Rising The Jack Johnson Story春天里的一杯浓酿MTA禁止使用面部识别技术查逃票收获当孩子飚脏话、狠话,你的第一反应很重要高质量3D生成最有希望的一集?GaussianCube在三维生成中全面超越NeRF国家药监局综合司公开征求《关于发布〈药用辅料生产质量管理规范〉〈药包材生产质量管理规范〉的公告(征求意见稿)》意见微软中国员工被禁止使用安卓手机,只能用 iPhone华为现场演示AI文生图时出现sleep代码,请问time.sleep(6)起到了什么作用?162人吃黄瓜感染沙门氏菌, 宾州病例最多; 宾州新法开车禁止使用手持设备; 费郊特拉华郡发生枪击案禁止使用!全球七百多家公司收到警告!TVB又一尺度新片!埋尸、飙粗口,一集比一集生猛!弗吉尼亚州发布行政令:公立学校内禁止使用手机2024心房颤动临床规范化治疗 I 李广平、罗心平、吕强、周根青、张志辉:心房颤动抗凝规范化的问题Java近期新闻:Jakarta EE 11-M4、MicroProfile、InfoQ 开发峰会、Commonhaus基金会使用 Rust 编写,Zed 代码编辑器宣布将推出 Linux 平台 alpha 版本好美的人间四月天~2024的春夏少不了的一双“玛丽珍鞋”精选SDE岗位丨Square、Tesla、Apple等公司持续热招!Linux之父 Linus Torvalds 编译 arm64 Linux 内核又有 “ 新欢 ”:Ampere AArch64微信最新公告:禁止使用!Rust 生态纯属炒作?3 年写了 10 万行代码的开发者吐槽:当初用 Rust 是被忽悠了
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。