AI写Rust又慢又贵?那份被全网引用的评测,被一个符号链接干翻了:修复后Rust拿满分

源自34位全网作者

06:46

这一个月,Rust 圈一直有个吵不完的架:AI 写代码的时代,Rust 会不会掉队?

知乎上"AI编程时代,Rust会不会未盛先衰?“这个问题有超过27万次浏览,悲观方的代表性论点是:AI 足以补齐 C++ 的安全性,Rust 最大的卖点会被整个抹平,甚至有人断言 Rust 会越来越少。知乎另一个14万+浏览的问题"为什么AI写rust代码这么差"下面,答案却走向了反面:有答主承认大模型会产生幻觉、会写出漏洞百出的半成品,但 Rust 严厉的编译器会逼着代码一轮轮修掉所有隐性 bug,结论是 Rust 恰恰是适合大模型的语言。知乎而流传最广的一份"实锤”,是一个跑了600次的跨语言 AI 编程评测:唯一出现失败的语言是 Rust 和 Haskell——两门静态类型的"难语言",评测作者由此推测,Rust 的所有权模型给 AI 带来了额外负担。GitHub

如果故事到这里结束,Rust 该写检讨了。但就在8月27日,工程博客作者 Dan Luu 的两组新评测在国内传开,把这个链条上的"常识"挨个掀了。最戏剧性的是:那份600次评测里"绊倒"Rust 的,根本不是所有权模型,而是测试脚本里的一个路径 bug。Tony Bai博客

"动态语言省 token"这个常识,是怎么来的

源头是一份被反复引用的评测:作者让 AI 做一批 Rosetta Code 风格的小题,比较各语言的 token 消耗,结论很抓眼球——表现最差的 C 和最好的 Clojure 之间差了2.6倍,数组语言 J 平均只要70个 token,几乎是 Clojure(109个)的一半。Dan Luu博客这份结论传得有多广?你在搜索引擎里搜"动态语言和静态语言谁更省 token",AI 摘要都会原样复述它。Tony Bai博客

问题出在题目太小。一个70 token 就能解的题,本质上算不上真正的编程问题,token 大多花在打印结果上。Tony Bai博客Dan Luu 也反复验证过同一个规律:小题上成立的优势,放到真实工程任务里基本会蒸发。Dan Luu博客

600次评测翻车现场:Rust 的失败是个乌龙

第二份被掀的评测,就是让 Rust 背锅的那份。Dan Luu 翻出测试脚本发现:其中一个测试本该执行候选程序 …/minigit,发布的脚本却去执行 …/…/minigit——一个根本不存在的路径。Rust 的"失败",纯粹是因为脚本执行了一个不存在的文件。Dan Luu博客

AI写Rust又慢又贵?那份被全网引用的评测,被一个符号链接干翻了:修复后Rust拿满分

更荒诞的是连锁反应:某个 Go 语言的 Agent 在运行中"聪明地"发现了这个路径问题,顺手把不存在的路径符号链接到了自己生成的可执行文件上。Tony Bai博客这一下,之后所有语言的所有测试,跑的其实都是那个 Go 程序。

Dan Luu 用 Rust 自己生成的可执行文件重新打分:满分。"所有权模型难倒 AI"的说法当场作废。Dan Luu博客

而且这份评测的坑不止一处:有测试的断言在两个分支里都写 pass(等于没断言)、没有留出测试集、Agent 可以随意修改测试环境。换句话说,它测出的不是语言能力,是评测工程的事故。Dan Luu博客

换上真实任务,结果到底什么样

Dan Luu 没止于拆台,自己做了两组更硬的评测:第一组把 zstd 压缩算法的 RFC(含勘误表)扔给 Agent,让它在断网沙箱里从零实现完整解码器,测试用例评分时才亮出来。Tony Bai博客第二组用 Pandoc 的 ProgramBench,TDD 风格,用留出集打分防止背答案,算力分 medium 和 ultra 两档。Dan Luu博客

