DHH 震撼发声:手写代码时代落幕,Agent 正重塑软件工程

6 阅读7分钟

image.png

在 Rails World 2026 的开场演讲中,David Heinemeier Hansson(DHH)难掩对「AI 狂喜」的兴奋。他坦言,这是自己投身计算机领域数十年来见过的最激动人心的变化。

37signals 是 DHH 长期参与经营的软件公司,也是项目管理工具 Basecamp 和邮件服务 HEY 背后的开发团队。这场演讲最有分量的部分,来自这家公司已经发生的工作流变化。团队正式进入「放下铅笔(Pencils down)」阶段,不再把亲手编写生产代码作为默认选项。从 Basecamp 5 探索、HEY 原生客户端重写,到后端架构迁移和桌面工具开发,Agent 已经全面进入执行层。

DHH 的判断很明确。软件行业已经跨过一个历史性拐点,代码生产成本正在快速接近零,程序员的核心价值也会从「如何敲代码」转向制定方向、评判结果和设计系统。

历史重演,摄影未消灭绘画,Agent 也不会终结编程

DHH 用 19 世纪的摄影技术发展史作类比。1900 年前后,柯达 Brownie 相机让普通人也能轻松记录现实,精准描摹从此不再是画家的专属能力。画家没有因此消失,他们摆脱写实的束缚,转向印象派、立体主义等新的艺术表达。

DHH 用柯达 Brownie 相机类比 Agent 技术的普及拐点

这段历史与 DHH 本人还有一层联系。他的高祖父 Laurits Tuxen 是丹麦画家,亲历了皇室肖像走向大众摄影的转折。摄影改变了他的职业,艺术仍然继续向前。

Agent 技术正在制造编程领域的「Brownie 时刻」。AI 把底层编码技能变成廉价供给以后,程序员必须寻找新的价值,更多精力会流向系统工程、产品判断和创造性的技术选择。

跨越拐点,从「10 倍程序员」走向「1000 倍效能」

DHH 把 2025 年 11 月 24 日,也就是 Claude Opus 4.5 发布的那一天,视为个人的分水岭。足够强的智能第一次以普通人负担得起、也能驾驭的形态出现。开发者开始从操作者转向结果的提出者和验收者。

业界长期推崇的「10 倍程序员」已经不足以描述这次变化。Agent 让一个开发者同时推进多项工作,其中一些项目过去需要整支团队才能启动。Rails 当年那句「看看那些我不必做的事情」,如今被拉到了更高的抽象层。开发者描述目标、提供上下文、划定边界,随后审视结果。

这也解释了 DHH 为什么愿意把手写代码放下。他关心的始终是软件能否解决问题。实现过程可以交给 Agent,方向和判断仍然留在人手里。

37signals 的激进实践,放下铅笔,拥抱原生与重构

在 37signals 内部,DHH 已经明确叫停把手写代码视为默认工作方式的习惯。「放下铅笔」意味着人类动手以前,必须先让 Agent 尝试完成任务。

DHH 在演讲中提出 Pencils down,不再默认手写代码

这项变化首先改写了技术选型的成本。

  • 破除语言壁垒。 HEY 客户端曾因人力限制采用 Web 技术。如今,Agent 可以把同一套产品意图转译成 Swift 或 Kotlin,原生重构终于成为现实选项。
  • 重估后端架构。 过去为了降低人类维护成本,团队会建立抽象、共享服务和代码复用。Agent 能够低成本生成并同步多份实现以后,这些旧取舍需要重新计算。

DHH 没有声称自己已经找到新架构的标准答案。组件应该多大、抽象放在哪里、开发周期如何安排,这些基础问题都需要重新实验。软件工程正在进入一段没有现成蓝图的时期。

框架随之进化,英语正在成为更高层的编程语言

Agent 能写许多语言,Ruby 和 Rails 并不会因此失去意义。Rails 的「约定优于配置」给 Agent 提供了清晰、一致、低猜测成本的环境。同一个需求在不同 Rails 项目里通常有相近的实现位置,这种可预测性很适合自动化推理。

