DHH 谈 AI 与 Rails 的未来:37signals 已"铅笔放下"、HEY 用 Rust 重写后端
DHH, AI, and the Future of Rails
DHH 在 Rails World 2026 开幕演讲中宣布 37signals 已对人工写代码"pencils down",HEY 正以原生应用加 Rust 后端重写,据其称 Rust 后端所需 CPU 减少 99%、内存减少 95%,他本人也已从职业程序员身份退休。
当 DHH 在奥斯汀为 Rails World 2026 揭幕时,我就在观众席中。大会的口号是“塑造 Ruby on Rails 的未来”,所以我走进会场时,期待听到关于 Rails 未来的内容。
但实际情况并非如此。
开幕主题演讲 打开新窗口 几乎完全围绕 AI 代理展开。DHH 告诉全场,37signals 已经“放下铅笔”,不再手写代码,HEY 正在转向以 Rust 为后端的原生应用,而他已经从职业程序员的位置上退休了。
第二天,他与 Matz 和 Jeremy Daer 坐下来进行了 Ruby、Rails 与编程的未来 打开新窗口 的对谈,内容沿着同一条路走得更远。
我将回顾这两场会议,分享我与他们意见相左之处,并解释为什么我仍然对 Rails 的前进方向感到兴奋。幕后有大量工作正在进行,让 Rails 更快、更安全,并给予视图层一些亟需的关注。

开幕主题演讲
DHH 关于 37signals 如今如何运作的最大例证就是 HEY。37signals 正在将其重建为原生应用,并用 Rust 重写后端——DHH 说他讨厌这门语言,并且很高兴再也不用看它一眼。据他所说,Rust 后端需要的 CPU 减少了 99%,内存减少了 95%。
Rails 确实得到了几分钟的时间。
DHH 认为,约定优于配置以及“单人框架”的理念非常适合代理,而 Web 仍然是那些人们懒得安装的应用的正确平台。
他还提到了 Rails 基金会一直在运行的代理评估(Henrique 写过如何 自己运行 Rails 代理基准测试 打开新窗口 )。
主题演讲的其余部分是关于 Omarchy——他的 Linux 发行版——外加两句后来引起广泛关注的话:英语现在是比 Ruby 更好的编程语言,以及他已经从职业程序员的位置上退休了。
Matz 与 DHH 同台

这场座谈是一场更轻松的对话,也是我第一次听到 Matz 谈论他如何与代理协作。他说自去年十一月以来,他一直在用 Claude Code 写代码,而两年前他根本无法想象这一点。
他还提到了 Spinel 打开新窗口 ,这是他在 2026 年 3 月启动的一个提前编译器,可将 Ruby 转换为原生二进制文件。他说,在他们的测试中,一个真实世界的程序使用的内存约为原来的二十分之一。
两人都论证了 Ruby 仍然重要,即使人类用它写的东西变少了。DHH 称 Ruby 是解释概念的最佳语言,所以你可以让代理用 Ruby 向你解释你的 Rust 代码。
Matz 提到,他的一位同事比较了一组语言,发现 Ruby、Python 和 JavaScript 属于 token 效率最高的语言之列,而静态类型并没有太大帮助。
随着我们越来越依赖代理,我们应用底层的组件(Ruby 解释器、Rails、Linux、PostgreSQL)变得不可见。
当人们不再看到它们时,他们就不再关心谁来维护它们。他说这是他最大的担忧。
我不同意的地方
我不会因为 Rust 性能更高就开始用它来写我的后端。
我理解 CPU 减少 99% 的吸引力,但对大多数 Rails 应用来说,原始性能并不是值得重写的理由。DHH 第二天自己也这么说了,当时他谈到大多数 Rails 应用都能跑在树莓派上 打开新窗口 。
我仍然非常在意程序员的幸福感。这是 Ruby 和 Rails 存在的原因之一,我不认为因为大部分代码由 agent 编写,这一点就不再重要。总得有人去读那些代码、审查它,并判断它是否够好。我更希望那个人读的是 Ruby。
我也希望人类能理解他们部署到生产环境的东西。DHH 在主题演讲中说,他把自己的 Rust 代码当作黑盒,从外部来评判它,就像企业主评判他们雇佣的团队所构建的软件一样。这对他也许行得通,但对一个没有 37signals 那样资源的团队来说,这是一场豪赌。
当生产环境出问题时,我希望有一个理解系统、编程语言和框架的人在。
在 FastRuby.io,我们花了超过 60,000 小时升级 Rails 应用,其中很大一部分工作是理解当前团队中没人记得写过的代码。Agent 可以在这方面帮忙。但如果没人去读它们产出的东西,我们只是在更快地制造更多这样的代码。
Mike Dalessio 在 Rails World 上的演讲也表达了同样的观点。需要有人深入理解 Active Storage、libvips 和攻击面,才能设计出 Hot Cell
打开新窗口
。
这与 Matz 的担忧一致:如果没人理解我们应用底层的组件,也就没人会去维护它们。AI 当然可以维护这些应用,但我不想让它基于业务需求做判断。
人类本来就很难理解自己所在的业务和行业。而 agent 只知道你放进提示词里的东西。
Rails 8.2 以及谁是下一个
今年 Rails World 的口号是“塑造 Ruby on Rails 的未来”。对很多人来说,包括我,这意味着听到关于 Rails 本身的消息。

