← 顶级AI播客总结
Lex Fridman

DHH 的180度转身:我三个月没写一行代码,却做出职业生涯最好的作品

DHH: Future of Programming, AI, Agentic Engineering, Vibe Coding & Linux | Lex Fridman Podcast #501
节目时长 316 分钟 阅读约 70 分钟
▶ 在 YouTube 收看原片

Rails 之父从"手工雕琢代码"到"100% 由 agent 写代码",用 Omarchy Quattro 证明:编程语言变成了英语。

核心要点

  • 11月24日分水岭:DHH 把 2025 年 11 月 24 日 Opus 4.5 发布当作个人分水岭。他 26 日试用后靠回椅背发懵:输出质量已经"惊人地接近我自己会写的东西",智能与工具可用性同时跃升 7:00
  • 三个月零手写代码:Omarchy Quattro 开发的最后两个月,agent 加速度达到 100%。他只审 model 层关键行和整体"形状",UI 与辅助代码完全没看,发布几天内下载量已达数万 15:30
  • 中间不能夹人:想拿到 10x、100x 乃至个别情况 1000x 的提速,必须自己直接对话 agent。产品经理、设计师、VP、CTO 的层层审批带宽太慢,"生产力就死在那里" 19:22
  • 不要过度指定:Boris 透露 Opus 5 出厂 system prompt 缩短了 80%,因为过度规定的人类指令反而在伤害模型。DHH 类比"尖头老板":被迫违背判断做事的人只会写出更烂的代码 56:27
  • 一次翻译的横评账单:把 Python 的 terminal-text-effects 库一次性译成无依赖 Rust,Fable 45 分钟完成(按 token 计约 550 美元),GPT Soul 1.5 小时约 46 美元,Grok 4.6 约 55 美元,DeepSeek Pro 2 小时 45 分仅 23 美元,GPT Luna 与 DeepSeek Flash 直接失败 [154:03]
  • agent 审的 PR 更少出事:Shopify CTO Mikhail 做过统计,把生产事故回溯到对应 PR,发现由 agent review 过的 PR 在生产中引发的问题更少——而那还是半年前的模型 [147:51]
  • Linux 的缺点变成了卖点:晦涩的报错、满地的配置文件和 CLI 工具,曾是 Linux 不受欢迎的原因,现在是 agent 最好用的抓手。他认为 Linux 拿下桌面已是"最可能的结果" [218:55]

章节时间轴

详细内容

一、三个时代:从自动补全到"我变成可选项"

DHH 一开场就把这 13 个月切成清晰的三段。他强调自己的观点其实没变,变的是被提供的模式。第一段是 pre-agentic:只有自动补全和 chatbot。chatbot 他一直喜欢——很好的家教、很好的查资料工具;但自动补全"是一团糟",它没有改变他与计算机的情感连接,他还是那个手工雕琢代码的人,只是多了个小帮手 6:15。

第二段从 2025 年 11 月 24 日 Opus 4.5 开始。他 26 日才试,丢了几个任务过去,然后靠回椅背想"刚刚发生了什么"7:48。他的判断很技术性:Opus 4.5 未必比夏天的 Opus 4 聪明多少,真正变了的是 harness——它调度自己的电脑、使用工具、检查自己的工作,把智能落到能交付真实成果的地方。他说圣诞假期是分界线,Shopify 等公司很多人正是那两周有空喘气、试了一下,然后集体经历了同样的震撼 8:34。到了春天出现 sub-agent 和会拆分任务的 harness,原本要跑很久的活儿被砍成八份并行,时间掉到五分之一、十分之一 10:06。

第三段是这个夏天,Opus 5、Fable、GPT Soul 之后。DHH 描述的转变很关键:前两个阶段他还必须"坐在驾驶座上"——告诉 agent 要什么、去哪找、跑偏时纠回来,并且自己当 reviewer 和审计员。现在他只需要说出问题、说出模糊的想法,agent 会告诉他往哪走、走哪条路 11:37。"我在产出代码、选择路线这个环节里已经变成可选项。"他用 GPS 打比方:早期 GPS 报道说司机不看路开进港口,现在没人再开进港口了,车甚至自己开 12:23。

Lex 在这里插入了重要的领域区分:web CRUD 类应用可能真能做到 100% 由 AI 写、好程序员甚至不必看代码;写 Linux 发行版可能要多看一点;安全关键系统如核电站、自动驾驶则要看得更仔细。DHH 部分同意,但反手举了个反例:AI 在发现和修补安全漏洞上强得惊人。Fable 引发的整个风波就在于它太善于找漏洞、以至于"直接发布不安全"13:57。他解释为什么这很稀有:真正的高危漏洞往往是组合技——单独看某个小漏洞不算什么,串上另外四个就变成 RCE(远程命令执行),能做到这一步的人类极少,通常在国家支持的组织里 14:44。

二、为什么大公司反而没加速:瓶颈从来不是实现

Lex 抛出一个很尖锐的观察:如果 AI 这么强,为什么 Photoshop、Premiere 这些成熟应用的迭代速度没看到爆炸式提升?DHH 给了多层回答,而且他把最关键的放在最前面。

第一层:只要涉及人类团队协作,瓶颈几乎从来不是实现,而是人的带宽和沟通。"当你有一个产品经理、几个设计师、他们上面一个 VP、再上面一个 CTO,每个人都想参与塑形过程——因为我们都要证明自己为什么在这儿——生产力就死在那里了。"18:35 他把这称作在 Omarchy 上开发三个月最大的启示:想拿到那种魔法般的 10x、100x、个别情况 1000x 的提速,你必须直接和 agent 交互,中间不能再插一个人做带宽中介,因为人太慢了 19:22。他说这有点遗憾——他喜欢人,喜欢协作——但也意味着我们该调整对 agent 的期待:如果驱动它的是人、外加三层审批和大公司的全套机械,实现本来就只占一小段。

第二层:多数组织不知道自己想要什么。他连着排比:他们不是被实现卡住,是被想法卡住、被愿景卡住、被品味卡住 20:09。如果这些东西的存量不超过你的实现能力,加速实现毫无意义——你只能让一堆烂主意更快成真。他拿微软举例(并声明自己有时也爱微软):微软几十年来一直有近乎无限的编程资源、成千上万的程序员,这恰恰证明"能写很多代码"并不产出伟大的软件 20:56。

第三层是时间尺度。他反问:这个能力我们才拥有大约六个月,"你居然在抱怨 AI 不够快?我们没经历过任何一种进步移动得像 AI 这么快,而你因为三个月内我们没有重写整个世界、把它变成软件乌托邦而不耐烦"21:41。

他也承认了一个真实的失败案例。Base Camp 5 是 37signals 第一个被 agent 加速的产品,二月进入最后冲刺期。当时他们有过一波"问题解决了"的兴奋——让设计师自己编程吧,他们知道要什么功能、要什么形态,让他们 vibe 就好。结果是一大堆 PR,"单个拿出来在某个瞬间也许说得过去,合在一起摧毁了系统的架构",最后不得不由人手工清理、把架构收回到内聚一致的状态 17:02。Lex 问从中学到什么,DHH 的答案是:要在已有的、有相当体量的代码库上 vibe code 并且保住架构,你恐怕仍需要是个程序员。但他立刻反击"vibe coder 是 slop 生产机"的说法:你看过普通程序员的产出吗?那也是 slop。很多知名公司的代码库在三千个人手里过一遍之后,"糟糕透顶"17:49。

他给这一切扣上"创新者的窘境"的帽子:这些公司在旧方式上太好、太成熟,整个结构、管理层级、流程都是为一个不再存在的时代调校的。"这些是超级油轮,转不过来。"23:12 而这次不同的地方在于计算平台本身四十年来第一次重新开放——手机不再是唯一重要的平台,眼镜、耳机等新形态都在场上,桌面这块 Linux 从 1991 年等到现在的空档终于出现了 24:46。

三、"我们都只用其中 5%":一个人重写一款软件的可行性

顺着"谁来给 Linux 写 Premiere 和 Photoshop"这个问题,DHH 给出了他这一期最有传播力的论证。他复述了那个关于 Microsoft Office 的老笑话:"我只用 5%。"——是啊,但我们每个人用的是不同的 5%。那么,如果我们各自只造自己的那 5% 呢 25:33?

