返回信息流
新闻事件
InfoQ
1 个来源

Rails 之父 DHH 用 AI Agent 将 Campfire 重写为 Rust,称性能提升 150 倍

在 Rails World 2026 上,Ruby on Rails 创始人 DHH 宣布已停止手写代码,并让 AI Agent 用 Rust 重写 37signals 的 Campfire 和 HEY 后端。他发布的基准测试显示,Rust 版 Campfire 在聊天室页面加载上达到每秒 36260 个请求,约为 Rails 的 150 倍。这一转向引发开发者社区对其测试方法和代码质量的质疑。

SynthePulse Insight · AI 深度解读

Rust 快 150 倍?DHH 的 Campfire 测试为何被开发者翻代码推翻

版本 1 · 1 个来源

Rails 创始人 DHH 在 Rails World 2026 上宣布 37signals 转向用 Agent 以 Rust 重写产品,并用 Campfire 多语言重写测试宣称 Rust 比 Rails 快约 150 倍。开发者翻查公开仓库后发现,各语言版本在提交次数、优化投入和任务要求上并不对等,争议焦点从“Rust 是否更快”转向“Agent 时代的性能比较是否公平、人是否仍需懂代码”。

  • DHH 在 Rails World 2026 上称 Rust 是“过去 40 年里发明的最丑陋的编程语言”,但表示如果自己永远不用看这些代码、只需享受应用快 30 倍甚至 100 倍,他就爱 Rust。
  • DHH 让 Agent 将 Campfire 分别重写为 Elixir、Go 和 Rust 版本并与原 Rails 版本对比,宣称 Rust 达到每秒 36260 个请求,约为 Rails 的 150 倍、Elixir 的 50 倍、Go 的 9.4 倍。
  • 开发者翻查公开仓库发现,截至 10 月 6 日 Rust 版本 main 分支已有 398 次提交,而 Elixir 和 Go 各自只有 3 次。
  • 三个版本的 AGENTS.md 任务要求不同:Rust 被允许偏离 Rails 实现并追求速度,Elixir 和 Go 被要求保留参考实现行为,且都没有得到必须击败的性能数字。
  • Google 工程师 Jaana Dogan 称,真正让她担心编程未来的是看到这样的结果后居然没有立刻意识到测试结果或实际测量的东西肯定有问题。
  • DHH 回应称自己并未干预 Elixir 具体实现,只是要求两个前沿 Agent 尽可能发挥 Elixir 性能,并称如果前沿 Agent 找不到让程序跑得更快的“神奇开关”也不能算 Elixir 的加分项。
展开章节目录从“最丑陋的语言”到“我爱 Rust”:DHH 的转向

从“最丑陋的语言”到“我爱 Rust”:DHH 的转向

在 2026 年 9 月底的 Rails World 2026 上,Ruby on Rails 创始人 DHH 把 Rust 称为“过去 40 年里发明的最丑陋的编程语言”。但几句话之后他话锋一转:如果自己永远不用看这些代码,只需要享受应用快 30 倍甚至 100 倍,他就爱 Rust。

这种看似矛盾的态度背后是一个更根本的转变。DHH 在大会上表示自己大约在四个月前停止了手工编写代码,并称手工编写代码已不再是一种具有经济生产力的活动。

他同时宣布下一代邮件服务 HEY 将不再以 Web 应用为中心,而会为主要操作系统分别开发原生客户端,后端也将转向 Rust 重写为更纯粹的邮件服务器。DHH 给出的新版 HEY 后端初步数据为 CPU 使用量降低 99%、内存使用量降低 95%、服务器数量可缩减到十台且保留主要为冗余,团队粗略估算一台 Raspberry Pi 甚至可能承担全部峰值负载。

Campfire 测试:Rust 快 150 倍的宣称

两周后,DHH 用一张性能图表进一步证明自己的观点。他让 Agent 将 37signals 的群聊应用 Campfire 分别重写为 Elixir、Go 和 Rust 版本,再与原来的 Ruby on Rails 版本对比。

仅在加载聊天室页面这项测试中,Rust 达到每秒 36260 个请求。DHH 公布的测试中,Rust 版本约为 Rails 的 150 倍、Elixir 的 50 倍、Go 的 9.4 倍,并在所有五种工作负载下都表现出色。

这些数字来自 DHH 本人发布的测试与推文,属于自测自述,非第三方独立验证。文章称如今用 Rust 重写应用程序似乎是一项流行举措,微软的 Copilot 运行时、pnpm JavaScript 安装程序和 Bun JavaScript 工具链都采用了 Rust 进行重写。

开发者翻代码:398 次提交对 3 次提交

DHH 的推文浏览量接近 100 万,但开发者没有顺着他的思路讨论是否应该在 Agent 时代重新选择 Rust,很多人的第一反应是:这组结果明显不对,几个版本很可能没有站在同一条起跑线上。

Jared Smith 检查了三个公开仓库的完整记录。截至 10 月 6 日,Rust 版本的 main 分支已经有 398 次提交,而 Elixir 和 Go 则各自只有 3 次。Rust 的 398 次提交中,380 次来自 DHH,10 次来自 Abdelkader Boudih,8 次来自 Daniel Collin,其中 397 次集中发生在 9 月 26 日至 10 月 1 日之间。

