Rust语言怀疑论史 | AI生成和翻译
关于Rust历史的个人见闻
标题:《我眼中的Rust发展史》
这是一位经验丰富的程序员(可能是台湾人,用中文发布)撰写的长篇个人反思,内容带有批判性。作者回顾了早期接触Rust的经历,并解释了为何尽管该语言如今大受欢迎,他仍对其技术理念和文化氛围持深刻怀疑态度。
初遇Rust(2009年,印第安纳大学)
- 在印第安纳大学求学期间,作者有两位非计算机科班出身的同学,在Dan Friedman的高阶编程语言课程中表现吃力。
- 这两位同学属于”纸上谈兵”型,对深层概念理解有限,但擅长社交与自我推广。
- 2009年夏季,他们进入Mozilla研究院实习,参与了Rust语言的早期开发(当时还是Graydon Hoare的个人项目,后被Mozilla采纳)。
- 暑期结束时,他们在校内举办讲座介绍Rust,这是作者首次接触这门语言。
2009年讲座(第一印象)
- 整场讲座充满营销话术:口号响亮却缺乏技术实质。
- 演示幻灯片用三角形标注”Rust三大特性”——作者只记得”安全性”,其余两项已遗忘。
- 最惊人的宣称:Rust将通过纯静态分析实现完全内存安全,且完全无需垃圾回收机制。
- 作者离场时的想法:”这不过是Mozilla的炒作。他们绝不可能用这语言开发出浏览器,最终会像其他研究项目一样无疾而终。”(特别提及DrServ/DrJS作为Mozilla另一个失败的研究项目)
对设计者与初始语言选择的质疑
- 作者质疑Graydon Hoare(Rust创始人)在编程语言理论方面的造诣。
- 尤其认为选择OCaml作为首款实现语言显露其品味不足(某些编程语言老派学者持有类似争议观点)。
后续发展
- 其中一位同学后来开展所谓”通用”GPU语言博士项目,声称能在GPU上构建树状、图状等数据结构。作者认为这注定失败,因为GPU专为数据并行计算设计。该项目最终未能实用化,但该同学仍获得博士学位,现于某科技巨头从事Rust编译器开发。
作者对内存管理的研究历程
- 作者曾痴迷于”无需GC的完全静态内存安全”这一理想(正是Rust最初的宣传点)。
- 耗费大量时间设计内存模型与静态分析方案。
- 当其向导师Kent Dybvig(Chez Scheme传奇作者)阐述构想时,导师平静回应:
“完全静态的内存管理真的可行吗?内存管理本质是动态过程。” - 这句话击碎了作者的幻想,他意识到精确垃圾回收在通用场景下不可判定(与停机问题相关)。
- 当建议改用引用计数时,Kent指出其高开销缺陷,且性能往往不如优秀的分代GC。若垃圾回收器设计精良,暂停时间并非核心问题(Chez Scheme已证实这点)。
Chez Scheme的反证
- 作者极为推崇Kent Dybvig与Chez Scheme:
- 闪电级编译速度
- 可调优的低暂停垃圾回收
- 核心哲学:不浪费时间优化拙劣代码,假定程序员具备能力,选择恰当的简洁抽象
- 换言之,智慧胜于蛮力复杂化
Rust的现实发展
- “纯静态内存管理,彻底摒弃GC”的原始梦想已然破灭
- 现代Rust包含:
Rc<T>/Arc<T>(通过Weak实现循环检测的引用计数)unsafe代码(网络栈/浏览器/操作系统内核等现实场景必需)- 持续研究试图规范
unsafe(Stacked Borrows/Tree Borrows等),但每个新模型都带来新的限制
- 然而社区宣传仍重复”强静态保证”与”无畏并发”的口号
- 当指出漏洞时,官方回应往往变成”这是Rust的设计哲学”或”你尚未理解借用检查器”
作者当前立场
- 他完全理解生命周期、借用等概念,甚至教授过实现函数式语言解释器的高阶Rust课程
- 但越是深入教学,越能体会C++的优越:
- C++的智能指针与RAII机制对多数任务更简洁直观
- 需要极致性能时仍会选择C/C++
- 认为Rust的错误信息难以破译,与借用检查器的持续对抗令人疲惫
- “设计哲学”的辩护像是为妥协寻找的宗教式借口
核心观点
作者认为现代Rust的成功主要归因于营销胜利与生态势头,而非证明其核心理念比数十年来的先行技术(区域系统/Cyclone/线性类型/高性能GC等)更具根本优势。他相信最初的宏伟宣称实属天真,后续妥协不可避免,而社区如今在面对缺陷时选择用”哲学”作为遮羞布。
这份罕见的内部视角批判来自:
- 见证Rust诞生的亲历者
- 深度研究过内存安全的实践者
- 受教于Kent Dybvig的门生
- 在2025年仍选择C/C++的清醒者
无论认同与否,这都为”Rust是已抵达的未来”的主流叙事提供了值得深思的反方视角。