【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

人红是非多!Rust 社区冲突不断,创始人:别 Call 我了,我也救不了!

  • 2023-09-12
    北京
  • 本文字数:3585 字

    阅读完需:约 12 分钟

大小:1.76M时长:10:14
人红是非多!Rust社区冲突不断,创始人:别Call我了,我也救不了!

Rust 为什么会有这么多管理上的问题?如果 Rust 采用由创始人治理的方式,会不会更好?实际上,Rust 的创造者 Graydon Hoare 曾回应过这个问题,他认为如果是由他来治理的话,事情肯定会很不一样,但是 Rust 就不太可能像现在这样“出圈”。

 

Rust 团队冲突不断

 

前几天,作为 Rust 发布团队(Release team)的一员,Jonas Schievink 要求 Rust 团队从项目中删除掉和他有关的所有文件。

 

“请求将我从‘校友’中删除,并删除和我的用户名绑定在一起的文件”,“我还想请求 Rust 团队从项目的 commits 中删除我所有作者信息。”

 

“我不想再以任何身份参与 Rust 项目。”

 


Jonas Schievink 还吐槽了 Rust 领导团队,认为这些人“破坏了社区项目,并压制了公众讨论”。

 

Rust 团队一直风波不断。此前,还发生过为了抗议 Rust 核心团队(Core team),审核团队集体辞职的事情。他们认为 Rust 核心团队在执行社区行为准则和标准上让自己不受制约。Rust 核心团队并没有和其他成员遵循同样的行为准则 (CoC),Coc 似乎变成了核心团队 “严于律人” 的工具。

 

今年 5 月,Rust 领导小组粗暴撤换 RustConf 主题演讲人,事态升级后引发多人出走

 

今年 6 月,在经历了多次治理风波后,Rust 项目宣布成立新的顶级治理机构:领导委员会(Rust Leadership Council)。由 Rust 各团队成员合力创建一份新的、名为 “ Rust 领导理事会” 的 RFC 草案,并确立了以下内容:移除 Rust 核心团队,由各团队出一个代表,成立一个顶级的治理团队“领导委员会”。 

 

“领导委员会” 负责一些职责不清的工作安排及其优先次序,然后对这些工作进行精确到子团队或成员的委托。另外,“领导委员会” 还要以跨团队工作、规划和项目的长期成功等为目标,成为团队之间的协调、组织和问责机构。领导委员会还需要协调因项目而导致的团队、结构或流程的变化,确保顶层团队负起责任,并负责展示 Rust 项目的官方态度。

 

可能“ Rust 领导理事会”还是没有解决好当前的各种乱象,所以 Jonas Schievink 又站了出来:“对最近 RustConf 主题演讲的怯懦处理只是最近的一个例子,而且它也不太可能是最后一个。即使领导结构发生了变化。永久解决这些问题的唯一方法是从 Rust 项目中完全驱逐那些对这些问题负责的人,或者为这些问题辩护的人。”

 

Rust 为什么会有这么多管理上的问题?如果 Rust 采用由创始人治理方式,是不是更好?实际上,Rust 的创造者 Graydon Hoare 曾从侧面回应过这个问题,他认为如果是由他来治理的话,方向肯定会很不一样,但是 Rust 就不太可能像现在这样“出圈”。

 

Rust 最早诞生于 2006 年,刚开始只是 Hoare 的个人开发项目。但在发展过程中,Rust 吸引到更多贡献者,并于 2009 年正式获得 Mozilla 的官方赞助。

 

Hoare 表示自己也无法处理好各种冲突

 

Hoare 在他的个人博客可以说是无所不聊。2023 年他撰写了四篇文章,第一篇谈的是业余无线电技术,第二篇则是企业雇用的维护人员往往对于开源贡献没什么热情(他认为雇主应该引导这些「维护人员成为真正的维护者」)。

 

然后,Hoare 连发两篇博文,对 Rust 语言的演变进行了快速梳理。

 

今年 5 月底,Graydon Hoare 在自己的博客上回顾了 Rust 诞生历程。Hoare 首先提醒读者,“我已经有十年没参与这个项目了”,所以“大家对我的一切言论都请保持谨慎态度,单纯把我看作一位曾经在重要阶段参与过 Rust 发展的当事人就好……”

 


