选 AI 编程语言,看跑分还是看账单?13 种语言横评把这件事彻底说清楚了

你以为 TypeScript 比 JavaScript 更适合 AI 编程?Claude Code 跑完 600 轮实测,结论颠覆直觉——动态语言不仅没被淘汰,反而把静态类型按在地上摩擦。

GitHub 上有个叫 mame 的 Ruby 核心贡献者干了件很轴的事:他让 Claude Code(Opus 4.6)用 13 种语言各实现一个简化版 Git,统计耗时、花费和代码行数。每种语言跑 20 轮,v1 实现 init/add/commit/log,v2 加上 status/diff/checkout/reset,共计 600 轮完整测试。结果在一张排行榜上打得明明白白。

Ruby、Python、JavaScript 三个动态语言霸榜前三。 Ruby 平均 $0.36、耗时 73 秒,Python $0.38、75 秒,JavaScript $0.39、81 秒。三者不仅最快最便宜,标准差还最小——稳定性也是最强的。从第 4 名开始,数据就开始剧烈分化,Go、Rust、Java 全部慢了一截,成本也更高。

这个结果最反直觉的地方在 TypeScript。TypeScript 是 JavaScript 的静态类型超集,两者在逻辑上几乎等价,但生成 TypeScript 比 JavaScript 慢了 60%,成本高出 60%。AI 并没有因为 TypeScript 有类型标注而生成更安全的代码,反而被类型约束拖累了生成效率。

类型检查器不是安全网,是算力关税。 同一个语言加了类型检查器之后,性能跌幅触目惊心:Python/mypy 比原生 Python 慢 1.6~1.7 倍,Ruby/Steep 比原生 Ruby 慢 2~3.2 倍。原因很直接:类型系统在生成阶段给 AI 多压了一套约束条件,AI 要同时满足类型正确性、业务逻辑、API 兼容性、编译器审查,约束越多、Token 消耗越大。开启类型检查,你买的是保险,但交的保费是动态增长的。

OCaml 和 Haskell 生成代码最精简(216~224 行 vs C 的 517 行),但生成速度反而排中下游。代码越简洁,推理密度越高——生成地道的 Haskell 代码需要同时对类型类、单子组合、惰性求值做高强度并行思考,模型为了产生更少的代码反而要想得更深。这是 AI 编程时代的一个认知陷阱:我们以为表达力强的语言更简单,对人类是这样,对 AI 恰恰相反。

600 轮只崩了 3 次,全在静态语言里。 Rust 失败 2 次、Haskell 失败 1 次。静态类型能预防 AI 生成的 Bug 这个假设被数据打脸了。类型系统对人类的纠错机制,在 AI 生成场景里反而可能束缚灵活性,诱发连锁性的逻辑崩塌。当然这只是单个任务的结果,不能一概而论,但足以说明静态类型的保护机制和 AI 生成的失效模式并不完全对齐。

Go 处于中间梯队。静态类型比动态语言慢,但比 Rust/Haskell 快。Go 刻意保持简洁、克制泛型复杂度,降低了 AI 的推理难度;但遍地开花的 if err != nil 也让 Token 计数膨胀。简洁性是相对优势,不是绝对优势。

选语言看场景,但这份榜单给了一个基准锚点。 如果你在用 Claude Code 选语言原型阶段,Ruby/Python/JavaScript 的性价比是明显更优的。如果你的项目必须用 TypeScript/Rust/Go,至少要接受 1.4~2.6 倍的时间和成本溢价,并且提前把类型约束写清楚,减少 AI 的推理负担。如果你在评估 AI 编程工具的效率,换语言可能比换模型带来的差距更大。

评论区

0 条评论

登录后可评论。

Prompt 工程 754 阅读