DHH:编程的未来、AI、智能体工程、Vibe Coding 与 Linux
文章摘要
这是 Lex Fridman 播客第 501 期,嘉宾是 DHH(David Heinemeier Hansson)——Ruby on Rails 作者、37signals 的 CTO、Omarchy Linux 发行版的创造者,同时也是一名赛车手。全长超过五小时,是二人时隔 13 个月的第二次对谈。上一次聊编程时,DHH 对 AI 在编程中的角色还相当怀疑;这一次他自称已经「100% 被 AI 说服」。整期节目覆盖的话题包括与智能体一起编程、软件形态的变化、AI 对开源的冲击、Omarchy 的构建、vibe coding 与智能体工程之辨、手工编程的终结、给程序员的建议、如何在网络仇恨中生存、面向智能体的开发配置、对速度的痴迷、语音提示词、模型与 harness 横评、AI 视频生成、为人父、Linux 会赢下桌面、PewDiePie、编程的未来、政治与移民、长寿与对死亡的恐惧,以及永恒轮回与人类文明的未来。
从怀疑到狂热的转折点。 DHH 说他现在的情绪成分里「完全没有生存威胁」,那只作为一个智识议题存在;情绪层面是百分之百纯粹的喜悦与惊叹。他强调自己的观点其实没变——一年前他讨厌的是当时提供的 AI 形态:自动补全模式,或者聊天机器人模式(聊天机器人他其实喜欢,是很好的家教和查资料工具,但不会取代他一凿一凿地雕代码)。改变一切的是智能体。他给出了一个精确到日期的分界线:2025 年 11 月 24 日 Opus 4.5 发布。他隔了两天才试,给了它几个任务,发现输出质量「诡异地接近我自己会写的东西」,靠在椅背上想「刚才发生了什么」。他认为关键变量不只是智能提升,而是可用性提升——那种操纵你的计算机、使用工具、检查自己工作的能力,也就是 harness 的问题。他引用了一句他归给列宁的话:有些十年里什么都没发生,有些星期里发生了几十年的事。他说自己有幸完整经历了两次世界重写——前互联网到后互联网,前 AI 到后 AI。
三个阶段。 第一阶段是 Opus 4.5 带来的「智能体能真正干活」;第二阶段是今年早春出现的子智能体和会拆分任务的 harness,原本要跑很久的活儿被切成八份并行,只要五分之一甚至十分之一的时间。但这两个阶段他都还得自己开车——他告诉它去哪、跑偏了纠正一下、并且充当审核者。第三阶段是今年夏天的 Opus 5、Fable、GPT Sol(以及一定程度上的开放权重模型):他不再告诉它去哪儿,只描述自己遇到的问题、说出那个模糊笼统的想法,由它来告诉他该走哪条路。他仍然会看,因为他好奇、他喜欢计算机,但「我在产出代码、选择路线这个环节已经变成可选项了」。他打的比方是 GPS:早期报纸上全是「GPS 太糟糕了,人们不看路,直接开进港口」,而现在这种事早就不发生了,车甚至已经自己开了。
100% AI 写的代码,和依然要人工收拾的代码库。 他说自己「被 100% AI 化」的原因是 Omarchy:过去三个月他在做的这个刚发布的版本 Quattro,最近两个月里他没有手写过任何一行随 Quattro 发布的代码。他审查了所有代码的整体形状、逐行审查了系统模型层里任何关键的东西,但没看很多 UI 代码,也没看很多辅助代码。反过来,37signals 那些有大量用户、代码库相对庞大的专业产品(Basecamp、Hey)却出人意料地难以被智能体完全加速。Basecamp 5 是他们第一个真正被智能体加速的产品,二月份那阵他们有过一波「问题解决了,让设计师来编程吧,他们知道自己想要什么功能、想要什么形态,让他们去 vibe」的乐观,结果是产出了一堆 PR——单看每个或许都能勉强说得过去,但合在一起摧毁了系统的架构,最后不得不用人手一点点擦干净,才回到一个连贯自洽的架构。他由此得出的结论是:要在已有的、有规模的代码库上 vibe coding 且保住架构,你还是得是个程序员。但他立刻反手一击:当人们指责 vibe coder 是垃圾生成器时,他会回敬「你看过普通程序员的产出吗?那也是垃圾。你去看很多伟大公司的代码库在 3000 个人趟过之后长什么样,糟糕透顶。」
为什么大公司没有变快。 Lex 问,为什么 Photoshop 这类成熟应用的开发进度看不到加速?DHH 给了两个理由。第一个也是最关键的:一旦是人类团队协作,瓶颈就很少是实现,而是人的带宽和沟通。当你有一个产品经理、几个设计师、他们上面的 VP、再上面的 CTO,而每个人都想参与塑造过程(因为大家都要证明自己为什么在这里),生产力就在那里死掉了。他做 Omarchy 三个月的顿悟是:要拿到那种 10 倍、100 倍甚至极少数情况下 1000 倍的生产力提升,你必须直接和智能体互动,中间不能再隔着另一个人类,因为那太慢了。第二个理由是:多数组织并不知道自己想要什么,也不知道怎么把产品做得更好——他们的瓶颈不在实现,而在想法、愿景和品味。「你可以让一大堆烂想法变成现实,然后呢?你打算发布它吗?」他拿微软举例:几十年拥有近乎无限的编程产能,恰恰证明了「能写很多代码」并不产出伟大而有说服力的软件。
vibe coding 与智能体工程的定义之争。 DHH 说他讨厌 agentic 这个词,因为它已经变成营销废话被贴得到处都是,他希望有个别的词单纯指「AI 在干活」。他也觉得 vibe coding 这个词不对劲——它闻起来像 2000 年代初的 script kiddie,把网上下载的 PHP 脚本贴上去而完全不理解。但他承认自己也有几个 vibe coded 的项目,用 C++ 和 Rust 写的。(关于 Rust 他给了本期最激烈的一段评价:他讨厌 Rust,看 Rust 代码像往眼睛里倒酸,是过去四十年发明的最丑的编程语言;但 Rust 的产出——内存安全、系统级、高效率——确实惊人,所以「Rust 既可以是有史以来最令人厌恶的、供人类阅读的编程语言,又可以是一个绝妙的智能体工程平台,这两个真理在我脑子里可以轻松共存」。)他不认为该把智能体工程直接叫做编程:在他看来编程意味着理解循环、条件、变量这些原语,是编程语言的那些构造本身构成了编程,而不是「造出程序」这件事;否则你也可以说 CEO 在编程,因为他雇了一群程序员、告诉他们做什么、然后卖软件。他给的定义是:vibe coding 就是你让智能体给你造软件,而你不看实现;这是它与编程(或者说「智能体加速的开发」)的分界线。
懂编程反而可能是劣势。 Lex 想论证懂 for 循环、懂函数式编程、懂软件工程原则的人做智能体工程会更系统、能造的东西规模更大。DHH 却站到了反方:他认为有一阵子懂太多编程反而对他有害,因为他在按自己规定的方式指挥智能体,而智能体很擅长照办;在第一个「智能体时刻」(只持续了三个月)这确实很有生产力。但下一个时刻允许任何人去描述结果、描述问题,而得到的方案比让程序员规定路径更好,他因此慢了一拍。他还断言 100% 存在「程序员比非程序员更差」的问题域:因为很多程序员并不是好的产品经理,而软件本质上就是产品管理——它该做什么、为谁做、怎么做、优先级是什么、v1 包含什么。在由 AI 做实现的时代,这些才是你需要的技能。他自己写 AmaWrite 时刻意做了个实验:一行 C++ 都不看,完全当黑盒,把自己当成任何一个对「数字打字机该怎么工作」有意见的普通用户。
不要过度规定。 他引用了 Claude Code 团队 Boris 最近受访时提到的一个数据:他们给 Opus 5 发布的系统提示词缩短了 80%,因为智能体不仅需要少得多的人类指令,实际上还会被过度规定的人类损害。「任何有过尖头发老板的程序员都知道那是什么感觉——老板走进来,什么都不懂,开始告诉你该怎么编程。你怎么做?你摆烂。如果被强制要求做违背自己判断的事,你会写出更烂的代码。凭什么智能体不会一样?」他把这条接到敏捷运动上:九十年代末那批诚实又勇敢的人指出,过去四五十年那种「事先规定软件该长什么样,写下来,交给一群程序员照做」的方式行不通,因为没有人知道自己想要什么,直到他拿到它。所以在智能体时代你应该抵抗一上来就精确规定的诱惑,尽可能模糊地先把东西造出来,然后去用它——你是在使用软件的过程中发现自己真正想要什么的。他还赞美了人类的「差异化评估」能力:给我三个选项我立刻能挑一个,但给 22 个就完蛋(选择悖论);这些判断是前智识的,来自直觉,然后大脑才去为直觉的结论找理由——「如果你愿意放下一部分这种智识上的预处理和合理化,只让直觉开车,智能体时代就是一场启示」。
漂亮代码的经济学正在贬值。 Lex 指出,DHH 长期以雕琢漂亮的 Ruby/Rails 代码闻名,几个月内就改弦更张了。DHH 承认在修改 Ruby 代码时他仍然计较细节,但「我逐渐意识到,这份计较的经济回报正在迅速递减」。他解释说 25 年来他之所以斟酌每一行,是因为他知道保持架构连贯和可塑的回报,是一个小团队能快速演进软件、成本不失控、改一处不引入一堆 bug——而这个论证的前提是由人类来做修改。这个前提还成不成立现在是个开放问题。他说至少在当下它仍然成立,理由是:token 仍然稀缺,除非你有无限预算,否则你是被 token 限制的;因此把系统写成智能体容易处理和演进、不必重新学习整个上下文的样子,回报依然很大。同样的「大泥球」问题在智能体身上也会发生:第一个 PR 质量平平,叠上第二个、再叠五个,就不太行了。但他强调这个回报是「以我们当前这个时刻为前提的」。他打了个 Commodore 64 的比方:把一个为 1MHz、64K 内存写软件的程序员送到 2026 年,他会迷失一阵子,因为他所有的技巧和启发法都会是错的——不是错,而是与他能创造的价值脱节了。
给焦虑的程序员的建议。 Lex 问他能不能共情那种「读了 CS、梦想做程序员拿高薪,现在一切都在变」的深层焦虑。DHH 说非常能,但要做个区分:如果你唯一爱编程的地方是把正确的逻辑构造拼在一起、去产出别人叫你产出的东西这个机械过程,那你会很难适应新现实,因为那个机械过程正被威胁;如果你兴奋的是「造东西」,他认为你根本不受威胁——事实上他觉得世界需要远比现在更多的建造者。他引了杰文斯悖论(东西变便宜,需求会变多)和 ATM 的例子:ATM 出现时银行柜员很害怕,但 ATM 降低了开设网点的成本,银行开了更多网点,最后柜员反而更多了。但他也不粉饰:也有真正发生转变的时刻——十九世纪末大多数人还在田里干活,机械化收割工具来了就不需要了;勒德分子砸织机也是同一件事,而且那个类比可能更贴切,因为那些是条件相当优渥、干着自己喜欢的活的高技能职业者。他坚持为「生产力提升」和「增长」辩护,并且诚实地承认生产力提升的含义就是用更少的人做同样多的事:这对当下被裁的个体是悲剧且艰难的,但对整体经济是好事,这些资源被释放去做更有生产力的事,经济就是这样演进的。他还补充说,很多被 AI 接手的任务本来就是苦役——他反问,一个普通程序员在一年 2000 个工作小时里,有多少小时处在心流状态?100?200?25?「把苦役交给机器,这就是文明史。」
具体建议只有一条核心:不要试图预测任何事,你会真的发疯。 连业内最聪明的大脑都无法预判从这里再跳两代模型会是什么样,试图推演两年后的样子是彻底的浪费时间,会让你得「AI 精神病」。专注于当下,而当下是有史以来最不可思议的、投身计算机的时代。他还建议参与开源社区——不是必须公开构建,但那里有巨大的战友情谊,也是缓解个人生存焦虑的好办法:「如果你身处其他人类之中,你会被好的思想病毒感染,那些告诉你一切都会没事的、未来是光明的病毒。」他以自己和 Omarchy 的主要伙伴 Ryan Hughes 为例:起步时的野心非常朴素——「能不能让这个发行版不要因为 Arch 半夜推了个包就在凌晨三点崩掉」,现在他们在讨论「怎么统治世界、怎么把 Omarchy 送上火星」。反面则是:「如果你只是坐在自己那个孤立的洞里担心未来,那你会有点疯掉。如果我们从疫情学到了什么,那就是人独自待在小洞里担心会发生什么,这与抑郁症无法区分——对你控制不了的事无止境地反刍。」
模型与 harness 横评。 这部分信息密度很高。他说这个市场如此开放、来回易手、有这么多实验室能够到或接近前沿,这件事本身就很了不起。就当下而言,他认为最好的模型总体是 Fable,第二是 Opus 5,紧随其后(有时甚至反超)的是 GPT Sol,Grok 4.6 他刚开始测。他的标准操作流程是交叉复核:让 Opus 或 Fable 干活,最后一定用 Codex xHigh 复审,最近也加上 Grok,而且总能找出东西。他还说 GitHub Copilot 的自动复审「我不骗你,真的变好了」,第一版当年蠢得离谱、老是标记一堆无意义的东西、同一个问题反复标,很多人因此关掉了它,「如果你关了,应该重新打开」。他的类比很朴素:即使你是个好程序员,做完活儿请一个同样优秀的同侪复审,你当然会得到更好的代码,所以把这一步内建进流程。
harness 方面他主要用 Claude Code,尽管他对 Anthropic 有一些别的保留意见——他坚持用它的理由是 Claude Code 的 harness 最好,尤其是多智能体并行运行的能力(在会话里按左箭头回到 Agent View 再拾起另一个智能体),这是做多线程工作时最舒服的配置。他也大量使用 OpenCode,主要作为跑开放权重模型(比如 Kimi K3)的 harness,推理不放在中国服务器上,而是用 Fireworks 按 token 付费。他说带订阅用 Claude「感觉像是个疯狂的便宜货」,但当天早上他刚办了第二个订阅——因为倒时差四点起来就开始干活,Fable 的额度还有三天才重置,他把 token 用光了。他吐槽为什么不能直接叠加订阅、为什么要多次登录,并透露下一版 Omarchy 会内建多订阅支持,「我真希望各家实验室干脆让你能一次买一百份 max」。关于 Grok,他和 Lex 都提到其「fast 模式比别家的常规模式还便宜」,快到会让人上瘾,因为它几乎能让你回到单线程模式——智能体能跟上你的思路;但 Lex 说自己已经习惯了 Claude Code 的多任务节奏,反而受不了只能等一个。
AI 极擅长找 bug 和安全漏洞。 DHH 说 AI 在发现和修复安全漏洞上强得离谱,Fable 引发的那场风波正是因为这个模型太擅长找攻击面而被认为不宜直接发布。他指出这类工作的本质是把组合技串起来——单看每个小漏洞都不算最糟,但组合四五个就得到 RCE;能做到这一点的人类极其稀有,通常在国家支持的组织或秘密机构里。他还引用了 Shopify CTO Mikhail 做的一项研究:把 Shopify 生产环境所有的故障和问题回溯到合入的 PR,比较人类复审过的 PR 和智能体复审过的 PR 哪个质量更高——结果是智能体复审过的 PR 引发的问题更少,而这还是半年前的模型。
Linux 会赢下桌面。 这是他最强的一个预测:不只是可能,他认为这是当下最有可能的结局。理由是一个巨大的反讽——Linux 所有的缺点(晦涩的配置文件、古怪到没人看得懂的错误信息)恰好成了智能体操作系统的完美素材。当 Linux 出错时,智能体能把那条对普通人毫无意义的、极其具体的错误信息,与它预训练时读过的四千万行 Linux 代码关联起来,直接定位。他说自今年年初以来,他的 Linux 机器上没有出现过一个智能体诊断不了的问题,而一年半前他还在论坛里翻答案。现在智能体不只知道操作系统的源码,还知道他机器上每一个软件的源码。Omarchy Quattro 因此内建了一个崩溃监视器:任何应用崩溃就弹出提示,问你要不要让 AI 诊断——他见过智能体去翻 systemd 日志、检出崩溃应用的源码、定位到某个 Rust 文件第 472 行有个未处理的 unwrap 溢出,然后问你要不要带着全部细节去提交 bug 报告。他讲了一个精彩的轶事:他让智能体把在 mise(一个为高速迭代的开发工具设计的包管理器,因为各家 agent harness 一天更新七次而普通包管理器扛不住)里发现的竞态条件报给作者 JDX,但此前他刚用八个智能体对 Omarchy 做过一轮 QA,找出 28 个真实问题,智能体跑去 GitHub 在大约 12 秒内同时提交了 28 个 issue,GitHub 相当合理地判定为垃圾信息并封了他的 bot;于是他改用邮件发给 JDX,JDX 的反应是「等等,这是我第一次收到针对尚未发布的软件的 bug 报告」——智能体下载了 mise 源码,发现他已经修了那个 bug,但判断出这个修复不能完全解决问题,而那部分代码还没发布。
关于 Linux 的其余部分:他指出反讽的另一面是苹果长期以来的优势——高度封闭、精心策划的体验——如今成了最大的短板,「如果你在意智能体、开发和这一整套东西,Mac 就是个充满敌意的地方,到处是墙」。他也承认开源社区对 AI 的反应并非一致的欢迎,多数其实是怀疑甚至公开敌视,而挽救局面的是 Linus Torvalds 本人几周前明确表态欢迎 AI(大意是「如果你以为 Linux 是个反 AI 项目,那你再想想,你该做的是开源该做的事——去 fork 它,因为我们要用 AI」),内核里的 AI 贡献曲线是抛物线式上升的。他的总结是:Linux 征服了其他一切——所有 AI 基础设施、所有服务器都跑在 Linux 上——桌面没被拿下反倒是个怪事,「Linux 从 91 年一路等到现在,就是在等智能体全面绽放」。他认为 Linux 现在有机会赢的原因是 Omarchy 一开始就定下的设计目标:不做「Temu 版 Windows」或「Temu 版 Mac」,不去做一个尽量熟悉但更差的廉价复制品(他说如果不客气的话,这就是 Ubuntu 曾经尝试的路,而人们并不在乎「自由如言论而非啤酒」,他们只想要更好的)。Quattro 发布后最让他兴奋的信号是可塑性:三天内插件市场上就有了 330 个插件,光是「点时钟弹出的日历不支持 iCal」这一个需求就有大约 17 种实现——「我从没见过任何我参与过的项目有这种增长速度,也从没见过这么多人能这么快造出对自己有意义、又能被别人用的软件」。原因是 Omarchy 内置了一套 skills,告诉任何你带来的智能体如何为这个操作系统写扩展。他说这些人正在体验「当程序员最好的那种巅峰感受」——过去你要用晦涩的命令和刚性的逻辑结构对计算机说话,现在你坐下来用大白话絮叨二十分钟,出来的就是按你的样子塑造的操作系统。「这就是计算机本来该有的样子。计算机一开始就是这样的:Commodore 64 一开机,一秒就启动,而且直接进 BASIC,它从一开始就是可塑的计算机,只不过你得懂象形文字才能用。现在我们把它翻译过来了,智能体给了我们罗塞塔石碑。」
编程的未来与非确定性之美。 谈到 Omarchy 可能被 OpenAI 或 Anthropic 收购时,他说自己「真的不需要钱」,所以能纯粹为了自己的乐趣和愿景的纯粹性去做——而这有种奇怪的性质:当你不再在意别人怎么想、只追求一个单一愿景时,成品反而更有吸引力;一旦开始「因为这些人想要那个所以我该做这个」,你就在稀释它,最后变成一团寡淡的虚无。他说如果 Omarchy 最终只是历史上的一个脚注,标记了智能体操作系统与可塑计算机运动的早期,他也完全平静——只要他自己能用上一台像 Omarchy 这么好玩的计算机。他对 Ruby 也是同样的态度:如果有更好的语言出现,他就用;如果有比 Rails 更好的东西出现,他也用。而现在,「语言就是英语了。这是个陈词滥调,但也是真的。过去三个月我一直在用英语编程……如果说有一种编程语言比 Ruby 更美,那就是英语。」
对谈的最后一段落到了非确定性。Lex 提出一个微妙的观点:当你提示一个系统时,过度具体会让它太字面地听你的话;而人类语言的力量恰恰在于「策略性地使用歧义」——就像情诗里直白地说「我爱你」远不如隐喻有力,提示词也一样,你想传达某种风格感觉,但不要过度解释。他的说法是「别像跟机器人说话那样跟它说话,像写诗那样跟它说话」,因为歧义能在不过度规定的情况下承载大量含义,而另一端那个足够智能的实体能通过解读把它们整合进来——「歧义反而把更多的智能拉了出来」。DHH 说这完全说到点子上,并指出这正是很多程序员对 AI 的根本误解:他们希望它是确定性的。「不不不,temperature 才是整套 AI 设置里最美的部分。」他指出针对 AI 的两大指控自相矛盾:一边说它不确定所以糟糕,一边说它没有创造力——「兄弟,只能二选一」,要么非确定因而有创造力(因而在某种程度上是随机的),要么就没有创造力。他说自己已经完全接受同一个提示词不会每次产出同样的回应,「你不能两次踏进同一条河流,而这是整个互动中最美的部分,是它最像人的地方」。他甚至做了自我的元分析:他坐下来写一篇文章时,脑子里只有一个模糊笼统的前提,手放到键盘上,他没法提前告诉你下一个 token 是什么,token 就那么出来了——他自己的创造性时刻,同样是带一点 temperature 的下一个 token 预测。被追问是否已经看到类人的意识概念时,他说他已经看到了:你给它一个模糊笼统的意图,它却知道你到底是什么意思,甚至改进了你说的话、交付了你自己都没能表述清楚的那个真正想要的东西——「如果这不是意识的微光,那什么是?」不过他也保留了科学上的谦逊:他不是世界模型等其他路线的专家,但神经网络本身就曾走过几十年无人问津的黑暗,所以尽管 LLM 现在如此惊人,它也可能最终触顶——只是目前还看不到任何证据,而这也是为什么会有如此令人瞠目的投资规模,因为到目前为止 scaling law 还是成立的,投进去越多十亿,出来的智能就越多。
HN 评论精华
需要如实说明:这条 HN 帖子没有产生任何讨论。 提交者 momentmaker 的这个帖子拿到 12 分、0 条评论。这不是被合并或重复提交导致的统计问题——这个 YouTube 链接在 HN 上一共被提交过四次(DHH: Future of Programming – Lex Fridman Podcast #501 [YouTube, 5 Hours]、DHH: Future of Programming, AI, Agentic Engineering, Vibe Coding and Linux、以及 DHH: On AI),分数分别为 12、9、5、3,评论数分别为 0、1、1、0。四次提交加起来一共只有两条评论,没有任何一条构成讨论。
这两条评论是:
- Rochus(在 kylecazar 的提交下):「这是一场非常有趣的对谈。如果照字面接受 DHH 的说法,我很惊讶这些 AI 玩意儿已经这么好了。」
- lordkrandel(在 bluedino 的提交下):「又来了,那个法西斯意识形态家。」——这条与视频内容无关,指向的是 DHH 近年在公共议题上引发的争议(节目里「Surviving Internet Hate」和「Politics and immigration」两个章节正对应这类争议)。
一个五小时的、由 Rails 作者宣布自己「100% 被 AI 说服」并预测 Linux 将赢下桌面的长播客,在 HN 上四次提交都没能激起讨论,这件事本身或许比任何一条评论都更值得记录:可能的原因包括五小时的时长门槛、DHH 本人在 HN 上高度两极化的形象(从两条仅有的评论就能看出这两极),以及视频类内容在 HN 上天然较低的讨论转化率。本文的摘要部分因此完全基于 Lex Fridman 官网发布的完整文字实录(lexfridman.com/dhh-2-transcript)撰写。