有趣的是,6 月份发布的第二篇文章题为《我理想中的 Rust 不会有未来》(The Rust I Wanted Had No Future,https://graydon2.dreamwidth.org/307291.html)。

 

首先,Hoare 提起最近人们执的问题,“你有没有想过在 Rust 项目中 BDFL(终身扮演仁慈的独裁者?)”而如果他真的这样做了,Rust 项目的发展会不会更加顺遂?BDFL 是授予少数开源软件开发领导者的头衔,通常是在社区内的争议或争论中保留最终决定权的项目创始人。

 


Hoare 首先给出了明确的回复,“不会。”他进一步补充道,“我不喜欢受到关注、也不喜欢公众压力。在 2009 年到 2013 年担任项目的技术主管时,我就已经快到极限了……另外,我觉得自己没办法建立起强大或者健康的团队制度,处理不好决策、冲突、授权和扩展之类的具体工作。”

 

后来这篇文章被发到了 Reddit 上的 Rust 子论坛中,Hoare 也经常在这里转悠。有位用户询问 Rust 最近的项目开发是否有所放缓,Hoare 回应称“就主要功能来说,开发速度的适当放缓是有好处的。”

 

而在他那篇文章的评论区中,Hoare 本人表示“千万别让我聊类型参数里的尖括号和生命周期里的单引号!”

 

有位 Reddit 用户倒是坚持跟进,而 Hoare 澄清说“我们曾经就这些语法问题展开过争论,但最后我失败了。”他甚至公开了一个指向“Rust prehistory”GitHub repo 的链接,其中存放着 13 年前的 Rust 代码。可以看到,Hore 当初是想在类型参数中使用方括号的,他补充说“我个人一直觉得,类型参数就应该使用方括号,根本不需要争论。”

 

Hoare 还反对在引用中显式使用生命周期,在他看来“生命周期几乎肯定可以推断出来,所以无论具体使用哪种语法,都没必要让开发者单独编写。但很明显,Rust 最后没有顺着这个路子走。”Hoare 后来在 Reddit 评论中感叹道,“终有一天,我可能会写篇〈我心目中的真正 Rust〉的博文,告诉大家我当初想象中的 Rust 和如今真实的 Rust 间其实有着巨大差异。但请别误会,尽管大有不同,但我对 Rust 语言获得的成功仍然抱有巨大的成就感和满足感!”

 

希望 Rust 变更好

 

Hoare 认为偏好差异的确真实存在,“我自己的偏好就比较特殊,可能跟大多数朋友有所不同。”

他强调他心目中的 Rust“可能会让所有参与者都不满意,也没办法像现在这样真正破圈……”

 

“请别误会我的意思:我对现在的结果非常满意。我很高兴行业中有了一种可行的 C++替代方案,它给人们提供一种新的范式、一种可供日常使用的合理选项。我也在用 Rust,也很高兴能有它来替代 C++。但是……”

 

在文中,Hoare 也列出了“Rust 中那些我特别不认可且/或目前不太喜欢的地方。”比方说,在文中“复杂的语法”这部分,Hoare 就抱怨说 Rust 仍然难于解析。“它虽然比 C++更易用,但跟 C++比较本身就说明它的易用性不足。当初我也努力过,但从类型参数里的尖括号到模式绑定的歧义、再到分号和大括号的使用规则,我几乎在每个具体问题上都失败了……我现在甚至不想再谈这个话题,总之现在的语法跟我的设想相去甚远。抱歉了各位。”

 

另一个例子,则是 Rust 处理类型的方式。Hoare 本人更偏向“结构”类型(即只要各对象的结构相同,则其类型就相互兼容——不受声明时所使用的类型名称的影响)。Hoare 还透露,“Rust 语言最初带有(我也希望它能再次拥有)编译器发出的「类型描述符」,用户可以在其上调用反射算符。”

 

Hoare 对于 Rust 如何处理十进制浮点数也有不少想法。“基本上,每种语言都意识到金融数学有其特殊性,并最终添加了小数类型。我希望 Rust 能提前完成这项工作,但最终还是被放进了库里。虽然选项不少,但我觉得能内置的话也许更好……”

 

还有更多例子,但 Hoare 倒是没有列举他的构想跟现在真实 Rust 之间的差异。相反,“重要的是表达当时在各个设计主题上的分歧。”

 

Hoare 写道,“我在研究这门语言时考虑的各种优先事项,基本上跟围绕该语言发展出来的社区所认定的优先事项出现了巨大偏差。甚至经过多年发展,我关注的那些问题还是没有得到重视。”

 

“我会为了简单性而牺牲性能和表达力——也就是更强调帮助最终用户减轻认知负荷、在编译器中降低实现难度。我觉得这才是 Rust 的正确发展方向,但事实证明这似乎跟大多数人对于 Rust 的预期截然相反。”

 

Hoare 甚至给出了不少细节:

  • “Rust 社区中的很多人认为「零成本抽象」是 Rust 语言的核心承诺。我永远不会这么讲,而且我个人觉得这种机制本身就有问题。这是种典型的 C++思路,对设计空间造成了不必要的限制……换作是我,会更倾向用大量相对较小的恒定性能成本,来替代包含大量抽象的所谓更简单/更强大的版本,哪怕语言的实际性能会变得更慢。”

  • “同样的,我也会牺牲掉一部分表达力。但这可能会让很多现代 Rust 程序员感觉不爽,认为 Rust 项目既笨拙又充满官僚气息、像是一种保姆式语言,根本不允许用户在库代码中编写各类功能,甚至不信任程序员用变量隐藏、环境捕捉或内联函数等简单结构。”

 

大家可以想见,这篇博文在登陆 Reddit 之后,很快引起了各种各样的讨论。一位用户明确表示:“我真希望能拥有 Hoare 设想中的 Rust,那听起来很美。”

 

但另一位评论者似乎更加务实更改,认为“他的 Rust 不会更好,只是跟现状不同……”

 

“我倒是更喜欢如今的 Rust……我喜欢性能更高而且脚踏实地的代码,而真实的 Rust 恰好给了我这些。”

 

参考链接:

https://twitter.com/sheevink

https://graydon2.dreamwidth.org/307105.html

https://graydon2.dreamwidth.org/307291.html

https://github.com/oxidecomputer/oxide-and-friends/blob/master/2023_05_30.md

https://thenewstack.io/graydon-hoare-remembers-the-early-days-of-rust/

2023-09-12 15:006494

评论 1 条评论

发布
用户头像
没网友叫他fork一个再开发一个它理想的语言?
2023-09-12 18:14 · 广东
回复
没有更多了
发现更多内容

盘点|《数据安全法》的62项配套「国家标准」(附下载)

极盾科技

数据安全

再获权威认可!天翼云论文被IEEE/ACM CCGrid收录

天翼云开发者社区

云计算 私有云 云网关

✅MySQL的InnoDB存储引擎支持哪几种行格式?

派大星

事务 Java 面试题 InnoDB存储引擎 互联网大厂面试

浅谈人工智能

天津汇柏科技有限公司

人工智能

Hive引擎底层初探

京东科技开发者

青否AI数字人直播不封号怎么弄?

青否数字人

数字人

基于Redis实现基本抢红包算法

京东科技开发者

【PolarDB-X从入门到精通】 第五讲:PolarDB集中式版安装部署(源码编译部署)

阿里云数据库开源

阿里云 技术学习 polarDB 技术干货 PolarDB-X

Python中2种常用数据可视化库:Bokeh和Altair

华为云开发者联盟

Python 数据可视化 华为云 华为云开发者联盟 企业号2024年4月PK榜

云主机AI服务的性能测试和优化

天翼云开发者社区

云计算 AI 云服务 云主机

Myvatis关联关系映射与表对象之间的关系

百度搜索:蓝易云

sql 云计算 Linux mybatis 云服务器

如何使用Python和正则表达式处理XML表单数据

百度搜索:蓝易云

Python xml Linux 运维 ElementTree

​什么是 gRPC?​

NGINX开源社区

gRPC 云原生 Rest API HTTP/2

AI数字人直播是骗局还是机遇?揭秘数字人的真相!

青否数字人

数字人

一种融合指代消解序列标注方法在中文人名识别上的应用(上)

京东科技开发者

基于Material Design风格开源、易用、强大的WPF UI控件库

EquatorCoco

开源 UI WPF

DTC2024,华为云数据库创新融合大发展,打造世界级数据库!

华为云开发者联盟

数据库 华为云 华为云数据库 华为云开发者联盟 企业号2024年4月PK榜

openproject在docker下的安装

百度搜索:蓝易云

Docker 云计算 Linux 运维 OpenProject

IaC:实现持续交付和 DevOps 自动化的关键

SEAL安全

DevOps 运维 CI/CD IaC

一文读懂BTC生态新贵Giants Planet,将L2与现实世界整合

威廉META

【论文速读】| 大语言模型是边缘情况模糊测试器:通过FuzzGPT测试深度学习库

云起无垠

[行业经验] 混合云容灾混沌演练

腾讯云混沌演练平台

免费在线OCR识别工具TextIn Tools,开启智能学习新时代

合合技术团队

合合信息 OCR识别 文字处理 扫描全能王

网络审计:为什么定期检查您的网络很重要

天翼云开发者社区

云计算 网络安全 网络审计

go、Java、python三门语言的优缺点和各自擅长做什么

百度搜索:蓝易云

Java Python Go Linux 云服务器

如何爬出Kotlin协程死锁的坑?

阿里技术

Java kotlin 协程死锁

阻碍团队使用工具的原因竟然是……

BY林子

审计 度量

百度何俊杰:智能体生态,不是大玩家「独角戏」,而是全民「大合唱」

Geek_2d6073

朋友圈第五条广告代理怎么申请

微点全媒体微信推广渠道

深蓝互动将启动《重返未来:1999》鸿蒙原生应用开发

最新动态

刘强东AI数字人开启直播带货,数字人迎来直播热潮!

青否数字人

数字人

人红是非多!Rust社区冲突不断,创始人:别Call我了,我也救不了!_开源_Tina_InfoQ精选文章