10 月 19 日,知乎问题"C++ 之父为什么说 Rust 等内存安全语言的安全性并不优于 C++?"重新挂上热榜,新问题回答下面挂着 129 万的浏览量,评论区照例吵成两派。但很多人不知道:Stroustrup 这话不是新说的,出自 2022 年——这周社区重新翻旧账,是因为 10 月接连落地的两个新事件,正好把这场争论的下半句补齐了。
先把 C++ 之父的原话摆正,别带着二手结论吵架
2022 年,美国 NSA 发布内存安全报告,建议能不用 C/C++ 的新项目就别用了。 Stroustrup 随后发了一份《A call to action: Think seriously about “safety”》回应,核心就两点:知乎
别把 C++ 和 C 混为一谈——现代 C++ 有 RAII、智能指针、容器,跟裸指针手动 malloc/free 不是一回事;
内存安全不等于软件安全的全部——语言防得住越界,防不住权限判断写错、事务逻辑不一致、死锁。
这两点其实很难反驳,被反驳的是那步推论:从"Rust 不能保证整个系统绝对安全",滑到"Rust 在内存安全上不优于 C++"。这俩根本不是一个命题。

mold 3.0:同一个作者,交了两份语言的答卷
10 月 8 日,高性能 Unix 链接器 mold 发布 3.0,完成从 C++ 到 Rust 的过渡——作者 Rui Ueyama,正是 LLVM lld 链接器的原作者,项目自己从 C++ 换到 Rust,没有比这更干净的对照实验。知乎
官方发布说得很直白:命令行选项一样,支持的目标架构一样,除 bug 修复外输出相同,链接性能和 C++ 版持平。知乎
差别出在"出事了怎么办":旧 C++ 实现里,损坏的输入文件可能触发越界内存读取、直接段错误;Rust 版会做边界检查,遇到故障操作直接停下来。 工程侧的动静也不小:CMake 换 Cargo、需要 Rust 1.95+、去掉 oneTBB 依赖、默认静态链接 mimalloc;3.x 系列的目标是继续缩小与 GNU ld 的兼容差距,最终争取被 Linux 发行版采纳为默认链接器。知乎
第一个带数据结论:Rust 的收益不是"快",是"错得规矩"。 指望换 Rust 就性能暴涨的,mold 实测先泼一盆冷水。
亚马逊 Verus:Rust 连"算得对"都证明不了,但这句下半段也得说清
10 月 18 日 Tony Bai 的解读:亚马逊在 AWS Nitro 隔离引擎的关键组件上用上了 Verus——一个面向 Rust 的开源自动程序验证器。逻辑链条值得所有觉得"Rust=绝对安全"的人看一眼。知乎
Rust 的类型系统能防内存越界、防数据竞争,但 C 里数组越界是未定义行为,Rust 里是程序崩溃退出——更安全没错,可一段正确的代码压根不该走到越界那一步。类型系统证明不了"算出来的结果是预期的",也证明不了"不会泄露敏感数据"。Verus 做的事是让你给代码写数学规约(requires/ensures),工具机械验证任意输入下规约成立;规约和证明直接写在 Rust 源码里,不用切换语言,连 unsafe 代码和并发锁都能证。Firecracker、亚马逊内部的无服务器 SQL 数据库也都是 Rust 写的,验证是往上盖的第二层。知乎


第二个带数据结论:Stroustrup 说"内存安全不是全部"是对的;但亚马逊补第二层的前提,是第一层先用 Rust 把地基划好了。 争论里双方各说对一半。
社区的账本:真重写的人怎么说
知乎答主 kimmking 10 月 11 日交了份真实选型复盘:带团队把一个 C++ 边缘网关模块用 Rust 重写对比。内存类缺陷(越界、悬垂、double free)“基本消失了——不是我们写得小心,是编译器不让过”。 但他同时点出 C++ 守得很硬的三块:几千万行存量代码和成熟库(游戏引擎、高频交易、图形、驱动);生态惯性(各领域最佳库就是 C++ 写的,绑定过去反而引入复杂度);团队成本(写了十年 C++ 的人转 Rust,前三个月产出断崖下跌)。知乎
评论区也有真实的反诘,值得留着:“我是实在不信上线代码有 double free,我读书少,你别骗我”;“转 Rust 有一个头疼问题是,必须要全面学习后才能有产出,缺一点都不行”。 9 月另一个高赞回答把分歧说透了:选 C++ 还是 Rust,本质不是选语法,是选你愿意在哪个阶段挨收拾——C++ 的心智负担是延迟满足型定时炸弹,Rust 是编译期先收拾你。知乎知乎
底层逻辑一句话:两种语言都能写对,区别在谁来保证——C++ 靠开发者纪律加工具链,Rust 把一部分约束变成编译器默认执行,再把躲不开的危险操作关进 unsafe 的明确边界里。国产操作系统内核 Asterinas(USENIX ATC 2025)的思路就是样本:必须 unsafe 的底层操作集中封进 OSTD,上层内核尽量全用安全 Rust,需要人工保证内存安全的代码范围被显著缩小。知乎

对号入座:别看阵营,看你在哪个格子
新开基础设施/数据库/WASM/内核方向:Rust 值得投入;安全关键的底层新代码,可以让 Rust 打底后再上 Verus(开源可用)做形式化验证。
维护几千万行存量 C++、游戏引擎/高频/图形:继续 C++,把 RAII、智能指针、ASan/UBSan 用满,别为"安全"两个字启动重写。
团队在评估"用 Rust 重写":只算两笔账——内存类缺陷的排查成本(半夜起来查段错误的次数)对比前三个月产出断崖;mold 实测性能持平,别把重写写成性能优化项目。
刚入门的学习者:rustlings 的 90 多道练习仍是主流入门路径。 微软也开源了全阶段 RustTraining 教材。 先把"编译器不让过"那关熬过去,所有权思维是这门语言真正要交学费的地方。小红书小红书
接下来看什么
mold 3.x 能否被 Linux 发行版采纳为默认链接器,是"Rust 重写核心工具链"最硬的公开验证。 CISA/FBI 给关键基础设施划下的 2026 年 1 月 1 日内存安全路线图节点也已经到期。 这场吵了四年的争论,答案越来越不取决于 C++ 之父和 Rust 原教旨谁嗓门大,而取决于你手上那个项目,安全到底靠人还是靠编译器。知乎知乎