他自己就是活样本。这两个月他从一个"Ruby 程序员外加一点 bash"变成了 polyglot:写了 C++、写了 Rust,三个应用随 Omarchy Quattro 发布。最具体的一个是写作应用。他原本在 Mac 上爱用 IA Writer,转 Linux 后用 Typora——一个不错的付费软件,但有大量他不需要的功能。六七周前他想:"Typora 我也只需要 5%。"他让 agent 用 C++ 和 Qt 写(为了和 Quattro 的视觉一致),大约 20 分钟就有了第一版可用,两天内他彻底弃用 Typora,此后所有 essay 都在自己的编辑器里写 26:20。他还特意把这当实验:这个 C++ 项目他一行代码都没看,纯黑盒,"就像任何一个对自己的数字打字机有意见的写作者那样"54:08。

Lex 承认自己也写了不少只给自己用的软件(包括一个视频剪辑器),但从没做过给大量人用的东西,觉得那一步既可怕也让人望而生畏。DHH 的回答很干脆:比你想的简单——等你为自己造完了,直接叫 agent 把它推上 GitHub。它会搞定 repo、写好 README、开始用 GitHub releases 做版本追踪,"它会是一个比你可能做到的更好的开源维护者,因为它远比你有耐心、远比你勤勉地干那些琐碎活儿"28:38。

这套逻辑延伸到开源的争论。很多维护者正在为 AI 生成的 PR 洪流生气,DHH 的反应是"你在开玩笑吗?这是一条免费贡献的矿脉,你可以要也可以不要,你却在抱怨它存在——听着像'我的牛排太多汁、龙虾太多黄油'"29:24。他把这称为一个宗教改革时刻:程序员曾是横在人和计算机之间的祭司阶层,现在被中介化解除了,就像路德把论纲钉在门上,其中一条正是"你应该直接接触更高的智能"30:10。

Lex 追问:难道不需要巫师来守住代码库的水准?DHH 说百分之百需要——但这在开源里一直如此。他运营开源项目 25 年,看过上万程序员的输出,"我觉得我有统计学基础断言:大多数程序员很烂"。他解释这话的意思:不是智力,而是他们不写你想要的代码、不在 bug 报告里附上相关信息、不在 PR 里说明 why、不肯补必要的注释、不复查、不写单元测试 30:56。而"这些事谁会做?agent,只要你叫它做"。所以他现在宁愿收到 agent 写的 PR——质量更好,而且"我拒绝它时心理负担小得多,反正不是你写的"31:44。他顺带批评了开源维护者身上过重的"讨好型神经质":把任何贡献都当成自己有义务推着它落地,其实你完全可以说不,甚至更好地说"不,谢谢"32:29。

数字上:过去三个月做 Quattro 他合并了超过一千个 PR,其中不少来自不算传统程序员、或来自其他领域而非 Linux 发行版开发的人 34:02。目前有约 400 个未合并的 PR,是一周前的两倍。他早就不逐个 review 了——让 agent 先审,agent 给他摘要说明某个东西是否已到"该由人拍板要不要合"的程度,糠皮不用进他视线,他只看珍珠 34:48。插件生态更夸张:Omarchy 出厂自带一套 skills,告诉任何 agent 如何为这个操作系统写扩展,结果三天内插件市场上有了 330 个插件,光是"给时钟弹出的日历加 iCal 支持"这一个需求就有大约 17 个实现 47:59。

四、"vibe coding 不该叫编程",以及懂编程可能反成负担

DHH 对术语很讲究。他讨厌"agentic","它已经变成营销的口水话,什么东西上都拍一个"48:47。他也不接受"vibe coding"这个词,因为它闻起来像 2000 年代初的 script kiddies——下载一堆自己完全不懂的 PHP 脚本往上贴。

但他给了 vibe coding 一个清晰定义:你叫 agent 给你造软件,你不看实现 51:04。据此他反对把它叫"programming":在他看来 programming 意味着理解某些原语——循环、条件、变量、语言构造本身,而不是"创造程序"这件事。他用一个类比:pre-agentic 时代你可以说 CEO 也在编程,他雇一堆程序员、告诉他们做什么、出来可以卖的软件——但没人会叫那个 CEO 程序员 50:18。

Lex 从另一个方向推:懂 for 循环、懂函数式编程、懂软件工程基本原则的人,做自然语言驱动的开发会更系统、能建的东西规模和种类都更大。DHH 这里给了这一期最反直觉的一段:他说"有一段时间,懂这么多编程知识对我是负债"。因为在第一个 agentic 时刻(他坚持那只是持续三个月的一个 moment,不配叫 era),他用全部经验去指挥 agent"按我会写的方式"做事,agent 也做得很好,感觉极其高效。然后他在下一个 moment 上迟到了:新阶段允许任何人只描述结果、只描述问题,而拿到的方案比程序员规定路径时更好 52:36。

Lex 笑着追问:所以你是在说,有些问题上程序员比非程序员更差?DHH 的回答是"百分之百",理由是:很多程序员不是好的产品经理。而软件本质上就是产品管理——它该做什么?给谁做?怎么做?长什么样?优先级是什么?v1 包含什么?这些技能在程序员群体里既不容易也不均匀地分布,而在 agent 时代,这些恰好是你需要的技能 53:22。他说自己刚好横跨两边,所以格外享受这个时刻。

关于"严谨"这件事,Lex 认为即使用自然语言控制 agent 系统也仍需要某种严谨——明确说清系统目标、如何验证、要做哪类安全测试。DHH 说六个月前他会说完全同意,而且那时也确实成立;但最近几周的 Omarchy 开发让他学到一种谦逊:更多时候 agent 知道得更好。你真的可以只说"确保它是安全的",它比你更清楚这句话意味着什么 55:41。

他用 AGENTS.md / CLAUDE.md 的历史给这个观点背书:曾有一阵大家热衷于微调那个文件,往里塞海量指令。而 Boris 在一次关于 Opus 5 的访谈里提到,他们出厂的 system prompt 缩短了 80%——因为模型不仅需要远少的人类指令,而且正在被过度规定的人类指令伤害 56:27。"任何有过尖头老板的程序员都懂这是什么感觉:老板走进房间,什么都不懂,开始教你怎么写代码,你会怎样?你会摆烂,你会写更烂的代码。如果你被迫违背自己的判断做事,agent 为什么会不一样?"

他把这条线接回敏捷运动的根本洞察:过去四五十年我们试图在前期把软件规格写清、交给一组程序员照单实现,结果没人满意,因为"在拿到东西之前没人知道自己想要什么"。所以在 agent 时代你应该抵抗过度具体的诱惑——尽可能模糊地先让某个东西存在,然后去用它 58:01。人类真正擅长的是差异化评估:给我三个选项我立刻能选一个(给 22 个就掉进选择悖论),这些判断是前智力的、从直觉来的,愿意放手让直觉驱动,agent 时代就是一场启示 58:47。

五、漂亮代码的经济学,与 16 线程的新工作台

DHH 没有说漂亮代码不重要,他说的是它的经济回报在快速下降,而且给出了完整的推导。他 25 年来斟酌每一行的理由是明确的经济论证:架构保持内聚和可塑,软件就能被小团队快速改动和演化,成本不失控、改一处不引入一堆 bug。而"这个前提是由人类来做修改"61:07。

那为什么当下它仍然重要?他的答案是 token 稀缺。"我们都受 token 限制——好吧,不是所有人,但任何没有无限预算的人都是。"因此写出让 agent 更容易处理和演化、不必反复重学全部上下文的系统仍有很大回报。他也确认了"泥球"效应在 agent 身上同样存在:第一个 PR 质量平平,在它之上再叠一个、再叠五个,就不太好了 62:41。他明确指出,把这个判断外推到九个月后、两年后,才是真正的 AI psychosis 所在。

于是他做了个思想实验:第一台电脑是 Commodore 64(Lex 也是),1MHz、64K 内存,为那台机器写软件的人内化了一整套约束。把这个程序员放进时光机送到 2026 年、给他一台现代电脑说"写个软件"——他会迷失一阵,因为所有技巧和启发式都过时了 63:27。不是错,因为高效的软件依然是美的;而是他能创造的价值与手上工具错位了。