Rails Foundation 正与 Evil Martians 合作建设 Agent Evals,用真实任务衡量不同模型处理 Rails 项目的能力,再根据失败结果改进框架、文档和工具。

Rails Agent Evals 展示不同模型完成真实 Rails 任务的表现

作为 Rails 的创造者,DHH 现在最喜欢的「编程语言」却是英语。自然语言成了更高层的接口,开发者负责说清目标、限制和验收标准,再把字符级实现交给机器。他愿意带着喜悦从手写代码中退休,把精力放回软件创造本身。

这不等于思考变少。自然语言很容易含糊,开发者需要更准确地表达目标,更快地识别偏差,也要知道什么时候不能接受 Agent 给出的答案。

机器接口与性能复兴,让软件重新轻盈

DHH 给出了一个很具体的产品建议。每个应用都应该提供 CLI。

他不看好给每个产品硬塞一个独立聊天框。用户已经有自己的 Agent,应用真正需要提供的是稳定、可组合、可观察的机器接口。Agent 可以通过 CLI 调用 HEY、Basecamp 和其他工具,把不同产品连接成完整工作流。

HEY CLI 在终端中连接 Claude Code 和 Codex 等 Coding Agent转存失败,建议直接上传图片文件

Agent 也降低了性能优化的成本。过去,工程师时间远比节省几 MB 体积或几秒等待更贵,许多体验问题只能被搁置。现在,模型可以持续分析、重写和测试,原本「不值得投入人力」的优化重新进入可行范围。

DHH 用 Omarchy 展示了这种变化。它的完整安装时间从 3 分 33 秒缩短到 35 秒,实验室版本甚至达到 9 秒。

Omarchy 安装完成界面显示总耗时 3 分 33 秒

他还用 Agent 制作了计算器、写作应用、视频剪辑工具,以及为本次演讲临时开发的 Hype。Hype 使用 Markdown,带有完整的可视化界面,最终二进制只有约 0.5 MB。

DHH 展示用 Agent 开发的 Markdown 演示软件 Hype

当实现与优化都变便宜,软件不必继续在开发速度和运行效率之间重复过去的取舍。轻量、快速、专注的本地应用,可能会重新成为主角。

告别末日焦虑,把筹码押在判断力上

面对 AI 带来的安全风险和未知变化,DHH 拒绝陷入末日叙事。他用 P(bloom) 回应人们常说的 P(doom),前者代表技术带来繁荣、富足与创造力增长的概率。

他的乐观不等于风险为零。Agent 会扩大攻击面,软件团队仍然需要隔离机制、权限边界和新的防御工具。区别在于,人类并非只能等待结果。我们可以用同样的智能修补漏洞、构建防御,并调整错误方向。

DHH 还提到 ATM。自动取款机出现时,人们担心银行柜员会迅速失业。网点运营成本下降后,银行反而开设了更多分支,柜员数量和工作内容也随之变化。这个例子无法证明 AI 不会带来失业,却足以提醒我们,面对重大的技术变化,简单的线性外推很少可靠。

新的生存法则

DHH 最后向程序员发出了一次近乎挑衅的号召。拥抱变化,不要把手写代码与自身身份绑在一起。

这场演讲留下了五条可以立刻带回工作的原则。

  1. 先定义结果,再讨论实现。
  2. 把 Agent 设为默认执行者。
  3. 重新审视基于人类成本建立的旧架构。
  4. 为产品提供机器接口,尤其是 CLI。
  5. 守住判断力。

代码生成正在变成廉价劳动力。方向如何选择,系统怎样设计,安全边界画在哪里,产品是否真正好用,这些能力会越来越贵。

DHH 对未来的判断可能过于乐观,具体数字和时间点也需要继续观察。但他已经用 Basecamp、HEY、Omarchy 和 Hype 押下自己的筹码。软件开发的重心正在移动,程序员以后既要交付代码,也要给出更准确的目标、更清楚的边界,并对最终结果负责。