我们许多人期待 Rails 8.2 在 Rails World 期间或之后不久发布。但并没有发生,写这篇文章时,Rails 8.2 仍未发布。
这不是对投入其中的工作的抱怨。工作量很大:Herb 已经被合并进 Rails 核心 打开新窗口 ,而 Hot Cell 的 Active Storage gems 打开新窗口 正等待 Rails 8.2 发布。
但开场主题演讲是每年唯一一次 Rails 创造者吸引整个社区注意力的时刻,而今年它主要给了 agent、Rust 和 Omarchy。
有些人把这解读为 DHH 正从 Rails 抽身,把大部分时间投入到 Omarchy 上。他并没有这么说,而且第二天他说他会继续用 Rails 启动新的 Web 应用。
尽管如此,这引出了一个自奥斯汀以来我一直在思考的问题:
如果 DHH 要传递接力棒,谁会接过来?
显而易见的人选已经在 Rails Core 里了。Aaron Patterson 打开新窗口 以一场关于 as-if 规则、Ractor 和 AI 的振奋人心的主题演讲 打开新窗口 为大会闭幕,并且多年来一直致力于 Ruby 和 Rails 的内部实现。
Eileen Alayce opens a new window 主导了大量让 Rails 能够支撑超大型应用的工作,比如多数据库支持。Rafael França opens a new window 多年来一直是 Rails 最活跃的维护者之一,承担了大量日常的审查和发布工作。
使用 Rails 时有两种截然不同的开发者体验:一种是你用它构建新应用,另一种是你已经在生产环境中运行 Rails 多年。
也许 Rails 需要两位领导者:一位深切关注初学者的 DX,另一位关注高级用户?
我不知道他们会是谁,也许根本不会是一个人。但我很想从构建 Rails 的人那里听到更多关于 Rails 未来的消息。
为什么我仍然对 Rails 感到兴奋
开场主题演讲并不是关于 Rails 的,但大会其余的大部分内容都是,而这正是我反复思考的。

在前端方面,Jorge Manrubia 介绍了 Lexxy opens a new window ,这是 Action Text 全新的基于 Lexical 的编辑器。Marco Roth 展示了 Herb 和 ReActionView opens a new window 如何为 Action View 带来 HTML 感知的响应式模板,Herb 即将进入 Rails 8.2。
在安全方面,Jenny Shen 讲解了 RubyGems Compact Index
opens a new window
,即每个 bundle install 背后的 API,以及冷却期等功能对我们所依赖的 gem 意味着什么。Mike Dalessio 展示了在一个被 AI 在不到一小时内重新发现的关键 CVE 之后,Hot Cell 如何沙箱化 Active Storage
opens a new window
。
在性能方面,Aaron Patterson 的闭幕主题演讲关于 as-if 规则 opens a new window ,解释了 Ractor 如何改变 Ruby 4.1 中的线程安全性,还涵盖了 RubyGems.org 上的一起真实安全事件。Andrew Novoselac 利用他在 Shopify 的经验和 AI,自动化了 Rails 中通往 Ractor 安全的路径 opens a new window 。
所有这些演讲都是关于让 Rails 应用更易于构建、运行更安全、生产环境更快。这就是我为之兴奋的 Rails 未来,而其中大部分是由那些仍然阅读他们工具所生成代码的人构建的。
结论
AI 正在改变我们构建 Rails 应用的方式(我也每天都在用它!),我只是不认为这意味着我们不再关心这门语言、这个框架,或维护它们的人。
当生产环境出问题时,你团队中仍然需要有人理解你的应用,而 Ruby 仍然是做这件事最令人愉快的语言之一。❤️
你的团队是否正坐拥着没人能完全理解的 Rails 代码,而且每天还有更多代码涌来?联系我们。 opens a new window
来源:Hacker News · fastruby.io