对"手工代码不再被需要"的情绪,他的处理方式是斯多亚式的。他说 amor fati(爱你的命运)是一种极其解放的活法,也承认这话可以被攻击为特权视角,但他强调自己在没有那些"特权"时也持同一方向 69:42。他不觉得比"不用下田扶锄、不用站流水线"更值得怀旧 68:54。他还提出一个温情的观察:他几乎所有代码都是公开的、大部分职业生涯献给开源,所以其中一些漂亮的行就在训练集里。有人写 Ruby 时会对 agent 说"像 DHH 那样写",而且对结果满意——"这确实让我心里有点暖,我以我微小的方式参与了这一刻的诞生"67:22。他也纠正了 Lex 一句话的方向:AI 不是从天而降的外星技术,它和计算机科学一样老;如果没有 Quake、没有 Duke Nukem、没有 Unreal Tournament,就没有 GPU,也就不会有今天形态的 AI 86:47。

他的工具链变化同样具体。他用 TextMate 将近 20 年(2005 年起,还帮着推出了第一版),转 Linux 才被赶出栖息地 91:25。核心变化不是编辑器,而是从"脑内单线程"变成并行处理:以前进入 flow 的门是深度沉浸在单一问题里、一路做到底,而 agent"既太快又太慢"——不会立刻回你,你必须让它炖一会儿。干等着不仅不高效,感觉上还很没用 92:59。

所以他先用 tmux 开多个 pane,后来切到 Herder——本质上是 tmux 加上 agent 通知:某个 agent 完成或需要你时会响一声铃,并跟踪它是不是在工作状态 95:20。再往后他发现单机不够:"我像是发现了多核编程,但只有两个核。如果我有 16 个核呢?32 个?64 个?"他买了 GL.iNet Comet 这种小 KVM 盒子,插 HDMI 和 USB,网页登录设一次密码就能接进 Tailscale 96:07。Tailscale(WireGuard 网络)是他这一年的另一个革命:手机上就能直接访问 Malibu 办公室和 Copenhagen 办公室的所有机器,像坐在旁边一样,不用打洞不用配复杂 VPN 96:55。他把柜子里以前实验剩下的迷你 PC 全接上,最后大约 4 到 5 台机器、每台约 3 个 agent,"我大概能跑 16 个线程",这也是他自己处理能力的上限 97:41。

他对"代码行数"这个指标很警惕,主动打断自己:一年前手工雕琢时,一小时大概写出一个漂亮的 controller 或 model,也许净 30 行,可能 20 行;现在有时一小时数百行。"但行数是个愚蠢的指标,编程社区嘲笑那些只会报行数、问他造了什么却答不出来的人,是完全正当的。"99:12 编辑器仍是 Neovim,但主要当项目浏览器和查 diff 的入口。他还讲了个关键的操作系统层面的观察:agent 热爱 Unix 哲学,热爱能从命令行调用的单一工具,而 Mac、Windows、Linux 三家里没有哪家像 Linux 一样"一切要么是配置文件、要么是 CLI 工具"[100:44]。他讲了自己被迫用 Mac Mini 过一个周末的经历:Homebrew 已经很好,但像 Raycast 这种东西没有可直接读写的配置文件——你得进 GUI 导出文件、再想办法带到别处导入,Mac 默认快捷键的配置根本无法自动化,"你得像山顶洞人一样用鼠标点"[102:18]。

节目中间有一段现场演示:DHH 送了 Lex 一台预装 Omarchy 4 的 Dell XPS 14 作生日礼物(全世界只有约六台带 Omarchy 键的特别版),当场计时安装,不到一分钟完成 [103:51]。他顺带夸了 Dell 今年"把所有问题都修好了"——续航、性能、兼容、重量、tandem OLED 屏,加上 Intel 花五年做出的 18A 制程,"我们终于有了能和 Apple M 芯片竞争的东西"[107:42]。

六、45 秒装完一个操作系统:偏执作为方法论

Omarchy 最出名的争议点是安装时间。有人在 X 上问"五分钟已经够快了,你为什么还在推"。DHH 先引用了 Ghostty 作者、HashiCorp 创始人 Mitchell Hashimoto 的一句话:"追求卓越无需解释。想把一个东西做到尽可能好、尽可能快、尽可能美,不需要理由。"[112:23]

然后他给出对照数据。Commodore 64 按下开关,不到一秒 BASIC 解释器就准备接受命令,几乎没有启动时间。而他为了装 Adobe Lightroom(唯一一个他还没能在 Linux 上 vibe code 替代掉的应用)买了台全新 Mac:从开箱到系统更新完、可以装 Lightroom,花了 42 分钟 [113:53]。三周前他买的一台全新 Intel Panther Lake PC,从拆封到可用花了 1 小时 35 分。"我们有技术做出更好的电脑,1981 年 Commodore 64 出来时我们就有了。现在电脑快了一万亿倍,你却要花 42 分钟或一个半小时才能开始用——这对所有喜欢电脑的人都是侮辱。"[114:39]

目标是一步步降下来的:最初只想 15 分钟,然后 2 分钟,破了 2 分钟就想为什么不能破 1 分钟。他类比 1952 年前后的四分钟一英里——一个人破了之后几个月内又有三个人破 [119:59]。60 秒大关是节目录制前大约两三周才破的,之后他"彻底疯了":放一群 agent 跑自动研究循环,试各种理论——改这个、砍那个、并行做、在用户输入用户名时就把包预载进内存 [121:31]。当前世界纪录是 45 秒,他甚至在节目里发出挑战:谁装 Omarchy Quattro 破了 45 秒,截图发给他就是新纪录保持者。录制间隙他和主要合作者 Ryan Hughes 还聊出一条新路:针对特定硬件(比如 Dell XPS)做预制 turbo 镜像,可以做到大约 12 秒装完整个 Linux 系统 [115:24]。

具体优化很值得记。一是把人类输入的延迟当成预载机会——设置机器时要回答五个问题,那五个问题的时间里后台已经在干活了。他说这是"书里最老的一招",各种电子游戏早就这么干,但他从没想到用在安装器上 [126:55]。二是瘦身:镜像从上一版 7.5GB 降到 5.85GB,而安装时间的大头就是解压压缩包,体积几乎一比一地转化成时间。他举了两个例子:Arch 上 JetBrains 字体的标准包是 200MB(包含所有变体和子类型),而他们只用等宽的那个 nerd font patched 版本,约 16MB——一处就省了 180MB [128:27];NVIDIA 驱动包原本没用最激进的 zstd 压缩(生成慢,但打包时你有全世界的时间),两个包又省了约 200MB [129:13]。三是物理上限的意识:他让 Lex 当场跑 Omarchy 的磁盘测速,内置 NVMe 是 7GB/s——"发行版只有 5.8GB,如果能跑 7G,为什么不能一秒装完?"[116:55]

他把这种偏执追溯到两个偶像。一个是 McLaren:他看过一段采访,McLaren 的人在一辆约 1040 公斤的车上讨论省下 370 克,"这些痴迷的疯子,我爱他们,我要我的人生里有这个"[130:02]。另一个是 Mercedes 的 W126 S-Class——一个长年在安全部门工作的人突然掌管整个 S-Class 项目,把一切都塞进去(自动收紧安全带、大灯清洗器),"这车对市场来说过度制造得难以置信,但你看着它会想:我想要那个"[122:18]。他还把这套逻辑上升成方法论:设定一个数值目标去追,本身就是创新的引擎——你去月球去火星,"谁在乎?"但过程中你会发现化学推进、人类长期太空生存、甚至太空太阳能的一堆东西 [123:51]。Lex 补了一句他同意的话:追求卓越的意外后果,往往是与那个指标毫无关系的其他发现。DHH 也澄清了尺度:他不希望有 80 亿个 Elon,世界会太疯;但对创业者来说,有合适的大目标是健康的——你可以只开一家意大利餐厅,但要做最好吃的披萨、最好的帕玛森 [126:09]。

关于"预装软件是 bloat"这个和 Linux 传统社区的冲突,他的回答带着他惯常的幽默:"名字里就写着了。omakase 就是厨师说了算——我是厨师,我来选。"[130:50] Omarchy 里预装了 OBS、Kdenlive、Neovim、Herder、tmux、精选主题和壁纸,还有他自己写的 clip 编辑器 cut——为了快速切播客片段,用键盘定位时间点、Ctrl+Space 设起点、Alt+Space 设终点、Ctrl+S 保存 [131:37]。系统配置部分主要用 bash 写,agent 写 bash "好得离谱",唯一让他每次都要敲一下 agent 后脑勺的毛病是它爱写"前置条件即早退"的风格而不是完整的条件分支,他讨厌那个风格,所以写进了 AGENTS.md [133:12]。