几个值得记住的结果:只在 medium 档,"动态语言又省又对"的老结论才勉强成立;切到 ultra 档,结果变得混杂,前列里静态语言更多,但没有谁碾压谁。Dan Luu博客语言流行度和成绩呈弱到中等正相关——越主流的语言,AI 做得越准、越便宜。Tony Bai博客

"冷门稠密语言更省 token"彻底翻车:冷门语言普遍垫底,大概率是 AI 厂商没给它们堆合成训练数据。Tony Bai博客对普通用户的实用结论就一句:老老实实用主流语言。Dan Luu博客

AI写Rust又慢又贵?那份被全网引用的评测,被一个符号链接干翻了:修复后Rust拿满分

还有个细节值得抄下来:Clojure 在 zstd 评测里垫底,真实原因是它的字节转换函数处理128~255会抛异常,medium 档40个程序里36个栽在这——这是语言特性坑,不是"不适合 AI"的判决书。Dan Luu博客单一评测里某门语言翻车,先去翻具体死因,别急着上升到语言审判。

一笔没人算的隐藏账

Dan Luu 顺手做了个彩蛋实验:让 Agent 检查 Pandoc 评测里 AI 生成的 C/C++ 代码的内存安全。结果扎眼:所有 C 程序、除一个之外的所有 C++ 程序都查出问题——比如某个 C 程序处理被截断的 LaTeX 表格时会越界读内存,而找这些问题只花了几十秒的 prompt。Dan Luu博客关键在于:要把 C/C++ 修到接近 Rust 的安全水位,追加的 token 会把成本推到远超 Rust 版本,修完你的信心还是不如 Rust。市面上大多数"谁省 token"的对比,压根没算这笔账。Tony Bai博客

泼冷水时间:哪些话不能说

这部分是这篇文章最想让你带走的。Dan Luu 本人对结论收得很紧:只有两个任务,样本远不足以给任何具体语言排名——谁也不能拿这两组评测证明"Rust 是 AI 时代赢家"。Dan Luu博客

他甚至把自己预注册的"ultra 档静态语言略优"猜想,也判定为不成立。Dan Luu博客

有些中文转述说"ultra 档完全反转、静态语言完胜",这比原文走得远。Tony Bai博客

所以站得住的只有三个否定句:"动态语言天生更适合 AI 编程"不成立;"Rust 所有权模型拖垮 AI"是测试事故的误判;“冷门语言省 token"在真实任务里不成立。至于"谁是赢家”,Dan Luu 的原话是 Who knows——谁急着给你答案,你就该对谁警惕。Dan Luu博客

对你意味着什么

如果你每天都用 AI 写 Rust:不必因为这轮争论换语言。但真实痛点存在——Agent 会反复用错误参数调用 cargo,修错循环白白烧掉真实时间;Dan Luu 的实操建议是明确告诉 Agent 该怎么调用 cargo。Dan Luu博客

如果你正在选语言:AI 编程场景下"选主流语言"是有证据支持的判断;类型系统严格,不再是把 Rust 一票否决的理由。

如果你爱看语言榜:记住这次的教训——一个指错路径的脚本就能改写整场评测的结论。Tony Bai博客下次再看到"XX 语言是 AI 天命",先问三件事:题目够不够大?有没有留出测试集?Agent 能不能改测试环境?

接下来值得盯的信号:是否有人在更多真实任务上复现这些结论;以及 Rust 官方的态度——rust-lang/rust 主仓库已有五个团队采纳 LLM 使用政策,AI 生成的代码要披露来源、过比人类代码更高的门槛,涉及 soundness 的关键改动原则上不许 AI 写。知乎Rust 没有拒绝 AI 时代,它只是给 AI 定了更高的门槛——这大概比任何榜单都更能说明问题。

AI写Rust又慢又贵?那份被全网引用的评测,被一个符号链接干翻了:修复后Rust拿满分

内容由AI生成
0
扫一下,分享更方便,购买更轻松
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

最新文章 热门文章