Elixir 仓库只有一次移植提交和两次文档提交;Go 仓库则包含一次移植、一次性能优化和一次 README 更新。Rust 仓库还有 44 个 PR,其中 39 个已经合并。按照标题统计,已合并的 PR 中有 16 个明确与性能相关,另有两个性能 PR 尚未合并。优化内容包括按房间和时间为消息建立索引、缓存页面的每个部分、使用专用线程读取数据库,以及调用 ARMv8 SHA-256 指令执行哈希计算。

这意味着,Rust 版本经历的远不止一次 Agent 重写。它在六天里不断接受新的性能目标,反复经历测试、发现瓶颈、修改代码和再次测试。Elixir 和 Go 基本停留在 Agent 交付的第一版。

任务要求不对等:AGENTS.md 里的关键差异

几个 Agent 从一开始收到的任务要求也不相同。Rust 版本的 AGENTS.md 明确告诉 Agent:“如果这样能让应用更快或者更好,现在可以偏离 Rails 的实现。”它还要求每一项性能改动都提供优化前后的测量数据。

Elixir 版本的主要要求则是“保留固定版本的 Rails 参考实现行为”。Go 版本以已经调优的 Rust 应用为参考,要求保留 Rust 应用的行为。Elixir 和 Go 都没有得到一个必须击败的性能数字,也没有被允许为了速度放弃与参考实现的一致性。

Rust Agent 接到的是一项持续优化任务,Elixir Agent 接到的主要是一项功能移植任务。最后再把几个版本放进同一张性能表里,比较的已经不只是编程语言。

Elixir 实现被指“愚蠢至极”与重写后的反转

一名 Elixir 开发者直接把这份实现称为“愚蠢至极”。他指出,Agent 把所有 SQL 查询都交给同一个 GenServer,并通过同步的 GenServer.call 等待结果,相当于让原本可以并发执行的数据库查询排队逐个完成,主动废掉了 Elixir/BEAM 的并发优势。

另外几个人直接重写了 Elixir 代码,使其性能达到与 Rust 相当的水平。重写之后,Elixir 版本在部分任务上的性能甚至超过了 Rust,尽管第三方后来又对 Rust 版本做了进一步优化。

Google 工程师 Jaana Dogan 的回应传播最广,称真正让她担心编程未来的是看到这样的结果后居然没有立刻意识到测试结果或实际测量的东西肯定有问题。

DHH 的回应与双方对测试目的的理解分歧

争议发生后,DHH 仍然坚持自己的核心判断。他表示速度并不是衡量一个代码库时唯一需要考虑的因素,Rust 也有编译速度慢等缺点,但当 Agent 负责写代码并验证输出时,我们显然需要适应一种新的现实。

对于在 Elixir 版本中禁止数据库并发读取的质疑,DHH 回应称自己并没有干预具体实现,只是要求两个前沿 Agent 尽可能发挥 Elixir 的性能,最终得到的就是这份代码。他欢迎开发者提交 PR 提升速度,同时强调:如果前沿 Agent 找不到那些让程序“跑得更快”的神奇开关,这也不能算是 Elixir 的加分项。

这段回应也暴露了双方对这项测试的理解差异。Elixir 开发者认为,这测试无法反映两种语言的真实水平。但 DHH 关注的则是另一件事:在相同任务下,把代码交给当前最强的 Agent,它们能否自行找到一门语言的正确写法和性能优化方式。

结论:你可以不写代码,但不能不懂代码

当 Agent 承担大部分编码工作后,语言是否容易书写、代码是否赏心悦目,确实可能不再像过去那样重要。这恰好触及 DHH 所说的“以后不再阅读代码”。

只是如果标准写得不完整,Agent 仍然可能交付一个功能正确却性能糟糕的版本;如果比较条件本身不公平,再精确的数字也会产生误导。DHH 想用 Campfire 证明:人类不看代码之后,就能绕开 Rust 糟糕的开发体验,直接吃到它的性能红利。可评论区把仓库翻了个底朝天,翻出的却是另一个结论——你可以不写代码,但不能不懂代码。让 Agent 做什么、做得对不对、这场比较公不公平,终究还得人来判断。

可信度边界

本文基于 InfoQ 报道(article_id 21151)整理。DHH 公布的 Campfire 与 HEY 性能数字均来自其本人发布的测试与推文,属于自测自述,未经第三方独立复现,其真实可比性存疑。Rust 版本在六天内接受的持续性能优化与 Elixir、Go 的一次性交付之间的差距,究竟在多大程度上解释了 150 倍差距,来源未给出定量结论。Elixir 开发者重写后性能达到甚至部分超过 Rust,但第三方随后又优化了 Rust 版本,最终对比结果在来源中并未给出。DHH 与 Elixir 开发者对测试目的理解不同,孰对孰错来源未裁定。文章结论“你可以不写代码,但不能不懂代码”为作者观点,非可验证事实。HEY 后端转向 Rust 与原生客户端的具体时间表、完成度及实际效果在来源中未披露。

核心结论

DHH 的 Campfire 测试宣称 Rust 比 Rails 快约 150 倍,但公开仓库显示 Rust 版本有 398 次提交和 39 个已合并 PR(其中 16 个与性能相关),而 Elixir 和 Go 各只有 3 次提交,且三者的 AGENTS.md 任务要求不同——Rust 被允许偏离 Rails 实现并追求速度,Elixir 和 Go 被要求保留参考实现行为且没有必须击败的性能数字。争议的核心不是 Rust 是否更快,而是在 Agent 时代,当比较条件本身不对等时,性能数字还能说明什么,以及人是否仍需懂代码来判断比较是否公平。

主报道

InfoQ

主报道来源