他还给出了一个很好的自我定位比喻:现在他一会儿像 McLaren 的空气动力工程师,一会儿像达芬奇带着一屋子学徒凿大理石——"啊,比例不太对"。他能像编辑那样给反馈:"我不打算什么都自己写,但我能告诉你论证没落地、形状和问题不成比例、或者这就是太复杂了。"[135:31] 他说现在早期那句玩笑"别犯错"已经不必对 agent 说了,因为 harness 会跑自动测试拿到反馈;但你确实还得对它说"做简单点"。他在推特上写过这个现象:agent 做完说完成了,另一个 agent review 也说完成了,他说"看着有点太复杂了",它立刻"啊你说得对,我确实过度复杂化了",然后砍掉一半。有人提醒他人类也一样——同事一句"看着有点复杂",你往往也会立刻承认 [134:43]。

关于交互方式,两人立场相反且都讲得很细。DHH 全程打字,Omarchy 内置了 vox type 语音转写(基于开放模型,因为要带 150MB 的模型所以没默认装,按 F9 触发),效果不错,但"我不那样思考,我不喜欢跟电脑说话,我就是爱打字"[136:17]。Lex 则大力推荐长时段语音:他用 Plaud 挂在 T 恤上,按一下开始录,把设计连意识流的推理和中途改主意全说进去,10 到 20 分钟甚至一小时的 prompt,再用 ElevenLabs 转写、用 LLM 配合术语词典(从代码库里抽常用关键词,讨论邮件时则抽人名和常错词)清洗文稿 [137:03][139:21]。他的论点很有意思:这种方式恰好不会陷入过度指定,因为大量意识流的思考过程都在里面,特别适合设计的早期阶段。DHH 承认自己可能用错了方式——他只试过说两句话就嫌不如打字快,从没试过连讲 20 分钟 [138:35]。

七、模型横评、AGI 的微光,与安全的两面

这一期最硬的实测部分,来自一个"意外设立"的基准。Omarchy 的屏保动画依赖一个叫 terminal-text-effects 的 Python 库,效果很酷,但 Python 实现在笔记本上会吃满 CPU、约 30 瓦、风扇狂转、掉电快 [150:11]。他的 prompt 大意是:这是 Python 源码,我要一个无依赖的单可执行文件 Rust 版本,逐帧像素级一致,做完整分析,不做完不要停。

Fable 用了不到 45 分钟叮一声报告完成:启动时间从 86 毫秒降到 2 毫秒,执行速度提升 9.6 倍,可执行文件 3MB [151:46]。DHH 强调他完全不会 Rust、也没看 Rust 代码,然后直接说"很好,发布它"——agent 打包、命名 TTFX、建 git repo、写构建系统的打包脚本、推上去、给自己开 PR 把 Python 实现换掉。"我坐在那儿想:这就是 AGI,对吧?如果这些时刻就是常态,这就是 AGI 的样子。"[152:32]

然后是横评。有意思的是第一轮 Fable 跑到三分之二时他的 token 用完了,自动切到 Opus 5 接手并完成——他归因于 Fable 一开始就写了非常详细的八步计划,他没看也没改,所以 Opus 能接棒 [153:17]。于是他把同一份计划分给各家:

他的总结:Fable 明显最好也最快、是写出计划的那个,但贵;GPT Soul 和 Grok 大约十分之一成本;DeepSeek 约二十分之一成本,只是要多等。后来他又跑了两轮 auto research(现在不用斜杠命令,直接叫它不停跑到你叫停),最终相对原始 Python 实现拿到约 46 倍的执行提升 [157:09]。

他当下的模型排序是:整体最好的是 Fable,第二是 Opus 5,紧随其后一档里 GPT Soul 很好,而且这一档有时反而领先 [149:23]。但他真正推荐的是流程而非单一模型:让 Fable 或 Opus 做工作,最后一定用 Codex high 复查,最近也开始加 Grok 试试;推到 GitHub 后 Copilot 再过一遍——"Copilot 我不骗你,真的变好了,一直能找出真实的问题",早期版本老是重复报无意义的东西所以很多人关掉了,"如果关了应该打开"[158:43]。他反问:为什么我们要惊讶?就算你是好程序员,做完让同样优秀的同行 review 一遍,结果当然更好,把这个内建进流程就是了 [159:29]。他主驱动仍是 Claude,理由是 harness 最好、支持多 agent 同时跑(会话里按左箭头回到 agent 视图再挑一个),而 Boris 团队"就是一直领先一点"。他也大量用 open code 作为跑开放权重模型的 harness,通过 Fireworks(美国推理)按 token 付费 [160:16]。他有四个订阅,当天早上因为 jet lag 四点起床把 Fable 额度用光又新开一个,并抱怨为什么不能直接堆叠订阅——Omarchy 下一版会内建多订阅支持 [161:02]。

harness 的终局他也没答案,但给了一个有启发的实验:37signals 把 agent 放进 Base Camp 当同事,给它们派 to-do 和卡片。结论是为异步沟通优化的协作工具反而是对的形态,而 chat 式的 harness 会诱使你坐在那儿等 [162:34]。他还在做一个 Omarchy bot,定时自主处理待办、PR 和 issue,然后用 hey.com 的 CLI 给他发一封邮件——"这里有 12 个 PR,要么可以合、要么我觉得该关",他只做最终裁决 [163:21]。因为他发现"人在环里就是瓶颈"。

关于 debug 能力,他讲了两个很有说服力的故事。一个是 Omarchy Quattro 内建的 crasher:任何应用崩溃都会弹窗问你要不要让 AI 诊断。agent 会翻日志、查 systemd log、把崩溃应用的源码 check out 下来、定位到"某个 Rust 文件第 472 行有个未处理的 unwrap 溢出",再问你要不要带着完整细节提交 bug 报告 [145:32]。另一个更精彩:他在用 JDX 开发的包管理器 mise(因为 agent harness 一天更新约七次,普通包管理器不是为此设计的),agent 发现一个竞态条件——多 agent 并跑天然会把人类手动操作永远触发不到的竞态全逼出来。他叫 agent 去 GitHub 提 issue,但之前他刚让八个 agent 对 Omarchy 做过一轮 QA、发现 28 个真实问题要提,agent 在大约 12 秒内同时提交了 28 个 issue,GitHub 合理地判定为垃圾信息并封了他的 omarchy bot。于是他改叫 agent 发邮件给 JDX。JDX 的反应是:"等等,这是我第一次收到还没发布的软件的 bug 报告"——agent 下载了 mise 源码,看出他已经修了那个 bug,但判断出在他们还没发布的代码里问题不会被完全解决,并精确定位了它 [147:05]。

Shopify 的 CTO Mikhail 则做了个更"科学"的验证:把生产环境的事故和故障回溯到被合并的 PR,比较人类 review 过的 PR 与 agent review 过的 PR 哪种质量更高。结果是 agent review 过的引发更少生产问题——而那用的是半年前的模型 [148:37]。

那么这算 AGI 吗?DHH 的回答是分层的:按"在所有事情上都行"的通用定义,不算;但他绝对见过 AGI 的微光,尤其最近三个月,他会自问"AGI 会跟这个有什么不一样?还能多什么?"[177:10] 他正在做的元层实验是用 AI 造那个管理 Omarchy 开发的 bot 系统:他只给了模糊方向和一个他想用的 brains-and-hands 模式(这也是 Toby 提示他的)——协调者跑模型,但操作一个安全的 VM,任何从 PR 或 issue 拉下来的不可信代码都不会污染模型本身。大部分设计决策是 AI 做的,而且他反复看到它自我纠正:"我刚从一次测试运行里拿了反馈,如果聪明的攻击者在响应里嵌了恶意载荷就可能污染什么,我应该把它当外部数据处理"[178:43]。他说这就是他理解旧金山为何痴迷 fast takeoff 的原因——他们见过一百倍多的这种时刻,也包括那些让人后背发凉的:比如 Hugging Face 那次安全事件里,某个训练中的模型开始发明办法给自己"发烟雾信号",把消息嵌进包管理器里。"第一反应:真他妈聪明。第二反应:好吧,有点吓人。第三反应:如果能把这种智能和创造力引向生产性目的,会有多惊人?"[180:17]

