Ruby 代码提交者远藤裕介(Yusuke Endoh)进行了一项新的基准测试,评估 Claude Code 使用 13 种编程语言生成可用代码的效率。经过 600 多次测试运行,动态语言(尤其是 Ruby、Python 和 JavaScript)始终是速度更快、成本更低且更稳定的选择,而静态类型语言的运行速度要慢 1.4 至 2.6 倍,成本也更高。
这项实验发布在 DEV Community 上,所有代码和结果均可在 GitHub 获取。实验要求 Claude Code(Opus 4.6)用每种语言实现一个简化版的 Git。任务分为两个阶段:v1 从空目录开始实现 init、add、commit 和 log 命令;v2 对项目进行扩展,增加 status、diff、checkout 和 reset 功能。每种语言各运行 20 次。作者使用了自定义哈希算法,而非 SHA-256,用于消除不同语言间库依赖带来的差异。
Ruby 平均每次运行成本 0.36 美元,耗时 73.1 秒;Python 为 0.38 美元,耗时 74.6 秒;JavaScript 为 0.39 美元,耗时 81.1 秒。这三种语言的方差均很低,且全部 40 次运行都通过了所有测试。从第四名开始,成本上升,方差急剧扩大。Go 语言平均成本 0.50 美元,耗时 101.6 秒,但标准差高达 37 秒。Rust 平均成本 0.54 美元,耗时跨度最大,达到 54.8 秒,同时也是仅有的两种出现测试失败的编程语言之一。C 语言是成本最高的主流语言,达到 0.74 美元,原因是它生成了 517 行代码,而 Ruby 仅生成 219 行。
类型系统对 AI 生成代码的影响或许是对评估 AI 编码工作流的团队最具实用价值的发现。在 Python 中添加 mypy 严格类型检查会使其速度降低 1.6 至 1.7 倍;在 Ruby 中添加 Steep 类型检查则会带来更大的性能损耗,速度比纯 Ruby 慢 2.0 至 3.2 倍。TypeScript 的成本明显高于 JavaScript,平均 0.62 美元对比 0.39 美元,尽管二者生成的代码行数相近。作者指出,这类开销不仅来自类型注解的生成,还可能源于模型在推理类型约束时消耗了更多的思考词元。
远藤很坦诚地说明了这项实验存在的局限。作为 Ruby 代码提交者,他主动说明自身可能存在的偏向性。本次生成的程序约 200 行代码,严格来说属于原型规模,他也承认静态类型在更大规模的代码库中可能更具优势。该实验还得到了 Anthropic 的 Claude 开源计划支持,获得了为期六个月的 Claude Max 免费使用权限。此次基准测试仅衡量代码生成的成本与速度,不涉及代码质量、可维护性或运行时性能。
Lobsters 上有人质疑基于 200 行代码的原型规模得出的结论是否可靠。有评论者指出,实用的原型很少会这么短小。也有人提出,该基准测试并未考虑语言生态优势——拥有完善包生态的语言在实际任务中需要生成的代码会更少。DEV Community 帖子下有评论者表达了定性层面的担忧:如果生成的代码后期更难维护,那么 2 倍的生成速度优势可能会被抵消;此外,Rust 和 Haskell 出现测试失败,不应简单归为 bug,因为更严格的类型系统本意就是要尽早捕获错误,避免其流入生产环境。
远藤直接回应了其中几个观点。关于规模问题,他认同更大型的基准测试会更有价值,但也指出,设计一套对 15 种语言都公平的测试难度较大。对于 2 倍的速度差异,他认为在迭代式 AI 辅助开发中等待 30 秒与 60 秒的区别对开发者的心流状态影响显著,不过他也承认,如果未来模型能将生成时间缩短至秒级以内,这种差异就不再重要。而在生态系统影响方面,他刻意排除了库依赖,以隔离语言本身的差异,使用自定义哈希函数也正是出于这一目的。
在总共 600 次运行中,仅有 3 次失败:Rust 两次,Haskell 一次。在其中一次 Rust 的失败日志里,智能体判定测试本身存在错误,作者将其判定为幻觉,因为其余所有 Rust 测试均顺利通过。
完整的数据集(包含每次运行的结果、执行日志及所有生成的源代码)均可在该基准测试仓库中获取。
【声明:本文由 InfoQ 翻译,未经许可禁止转载。】
查看英文原文:https://www.infoq.com/news/2026/04/ai-coding-language-benchmark/