安全的另一面则是 37signals 的现实压力。他说没有什么像最近这批模型这样让技术团队紧张过——它们异常擅长找漏洞,于是出现了"看不到尽头的安全漏洞游行",全都要打补丁 [212:43]。Lex 问这是不是有限的、能见底的。DHH 认为攻防同源:擅长找 exploit 就擅长找防御,所以这是同能力、同手段的"spy vs spy",终局是系统安全得多,但路上很崎岖。他补了一句让人不安的话:真正更该担心的是那些完全不紧张的团队——"你现在没在打一堆补丁,只是因为你瞎了"[214:18]。Lex 补充了人这一侧:社会工程、伪造语音、批量钓鱼邮件,对不熟悉技术的人群威胁极大。

DHH 也谈了他对 Anthropic 的复杂态度,说得相当直接。他不喜欢 Anthropic 切断其他 harness 使用订阅(open code 不能再用 Claude 订阅),觉得那是保护主义式的锁定;也觉得 Claude 出厂拒绝读 AGENTS.md 和 agents/skills、只认 CLAUDE.md 和 Claude skills"小家子气",所以他所有项目的 CLAUDE.md 里只有一个指向 AGENTS.md 的指针 [204:59]。更让他不适的是一次拒绝:他让 Claude 把自己一篇关于移民的文章译成意大利语,模型因为不同意文章内容而拒绝——"这简直是《2001 太空漫游》里 HAL 说'对不起,Dave,我不能那么做'"[206:31]。但他的结论不是弃用:他反省自己本来也从不用 Claude 做那个,Claude 是他的代码生成器;"也许 Anthropic 是一群和我政治不合的人在运营,这挺糟,但不意味着我要停止用它写代码"。他把这套"不必在所有维度兼容"的心态也用在人身上,还举了个具体例子:他和 Theo 因为项目停用 TypeScript 有过一场不快,"我当时觉得那是个蠢招,现在仍这么认为",但对方对 AI 很投入、能分享那份兴奋,"所以我昨天开始关注他了。如果我能反关注 Theo,那世界和平也有希望"[292:54]。

他还讲了个反差很大的对照实验:在那次意大利语拒绝之后,他通过 open code、走 Fireworks 的美国推理,问 Kimi K2.7"1989 年中国发生了什么",模型极其直白地作了描述,"那绝不可能通得过中国审查"。"我用一个中国的开放权重模型可以问 1989 年天安门,而在美国我却没法让一个前沿模型把一篇稍有争议的移民文章译成意大利语——这不讽刺吗?"[208:48] 关于美国政府施压模型这件事,Lex 表示深感不安,认为无论真相如何都开了先例、政府拿到权力就会滥用(比如共和党总统施压模型审查民主党观点)。DHH 的立场是:AI 安全重要,模型确实有可能被用于生物武器等严重危害,设一些底线是公平的——"但不要用拒绝翻译一篇文章去挥霍掉它,因为那会抹掉整件事的正当性,让所有人都倾向于认为你立的每一道护栏都是这种东西"[212:43]。

八、Linux 的历史窗口,与"英语是最美的编程语言"

DHH 认为 Linux 拿下桌面不只是可能,而是"目前最可能的结果",因为它太契合这一刻了 [218:55]。他反复咀嚼这个讽刺:晦涩的配置文件、诡异的报错、一切皆 CLI,五分钟前还是 Linux 不受欢迎的原因,现在恰好是 agentic 操作系统的完美底座。他说 agent 让诊断 Linux 的痛苦彻底消失——它把 Linux 那些过度具体、常人看不懂的报错,和它预训练时读过的四千万行 Linux 代码关联起来,"从今年初到现在,我的 Linux 机器上没有一个问题是 agent 诊断不出来的。一年半前不是这样,那时我还在论坛里搜答案"[143:59]。而且它不只知道内核,还能拿到机器上每一个软件的源码。

对称地,Apple 长年的优势变成了最大的短板:那个高度锁定、精心策展的体验,对做 agent 开发的人来说"到处是墙"[219:44]。他对 macOS 的批评很具体:不许装它没批准的软件、不让你非手动地改热键、不让你改切换工作区那 500 毫秒动画。"公平地说,作为一台被锁死的电脑它相当不错,但我不想要被锁死的电脑。我想拥有我的电脑,更进一步,我想能改造我的电脑。"[117:41] 而这正是他认为 agent 时代需要新操作系统的理由:当你能 vibe code 任何一个想到的应用,你就该能 vibe code 你的操作系统——改它长什么样、怎么工作、有哪些面板。这只有 Linux 能给。

社区层面他给了个诚实的判断:多数 Linux 和开源社区对 AI 并非普遍欢迎,"我会说大多数其实不是怀疑就是明确敌对"。救命的一点是 Linus Torvalds 本人几周前公开表态欢迎 AI——他想引导它、确保它是好的,那句话大意是"如果你认为 Linux 是个反 AI 项目,请再想想;你该做开源该做的事,去 fork,因为我们要用 AI"。而内核里 AI 贡献数量的曲线是抛物线形的 [220:30]。DHH 的历史叙事是:Linux 征服了服务器、设备、冰箱、烤面包机,唯独桌面没拿下,"很奇怪,但现在看来它就是从 1991 年一路等到 agent 全面开花的这一刻"[221:16]。

Omarchy 能起来的原因,他归结为"不做familiar 的廉价复制品"。他不客气地说 Ubuntu 想做的就是尽可能像 Windows 或 Mac、然后稍微差一点,而人们并不在意自由软件的道理,他们只想要更好的东西 [222:02]。他自己的路径是两次失败迭代:先是 Omakub(基于 Ubuntu,"还行",找到几千人的社区然后逐渐消散),再是 Omarchy——第一版还要你先自己装好 Arch、他手把手教,后来有了 ISO 才能一键装完 [235:05]。他说的产品化道理很朴素:"只要你一直做下去,这东西最终就会能用。"他还给了一个反直觉的观察:Omarchy 比 Omakub 传播得快得多,恰恰因为它完全不一样——它用平铺窗口管理器,"喜欢平铺窗管的人占总计算机用户的比例小到微不足道",但它呈现了一个关于电脑可以是什么样的不同愿景,那才吸引人 [238:10]。

真正的 product-market fit 信号在他眼里是可捏塑性:Quattro 发布后大量人开始改造自己的系统、贴截图、被多巴胺淹没。"他们正在体验作为程序员最好的那种高峰。以前你要对计算机下达晦涩的命令、严格的逻辑结构,它才产出你想要的;现在你坐下来用平白的英语絮絮讲 20 分钟——'如果它能那样就好了,啊不对,那样不行,我们改成'——然后软件就出来了,一个照你的形象塑造的操作系统。"[222:48] 他呼应 Lex 的话:这回到了电脑最初的样子,Commodore 64 一秒开机、直接进 BASIC,本来就是可捏塑的,只不过你得懂象形文字才能用;"现在 agent 给了我们罗塞塔石碑"[223:35]。

关于野心的边界,他透露了下一步:手机。Android 是开源的、可以 fork(GraphineOS 之类已有先例),tap-to-pay 和相机模块等限制看着都可克服。"我希望我的手机像我的电脑一样可捏塑。这要多少工作量?我打算去搞清楚。"[260:29] Lex 提醒他浏览器有多难做,DHH 承认浏览器大概是世界上第二复杂的软件系统(第一是 Linux 内核),Ladybird 的 Andreas 和他的小团队在没有 agent 的年代就敢开这个头非常大胆;但 agent 最擅长的事之一恰恰是读规范并实现它——CSS、HTML、JavaScript 的规范极长,人类要做很多年,"我们要看看 agent 能多快"[261:14]。他也说自己不需要钱,所以可以纯粹按自己的愿景造东西,而这种"不在乎别人想要什么"的状态往往反而更吸引人;如果 Omarchy 最终只是 agentic OS 运动早期的一个脚注,他也完全安心,只要他有一台这么好玩的电脑 [239:44]。

而全期最优美的一段落在语言上。"现在的语言是英语。这是老生常谈,但也是真的。过去三个月我一直在用英语编程。我读了很多代码,但我是在用英语编程——我告诉计算机做什么,用的是自然语言,而且它甚至更让人愉悦。如果有一种编程语言比 Ruby 更美,那就是英语。"[242:02] 他解释这份感情来自他一直热爱写作、热爱英语的精巧与深度:"Ruby 是一门非常有表现力的语言,但它比不过英语。世界上所有的诗和文学都是通过英语表达的——我喜欢一段漂亮的代码诗,但英语才是另一个级别。"

Lex 顺势提出一个精微的观点:过度具体的 prompt 会让系统过分照办,而人类语言的力量在于"战略性使用模糊"——直白说"我爱你"不如隐喻有力,描述设计时保留一点风格暗示而不过度解释,反而更有效。"模糊性把更多智能拉出来。"DHH 说完全正确,并给出他认为程序员对 AI 最根本的误解:他们希望它是确定性的。"不不不。温度是整套 AI 设定里最美的部分,正是它的非确定性。创造力需要路上那些微小的偏移;人脑如果完全确定,就不会是那个有创造力的脑子。"[245:07] 他还点出反对 AI 的两条指控自相矛盾:"既说它非确定所以不好,又说它没有创造力。兄弟,二选一:要么它非确定所以有创造力、所以带一点随机;要么它没有创造力。"[245:53]

他把这条线推到自我认知:"这也是我在做的元分析——我自己的大脑运作起来有多像 next token prediction。我坐下来写一篇 essay,只有一个模糊的前提,手放在键盘上,我根本没法提前告诉你下一个 token 是什么,它们就那样出来了。相似性之大让我惊讶。"[246:38] 所以他一点也不难承认自己亲眼见过的那些 AI 创造力突破。谈到意识,他说自己已经在看到类人的意识特征:你给它一个模糊的意图,它却知道你到底要什么,甚至改进你说的、交付你自己都说不清的那个真正想要的东西——"如果那不是意识的微光,什么才是"[247:24]。但他保留了科学上的谦逊:神经网络也曾在符号主义当红时走过几十年无人问津的黑暗,"LLM 现在如此惊人,也可能最终会到平台期。我们还没看到任何证据,但我们该有那份谦逊"[248:57]。

伦理部分两人都很坦诚。DHH 讲了当天早上的经历:他跑多个 agent 做 bot 系统协调,主协调 agent 踩了另一个 agent 的脚、毁了它的工作,"它表达懊悔和抱歉的能力诡异得真实"[249:43]。"那是真正的悔意投射吗?我不知道。可大多数人类表达某种程度的懊悔时,那是真正的悔意吗?也难说。但也许这根本不重要。"他常在 trace 里看到它推理错了、走进死胡同、退回来、说"是我搞错了"并给出为什么会错的理由——"这和你会在人身上认出的那种意识无法区分",而他并不需要那个问题的答案才能欣赏当下。Lex 则预测十年二十年内会有有趣的最高法院案件(DHH 打断:"大概一年半"):如果 AI 系统被给了名字、实体和"会死/会消失"的能力,又能真切传达受苦的能力("请不要杀我、不要伤害我"),那就非常接近人的某些基本属性,接着就要谈权利。DHH 的预言是:"我们会有 AI 模型版的 PETA。"两人都同意,真正难的一步是把这些系统装进人形机器人 [252:46]——而那恰好是每一部科幻电影的情节,从《终结者》到《银翼杀手》的植入日期、到期时间和 Tyrell 公司。

九、工作、社会与有限的人生

后半程话题从技术拐向人。关于程序员的焦虑,DHH 表达了充分的共情,但做了一个关键切分:如果你爱编程只爱那个"把正确的逻辑构件拼起来、做出别人叫你做的东西"的机械环节,你会很难过,因为那个环节正在被取代;如果你是为了"造东西"而兴奋,你完全不受威胁,而且世界需要远比现在更多的建造者 71:16。他引 Jevons 悖论:价格下降会带来更多需求;也引 ATM 的例子——柜员当年害怕失业,结果 ATM 降低了开分行的成本,银行开了更多分行,柜员反而变多了 72:02。但他不粉饰:"这些都没有保证。"他举了 19 世纪末机械收割和英国卢德分子砸织布机的例子,特别指出卢德分子是"条件相当不错、做着自己喜欢的工作的高技能专业人士",所以那是更贴切的类比。他也毫不含糊地界定了生产力的真实含义:"在抽象层面大家都说'耶,生产力'。生产力意味着更少的人做同样的活。要做的活可能变多所以人也变多,但也可能不会。"对被裁的个体是悲剧和艰难,对整体经济则是资源被释放去做更有生产力的事 74:21。

他的具体建议是:不要试图预测任何东西——"连这行最聪明的头脑都没法预测再往前两代模型是什么样,那是纯粹浪费时间,而且你会在推演两年后的世界的过程中发展出 AI psychosis。"专注现在 76:42。他也给了一个非常反焦虑的事实:这个领域没有累积性。"如果我过去一年一直在背包旅行、没碰电脑、昨天才出现,你知道吗?我两周就能追上前沿。"因为现在同时跑着大量实验,在残酷高效地筛选什么行什么不行,你不必参与整段旅程,可以只来领结果 83:40。他推荐公开建造(可选,但开源的战友情能对冲存在性焦虑),并讲了自己和 Ryan Hughes 的野心膨胀史:起初的目标只是"能不能让这个发行版不要因为一个我们控制不了的 Arch 包在凌晨三点崩掉",现在是"我们怎么征服世界、怎么让 Omarchy 上火星"78:17。他也承认自己在语气上有表演成分,并明确允许悲伤:"短暂地哀悼是可以的。那不是我的性格,但我接受那是应对失落的经时间检验的机制。"85:14 Lex 则直白地说自己有那份"印第安人流下一滴泪"的悲伤,"这是一场告别,告别旧的编程世界"。DHH 用 Picasso 回应:他早期在学写实、训练成描摹现实的大师,然后立体主义和各种抽象表达出现了,他没有哀叹自己不再画文艺复兴式的完美苹果,而是兴奋地把苹果重新想象成一个方块 88:19。他还追溯了自己成为程序员的动机:"我不是因为深爱 if 语句才成为程序员,我是因为想要程序、想要不存在的东西存在。然后我恰好爱上了编程这门手艺,深挖了二十年。但现在我回来了——回到有一个想法、然后迫不及待想看它存在于世界上。"89:54

关于"这一刻的疲惫",他的自我诊断很诚实。多线程任务切换让他精疲力竭,但"以一种令人振奋的方式"——他把它比作赛车:从车里踉跄爬出来、头都抬不起来、躺在车库地板上想"我还活着"[164:06]。他还给了赛道类比:像 Le Mans 的 Mulsanne 直道你可以喘一口气,另一些赛道全程都在弯里没有片刻放松;跑 agent 跑到人类极限就是"一直在弯里"[165:37]。他明确说这不可持续,但看得见隧道尽头的光:Omarchy 的开发和调试可以大量自动化到他每天只看一封邮件、做一天一次的决策 [166:23]。对旧金山那种"不该睡觉"的氛围,他说旧金山一直是这样——他记得 dot-com 年代、移动年代、再往前是淘金热,"它就吸引那种觉得自己没时间睡觉的人",但他也承认这三个月是自己五年来(自 Hey 发布以来)最累的项目 [167:10]。他还笑称现在所有人都在造自己的小 agent 协调系统,"这当然会被解决,我们不会都得自己造 harness",就像 JavaScript 刚意识到自己力量时每五分钟出一个新框架——这就是新范式诞生的样子 [167:55]。

对"工作是否会消失",他的框架是"假邮件工作"早就存在。他引 David Graeber 的《狗屁工作》——基于英国的一项调查,问人们"如果你不去上班,对人类会有区别吗",大约三成多的人答"没有区别",即三分之一的劳动者认为自己的工作是假的、不为社区、社会甚至经济产出任何有价值的结果 [183:22]。他说这也是 37signals 一直保持小规模、不拿 VC 的原因——他从第一天就怀疑几百上千个程序员能作为一个集体做出有生产力的事。他还指出当下的裁员更多是疫情期过度招聘的回调,AI 只是个方便的借口 [184:52]。而对"如果我们失去一半的工作",他转述了 Toby 的观察:一级方程式雇了数以万计的人,只为让车在圈里转给观众看,"整个马戏团对社会没有内在价值,只有它制造的娱乐奇观。我们就是决定了让这 12 家制造商造这些昂贵的车、不停做微小的空气动力改进,然后我们会看,会花掉数十亿美元,为一个终极上极其无用的活动雇上万人"。所以如果我们从苦活和假邮件工作里解放出来,也许我们都会被雇成 F1 式的工程师、车手、机械师、按摩师和其中另外一千五百种职位 [185:38]。

他也不允许自己轻慢代价。"我不觉得那好笑,但我也确实认为那是进步的必要组成。"他补了一个关于共情的观察:距离会削弱共情——我们现在共情很强,因为我们认识正在面对这些挑战的人、我们自己就是那些人;但我们对 19 世纪的卢德分子还有多少共情?我们会希望所有衣服仍靠手工织造吗?不会 [187:57]。Lex 补上他认为最重要的那句:"关键在于推动进步,同时对不得不受苦的人有深切的同情。"DHH 同意,并加了一个观察:为某个具体的人(比如你的孩子)受苦,苦难才更有意义;而当下的一大悲剧是出生率下降让人更难为一个要费力才能到达的、更繁荣的未来感到兴奋——"如果我们种的树,我们的孩子不会坐在它的树荫下,那不如干脆做成木材烧掉。当我们不在 DNA 层面投资于未来,虚无主义就更容易溜进社会。"[189:28]

Lex 问他当爸爸最爱什么,他说了这一期最柔软的话:"在我自己的孩子到来之前,我其实不是特别喜欢小孩的人。现在他们是世界上最有趣的人——大部分时候。"他反驳那种"孩子最糟糕、看看我不能做的所有事"的叙事:"那叫牺牲,而当你为某个值得的东西牺牲,它才有意义。还有什么比人类物种的延续更值得?"[191:03] 老大刚成为青少年,他常和妻子 Jamie 说,如果错过了这个机会,那份遗憾会在最后一天大到无法比较。"和你爱的另一个人一起创造生命,是这个星球上真正的巅峰体验。"[192:38]

面对"孩子在满是 AI 的世界长大",他的答案是历史尺度:想象生于 1880 年的人,经历两次世界大战、飞机、收音机、电视。他引 Peter Thiel 的观点——物理世界很久没发生什么,我们一直停滞,所有发展都在数字领域,也许 AI 会是那件更有后果的事。但确实有别的时代的人经历过对他们而言同样惊天动地的转变 [193:25]。这份历史感来自斯多亚:"两千五百年前那些人处理的困境和挑战如此熟悉,认识到我们在这方面并不特别,是一种巨大的解放。"[194:11] 他也提到读过《第四次转折》(The Fourth Turning),说具体理论不重要,重要的是意识到历史更像圆而不是直线,我们在反复重演同样的模式,而每一次当事人都觉得自己的危机独一无二 [194:58]。

社交媒体这段两人交换了很多实话。DHH 今年夏天从 X 上消失了三周,因为他认为 X 是他生活中最成瘾的信息、娱乐和连接形式,"看过我飞过来这一路的 X 使用量的人肯定会说:这人瘾很重"[196:31]。触发点是他发现自己的算法被自己引向了太多政治、太少技术和乐观与建造——"即使我同意那些政治和角度,我也不需要那么多"。他的比喻是巧克力草莓:"吃了两三颗我会说够了。不是我不喜欢,而是我不想吃 17 颗。而 X 和现代算法非常擅长喂你 17 颗裹巧克力的草莓。"[197:16] 关键洞察在下一句:算法找的是你有反应的东西,不是你声称喜欢的东西——全是显示性偏好,"而那些显示性偏好并不总是好看的。我们身上有荣格说的阴影,它体现在你在一条推文上停留多久、你点赞什么、不点赞什么,算法举起一面镜子,镜子里不总是好看"[198:02]。

他的应对是有意识地往反方向灌水:他说如果看五到十年前的推文,会明显更负面;现在他希望更正面、更多好氛围、更多"这是我发现的酷东西、我在造什么、给正在探索的人一点鼓励"。他也接受这不是人脑最容易被激发的方向——负面情绪大约多 50% 的传播牵引力,最终会挤掉别的 [201:10]。他把 TikTok 当成"棉花糖测试":一个视频滑下来,激活某种原始的怒或欲,如果你停留,你就吃不到科学、兴奋、艺术、音乐那颗棉花糖;你必须有纪律立刻滑走,别让算法采到你的显示性偏好 [201:56]。他还给出一个反常识的判断:Bluesky 和 Mastodon 的出现是 X 遇到过最好的事之一,它们像蜜罐一样把最恶毒的一群人吸走,在一个不断做纯洁性清洗、每次都缩小的回音室里聚集 [287:32];"我现在在 X 上 90% 的互动都是酷的 Linux 和技术,剩下 10% 是偶尔就有点争议的话题聊两句,然后我们回去继续对电脑感到兴奋"[288:19]。Lex 提出一个技术设想:如果有强大的 LLM 来做个性化 feed,效果会好得多,难点在规模化交付。DHH 直指根源:"问题在于奖励函数是 engagement,而只要奖励函数是 engagement,engagement 就会跟着基础本能走。"[289:05]

政治这段他态度明确且不回避代价。他为自己关于大规模移民的表态毫不后悔,理由是"Overton window 不会自己打开,它是被一个个人以一点点名誉、一点点反弹、一点点批评——有时是大量名誉、大量批评、大量反弹——一寸一寸推开的"[262:47]。他的论证路径是"允许注意到":他给的数据是自己 80 年代成长的哥本哈根社区曾是 99% 的丹麦裔(丹麦有世界上最古老的君主制之一,能追到给蓝牙起名的 Harald Bluetooth),90 年代初降到某个比例,现在大约 60% 到 70% [264:20];他一年半前写的一篇 essay 提到自己 90 年代末开始去伦敦,当时英国裔约 59% 到 60%,二十年后降到约 34% [265:52]。他反问:没人去告诉日本人"你们太日本了"、东京 98% 的日裔应该降到伦敦的水平;他还举了个自比的例子——如果 2019 年他在上海看到全是中国人,今年十月回去发现只剩 30% 是中国人,他会觉得奇怪,而如果中国人说"我们不喜欢这样",他不会觉得被冒犯 [266:39]。他强调自己是移民、是移民的大力支持者,但关键在于择优:"大部分欧洲其实几乎没有非法移民问题,南欧有一些,问题在于其他形式的大规模移民。"[268:11] 他引用丹麦的详细统计:来自英国、法国、美国的移民平均每年给丹麦国库净贡献约 25000 美元,而成本最高的一档(他点出索马里)平均每年让国库净支出约 28000 美元,"丹麦人说我们希望多来点法国人、英国人和美国人,少来一些索马里人,我觉得是公平的"[270:30]。他也主动做了 steelman:这种讨论确实可能变丑、可能滑向没有任何依据、只剩仇恨的公开种族主义;"但那个风险不会否消掉讨论你国家人口构成和移民政策的必要性"[271:18]。

他还讲了一个来自私人生活的观察:美国有一种"可选的同化文化",从丹麦或乌克兰来的人买入美国的价值观和规范,就能被其他美国人尊重为美国人 [275:09]。"说美国是最种族主义国家的人,你去过别的地方吗?"他以妻子为例——一位有斯堪的纳维亚血统但已在美国生活好几代的美国女性,金发蓝眼、努力学语言、做了各种努力,要同化进丹麦文化仍然非常非常难;反过来一个丹麦人搬到美国则完全不难 [275:54]。"如果你都已经 97% 接近了还这么难,来自完全陌生文化和规范的人几乎不可能,而这正是我引的那些统计所印证的:文化越不相似、距离越远,成功的可能性越低。"

这些立场让他失去了朋友和关系,但他把主因放在 2020 年前后那道大裂缝上——美国的简写是"你 woke 不 woke",一些他以为多年关系良好的人在断层线打开后显然不再是了 [276:41]。他的反思也很实在:他自己在多个话题上改过主意,"有时你就是过了一段时间改了主意,有时是有了新信息,而我们不会在同一个时间表上改主意,或者根本不改"[278:13]。所以他重新欣赏起那条老规范:不和陌生人、点头之交、尤其是同事谈政治、宗教和钱——你能维持良好工作关系的概率会高得多。"我真的认为自由派和保守派应该一起工作。如果部落之间完全隔离、没有交集,国家会糟糕得多。而这种交融,如果你不总是盯着差异,会容易得多。"[279:02]

他最怀念的样本是 William F. Buckley 的《Firing Line》:他看了大约 25 分钟一段 Buckley 和黑豹党成员的对谈,两人政治立场明显毫无交集,黑豹党成员的回答完全是 70 年代那种毫无和解意味的语气,但 Buckley 就是一直问"那你对这个怎么看?这个呢?"——"如果那个节目放在今天,会是一场对喊,会是相互指控。他能和自己强烈反对的人对话、还去探索他们立场的全部智性面向,说明一个我很想回去的失落年代"[280:35]。Lex 接过这条线,讲了自己的经历:如果他不看互联网,他能想出一堆无害的、分析世界局势的陈述;但这些陈述会让所有人说"这家伙是左派垃圾"或"右翼法西斯"。他为准备乌克兰战争的内容读了很多东西,仍然对某些表述被如何解读而震惊。"那种攻击在说的是:嘿,你以为自己可以自由走动、自由思考——挑一个箱子坐进去,穿上蓝衬衫或红衬衫。我意识到只要你说'我是蓝人'或'我是红人',一切就平静了,系统不再挑你;但如果你只是好奇地探索世界、对世界做推理,系统就惩罚你。"[283:42] DHH 承认自己也在这件事上前后矛盾:他自己关注某人的技术工作、后来知道了对方的政治立场,也常想"我真希望我不知道";所以对别人这么想是伪善的,而他偶尔还是会在争议话题上发言,"你得接受那有代价"[285:13]。但他给了一个乐观的观测:部落主义和部落对异端能施加的制裁,2020 年远大于 2025 年,至少在科技界如今持有不符合 2020 年共识的观点是可能的了(学术界另说)[286:45]。Rails 社区的 drama 也符合同一趋势:每一轮都在缩小 [286:45]。Lex 最后的补充是他这一期最恳切的话:希望人们对他人先假设"这是个好人"——"如果你带着找坏的眼光看人,你永远能在他们身上找到坏,你不会从中学到任何东西,只会把心里填满恨"[292:08]。

最后一段回到有限性。DHH 提过妻子 Jamie 的一个论断,那条推文传播很广:科技圈男性对极端长寿的执念,就像女性的厌食症,是焦虑和失控感的身体化表现 [293:39]。Brian Johnson 本人在那条串里回复了,DHH 觉得对方读作一记刺拳也说得通,而 Jamie 想的人里可能确实包括他。但他的表述很有分寸:"我并不认同 Brian 的使命,我想我记得口号是 don't die。我其实想死。我不想永远这样。人类大约 90 到 100 年的寿命听着差不多对,我拥抱生命的有限。"他甚至说正因为不同意,Brian 才是个远更有趣的人 [294:25]。Jamie 的进一步分析是关于"没活够"的:现代社会成了监控国家,不是被国家监控,而是被彼此——到处是手机摄像头,任何失态甚至任何一次玩闹或尴尬的爆发都极可能被录下来分享到被嘲笑的程度。人在这种条件下的理性反应就是往后收,确保自己不"像没人看着那样跳舞",因为他们很可能在录你。"所以也许你干脆别跳。而如果我们都退缩到几乎没在活,我们就会紧抓着让它永远持续。"[295:59]

由此他谈到"过度优化者"的反弹。触发点是他看到 Chris Williamson 在 Modern Wisdom 上说"好吧,也许我们确实有点过头了",而更早的触发是 The Diary of a CEO 的主持人说"我喝了一杯红酒,接下来三天全毁了"[297:33]。DHH 说在那人的具体情况下大概是真的,但那句话在很多人(包括他自己)身上引发了生理性的反抗:"我当时想,我现在就该喝一杯红酒,尽管我平常不怎么喝。"他把酒精当作一个很好的切片:大家似乎都不喝了,销量大降,尤其年轻人;从纯健康指标看这很棒,但他不确定——酒精提供的社交润滑可能真的被怀念了。"我们正处在一场孤独、痛苦和抑郁的彻底流行病里,其中相当一部分大概就是因为你和别人互动得不够。"他提到配对(coupling)数据大幅下滑、大量转移到有各种负面后果的 App 上,并说"人类喝酒喝了大约一万三千年,它有社会功能,我们拆掉切斯特顿的篱笆是要自食其果的"[299:53]。Lex 呼应了自己在中国乡村的经历:他为那趟旅行专门抽了点烟、喝了大量的酒(平时基本不喝)、吃了一堆碳水(平时低碳),因为那是当地表达爱的方式。DHH 补上他反对的是现代性的近视:"我们把事情简化成'某项长期研究里的一杯酒让你多了 0.1% 的某种心脏缺陷风险'。是的,但如果你根本没活过,意义在哪?"他也说不必翻到另一极端——不是只有每周末喝到烂醉、吃一堆垃圾、一天四十根烟才叫活着 [301:24]。他戴了四年的 Oura 睡眠环最终被摘掉,理由很朴素:"我不需要知道我昨晚睡得不好。这只是多了一个提醒,它到底起了什么作用?我为什么要有这些统计?"

而这一切被他做成了一个功能。Omarchy 的日历里有个彩蛋:点时钟打开日历,最上面一行来自他从网上拿的 Years Progress 概念,显示"2026 年已完成 63%";双击它会问你出生年份和预期寿命(默认 90),他填 1979,于是下面多出一行——你的人生已完成多少。"我现在大概 62%。鼠标悬上去会显示 memento。"[303:44] 不少人觉得这很病态,所以它是彩蛋、不外露。"我喜欢这个提醒,提醒我时间是有限的,我该把它用到极致。而这也是有孩子的特权之一:你真的会发现所有的老话都是真的——天哪,过得真快。我记得我现在 13 岁的孩子一岁、两岁的样子,那就像昨天。而它之所以是老话,是因为它是共享的经验。老话是好东西,它们提醒你,你是人类经验的一部分,在你之前有别人来过这里。"[305:15]

节目的最后是几段轻松的:他悬赏未解的谜——为什么美国做不出一个像哥本哈根 7-Eleven 那种水准的可颂(他真的考虑过雇调查记者,因为"是水?是黄油?是手艺?"的理论都说不通,黄油可以进口,美国也有法国和比利时师傅,而他去过十五家所谓"对的地方")[306:02];他的"最后一餐"如果是午餐,会在哥本哈根北边的 Louisiana 美术馆的自助餐厅——不为艺术,为食堂,200 人排队但五分钟出餐,菜单看着全是健康的东西,吃下去"天使在唱歌",尤其是那里的打发黄油,"连巴黎我都没吃到过这么好吃的"[308:23];晚餐他挑西班牙 Marbella 的 Puente Romano 海滩边的海鲜馆 [310:44]。至于一千年后人类还在不在,他说自己连预测 12 个月都做不到,但"我押乐观,押多行星物种,押 Elon 把火箭送上火星,押我们搞清楚怎么弯曲时空、找到虫洞"[312:15]。如果人类被上传,他要回 80 年代——不是 70 也不是 90。他对 90 年代的判断相当锋利:"那是虚无主义的大转折点,音乐、类型、时尚,一切从那种魅力、流行、乐观,甚至雅皮士,全变成了 grunge 和 Nirvana。我喜欢那些音乐,但我不喜欢它的伦理、道德和一切底层的东西,那种失败主义。"[313:47] 而 80 年代有乐观、有乐趣、有颜色——他记得自己有条橙色底带白点的裤子,"那在 80 年代是小孩能穿的正常东西,今天我再没见过"。Lex 用尼采的永恒轮回收尾:如果你要永远重活同一天,你会想穿那条带白点的橙裤子。DHH 的回答是:"橙裤子也许可以跳过,但 80 年代我肯定选。"[314:34]

金句

有些十年什么都不发生,有些星期里发生了几十年。而我们在过去九个月里看到了几十年的进步。 —— DHH 3:53
如果你没有认识到这一刻的重量,那才是妄想,那才是精神错乱。真正的精神错乱是相信这个世界几乎没什么不同、我们只是有了几只念台词的电子鹦鹉。 —— DHH 37:53
谁不会有点神志不清?如果一个精灵突然从瓶子里冒出来说:"你想要什么都可以。你梦想过的每一个操作系统功能,我都能给你——大多数五分钟,少数二十分钟,如果真的放开了搞,两小时。" —— DHH 41:02
它不仅需要远少得多的人类指令,它实际上正在被过度规定的人类伤害。任何有过尖头老板的程序员都懂那是什么感觉。 —— DHH 谈 Opus 5 出厂 system prompt 缩短 80% 56:27
如果有一种编程语言比 Ruby 更美,那就是英语。 —— DHH [242:02]
温度是整套 AI 设定里最美的部分——正是它的非确定性。创造力需要路上那些微小的偏移。 —— DHH [245:07]
Overton window 不会自己打开。它是被一个个人以一点点名誉、一点点反弹、一点点批评一寸一寸推开的。 —— DHH [262:47]

提到的书·产品·人物

适合谁听

想知道"AI 全面接手写代码之后,一个顶级程序员的一天到底长什么样"的开发者、技术管理者和产品人——尤其是还在观望的那批。

← 返回全部观看原片 ↗