Linux终将统治桌面端、手写代码时代正在终结,Ruby on Rails之父DHH:“我已经变得可有可无”,AI正在接管编程
继 Claude Code 负责人 Boris Cherny、Redis 创造者 Salvatore Sanfilippo(网名 antirez)之后,又一位程序员圈的重量级人物,开始公开谈论“手写代码的终结”。
这一次是 Ruby on Rails 之父、Omarchy 创造者、37signals 联合创始人 David Heinemeier Hansson(DHH)。
在接受 Lex Fridman 的最新采访时,DHH 透露,自己开发 Omarchy Linux 最新版本 Quattro 时,过去两个月里已经没有亲手写过任何最终上线发布的代码。代码主要交给 AI Agent 完成,而他负责审查架构、检查关键代码,以及告诉 AI 自己想解决什么问题。
对于一个过去 20 多年深刻影响 Web 开发、并以亲手写出优雅代码而闻名的程序员来说,这种转变意味深长。
DHH 认为,AI Agent 已经不只是“帮程序员写代码”,而是开始自己理解问题、制定方案并完成整个开发任务。现在,他甚至不需要告诉 AI“怎么做”,只需要告诉它“想解决什么”。
更直接的是,他形容自己如今已经“变得可有可无”。
而在这场超过 5 个小时的对话中,DHH 不仅谈到了 AI Agent、Vibe Coding 和“手写代码的终结”,还谈到了他为什么认为 Linux 会战胜 Windows、macOS 终将赢得桌面市场,为什么 AI 可能让一个人重新拥有过去只有大公司才具备的软件生产力,以及他自己正在如何用 AI 重新打造一个属于自己的操作系统。
从“不手写代码”,到追问“程序员还剩下什么”,DHH 正在重新审视自己从事了 20 多年的软件开发。
这一次,他的答案可能比 AI 写代码本身更加激进。
完整采访详见:https://lexfridman.com/dhh-2-transcript
以下为采访精选内容:
从抗拒 AI 到拥抱:“新项目上线的代码,没有一行是手写的”
Lex Fridman:13 个月前,我们曾一起聊过编程问题。没想到,从那以后,一切都变了。当时的你对 AI 在编程中的作用还有些怀疑。可接下来,我们亲眼见证了 Agentic Engineering(智能体工程)的快速发展。
首先,先从一个简单的问题开始:现在,你怎么看 AI 在编程中的作用?是感到兴奋,还是感到恐惧?又或者,你现在也正经历着一场情绪过山车?
DHH:我无比兴奋。对我来说,完全没有什么所谓的“生存危机感”。至少在情感层面,这种感觉根本不存在。
这种威胁感或许只存在于理性思考中,但我的情绪完全是另一回事——100%纯粹、毫无杂质的快乐、乐观,还有震撼。我们居然真的让计算机做到了这些事情。而且我觉得特别有意思的是,我们明明才在 13 个月前聊过一次,可现在回头看,却感觉那已经是两个完全不同的宇宙、两个完全不同的时代了。
我很喜欢一句话,我觉得是列宁说的:“有些年代的几十年里,什么都没有发生;而有些短短几周,却发生了足以改变几十年的事情。”过去 9 个月,我们就亲眼见证了原本可能需要几十年才能完成的进步。
想象一下,如果你恰好生活在莱特兄弟第一次成功飞行的那个时代。就在前一天,《纽约时报》可能还会写:“人类想要飞上天空,还得再等 1 万年。”结果到了第二天,人类真的就飞上了天。再过几年,飞机甚至已经可以跨越大西洋。整个世界就这样彻底改变了。能够亲历这样的时代,是一种多么巨大的幸运。
如果把视角拉得更远一些,回顾整个人类历史,你会发现,有多少人真正生活在一个与自己出生时完全不同的时代?
绝大多数人从出生到离世,世界其实都没有发生过彻底的改变。他们从未亲眼见证过整个世界、整个社会发生如此剧烈的转变。
而我居然有幸经历了两次。这真的让我觉得无比幸运。
我经历了从互联网出现之前,到互联网时代之后;而现在,我又正在经历从 AI 时代到来之前,到 AI 时代之后的转变。这真是一段不可思议的人生旅程。我们实在太幸运了。
Lex Fridman:是啊。但问题在于,这一次的变化速度,感觉比人类历史上的任何一次变化都要快。
DHH:没错。
Lex Fridman:大概是去年 11 月底、12 月左右。
DHH:准确来说是 11 月 24 日。
Lex Fridman:对于很多优秀的开发者来说,变化真的非常明显。他们的工作方式发生了转变:AI 原本只是做一些基础的代码自动补全,可能帮忙写 5%、10%、15% 或 20% 的代码;后来,它开始写 80% 的代码。
DHH:甚至是 100%。
Lex Fridman:对,甚至 100%。尤其是对于那些不直接面向公众的产品。
DHH:回看我们一年前的对话,我的观点其实并没有发生本质变化。
一年前,我并不认可当时市面上的 AI 形态:要么只是代码自动补全工具,要么就是聊天机器人。当然,聊天机器人本身我一直是认可的,它可以充当很好的导师,也适合用来检索网络信息,但它并不能取代我亲手雕琢代码的工作。直到 Agent 登场。
最开始,Agent 还只是新奇的玩具,没过多久它就展现出惊人能力,甚至会让人惊呼:“这难道就是通用人工智能(AGI)吗?”所有这些变化,都发生在过去一年,集中在这短短九个月之内。
我们可以把过去这段经历划分为几个阶段:
- 一是前智能体时代。那时我对 AI 抱有兴趣,但它并没有从根本上改写我的工作规则以及模式。我依旧在亲手写代码,AI 只是我的得力助手、搭档,我可以和它碰撞想法,借助它更高效地查阅资料。它只是把我原本就在做的事做得更快,并没有改变我和计算机之间的情感联结。
- 转折点落在 2025 年 11 月 24 日。对我而言,Opus 4.5 模型就是分界线。我 24 号当天没有试用,大概 26 号才上手。我给它布置了几项任务,然后发现,它输出代码的质量,和我亲手写出来的几乎别无二致。我靠在椅背上,不禁发问:刚刚到底发生了什么?
短短几个月,就从当初那个我和你吐槽的、只会做补全的工具,进化到如今这般模样。不仅模型的智力大幅提升,工具链的可用性也迎来质变。Opus 4.5 本身,未必比夏天的 Opus 4 强多少,但它调用计算机工具、自检输出成果、把自身能力落地产出真正可用成果的能力,完全不可同日而语。
很多在 Shopify 以及其他企业工作的开发者,圣诞假期有了喘息的空档,上手体验之后,都和我一样,被 Agent 带来的体验深深震撼。
- 到 12 月,我已经开始推翻自己过去固有的认知,不断试探:既然它能做到这件事,那它能不能做到那件事?答案往往是可以。
而现在回头看,Opus 4.5 放到今天来看,都显得有些落后。这就是技术进步的魔力:你以为已经抵达某个高峰,就像我当时想:就算之后再也没有新模型,Opus 4.5 就足够我用二十年,我也心满意足。它驱动 Agent 完成大量工作,输出的代码风格贴合我的预期,我可以审阅它实现的思路,只需要做少量修正,最终产出的 Ruby 代码可以直接合并投入使用。
- 等到今年初春,子智能体(Sub‑Agents)出现了。工具链可以把大型任务拆解,原本 Opus 要耗费很久的工作,现在效率提升 5 倍、10 倍,同时有 8 个子智能体并行干活。
对我而言,前两个智能体发展阶段,我依旧必须手握方向盘。我告诉它目标,它跑偏的时候我进行引导,效率大幅提升,但人必须在场:我要明确需求,还要充当成果的审核者、校验者。
而到了今年夏天,随着 Opus 5、Fable、Sol(GPT‑Sol)问世,还有部分开源权重模型跟上步伐,新时代来临:我不再需要告诉它具体去往何方,我只需要抛出我遇到的问题,抛出我脑海中模糊、笼统的想法,由它来规划路线、给出方案。我还是会去看,因为我是个好奇心很强的人,我喜欢计算机,也喜欢看到最终的结果。但说实话,我其实已经没那么有必要参与了。在决定代码怎么写、选择实现路径这件事上,我已经变得可有可无。
这就像早期 GPS 导航。对比纸质地图,GPS 已经足够惊艳,但那时候你开车还是要时刻留意,生怕导航把你导进港口。新闻里也不乏这类吐槽。而如今,GPS 把人导进港口的新闻几乎销声匿迹,甚至汽车都可以自动驾驶。对我当下深耕的领域来说,我可以信任这套体系:它不会做出愚蠢的操作,就算出错,也拥有自我修复的能力。
Lex Fridman:当然,不同开发领域情况各不相同。最普遍的开发场景,就是Web CRUD 增删改查开发:搭建数据库,面向用户做交互界面,业务可以面向单人、小群体,或是全网用户。这类场景下,AI 几乎可以写完 100% 的代码。如果你是一名优秀的程序员,对底层运作有直觉,你甚至可以不用逐行审阅代码,至少我的体验是如此。
当然,你还是要有一定编程经验,通过观察系统表现、各类现象,就能感知底层是否运转正常。但还有其他场景,比如你正在做的 Linux 发行版开发,你会追求极致性能,这种场景就需要更多人工审阅。而安全关键系统,比如核电站、自动驾驶汽车,那代码就必须逐行仔细检查。
DHH:是的。不过话说回来,AI 在发现和修复安全漏洞这两件事上,都已经强得离谱了。
这也是当初 Fable 引发巨大争议的原因。这个模型发现安全漏洞的能力实在太强了,甚至能够找到攻击者可以利用的漏洞,以至于我们根本没办法放心地把它直接发布出来。讽刺的是,如果你看看这个领域,就会发现,我们似乎已经达到了一个几乎没有人类能够匹敌的智能水平。
因为很多安全漏洞,其实并不是单独存在的,而是要把好几个“招式”串起来。你可能先在这里找到一个小漏洞,单独看,它可能并不是什么特别严重的问题;但如果再把它和另外四个漏洞结合起来,突然之间,你就能实现 RCE,也就是远程命令执行。人类中真正有能力做到这一点的人非常少。他们通常都在国家支持的组织,或者其他秘密行动机构中工作,不会只是随随便便地在外面寻找漏洞。所以,AI 在这方面已经强到这种程度了。
而真正让我彻底被 AI 说服的,是 Linux 发行版。过去三个月,我一直在开发 Omarchy 系统,几天前刚刚发布了一个叫 Quattro 的新版本。从我开始开发这个版本没多久,Agent 加速的比例就已经接近 100% 了,而过去两个月基本上一直保持在 100%。Quattro 里最终发布的代码,没有一行是我亲手写出来的。
当然,我审查过整个系统的代码结构,也检查过模型层里所有关键部分的具体代码行。但有相当一部分 UI 代码我没有看过,还有不少辅助代码我也没有看。而且,所有新功能,也没有一个是我完全亲手写出来的。
但到了 Web 这边,情况就不太一样了。实际上,无论是不断迭代 Basecamp 和 Hey——也就是我们的专业产品,它们拥有大量用户,代码规模也相当大——还是其他类似的工作,我们发现,想要完全依靠 Agent 来加速开发,意外地困难。
我们前不久刚发布了 Basecamp 5。这是 37signals 第一个真正实现 Agent 加速开发的产品。因为从大约 2 月开始,我们进入了最后的冲刺阶段。那时候,Agent 已经相当不错了。
于是,我们很早就经历了一波这样的兴奋期:“问题解决了!我们完全可以让设计师来写程序。他们知道自己想要什么功能,也知道最终应该是什么样子。让他们直接 vibe coding 就好了。”
于是,我们真的就让他们放手去做了。结果,我们积累了大量 PR。单独来看,其中很多 PR 在当时那个阶段可能都说得过去,甚至看起来挺合理。但把它们放在一起之后,却把整个系统的架构彻底搞乱了。
最后,我们不得不人工收拾残局,靠人手一
所以,我们现在多少还留有一些这样的痕迹——顺便说一句,那已经是今年 2 月的事情了。而现在,情况已经完全不同了。
Lex Fridman:这带给我们什么启示?是不是意味着,想要做氛围式编程,你本身就必须是程序员?
DHH:如果要在已经存在的大型代码库上做氛围式编程,哪怕只是 CRUD 业务,如果你希望维持原有架构,那么是的,你需要程序员的功底。
说到这里,很多人会吐槽氛围式编程的产出全是烂代码。但我想说:不妨看看普通程序员产出的代码又是什么样子?看过无数大公司内部经过数千位开发者迭代后的代码库,你会发现,里面的代码同样一团糟。
计算平台将重新进入竞争状态
Lex Fridman:说到这里,我有个疑问。看看我们日常使用的软件,比如Adobe Photoshop,新版本迭代速度并没有迎来爆发。从 Basecamp 的经历来看,为什么成熟、拥有海量用户的大型软件,没有迎来功能疯狂迭代、版本飞速更新?
DHH:背后有多方面原因,最核心的一点:只要人类团队协同开发,瓶颈往往不在于编码实现,而在于人力与沟通成本。产品经理、多位设计师、部门 VP、CTO 层层参与,每个人都要参与方案设计,证明自己岗位的价值,生产力就在这层层流程中消耗殆尽。
我开发 Omarchy 这三个月最大的领悟:想要拿到 10 倍、100 倍,极少数情况下甚至 1000 倍的生产力提升,你必须直接和 Agent 交互,不能再经过另一层人类中转,否则速度会慢到无法接受。
一方面,这确实让人有点失望。我的意思是,我喜欢和人一起工作,人与人合作本身就是一件很棒的事情。但这也意味着,如果整个过程还是由人来驱动,而且还要经过三层审批,以及大公司的各种流程和机制,那么我们就得适当降低对 Agent 能力的预期。因为在这种情况下,真正负责“实现”的部分,其实只占整个流程很小的一部分。
还有一点我想说的是,大多数组织其实根本不知道自己想要什么,也不知道怎样才能把事情做得更好。他们的瓶颈并不在于“怎么实现”,而在于想法,在于愿景,在于品味。
如果你没有足够多的好想法、足够清晰的愿景和足够好的品位,远远超过你的实际实现能力,那么拥有更强的实现能力也没什么意义。你可以让一大堆糟糕的想法变成现实,然后呢?你真的要把这些东西发布出去吗?那听起来,我不知道,倒有点像微软会做出来的东西。而我们可不是想复制这种模式。
实际上,这种模式本身并不是什么新鲜事。因为我们早就拥有这种能力了。如果你退一步,从更宏观的角度看看那些庞大的科技公司——它们手下有成千上万名程序员。就拿微软来说,几十年来,他们一直拥有源源不断的资源,也拥有几乎无限的编程能力。
但这恰恰说明了一件事:能够写出大量代码,并不意味着就能做出真正优秀、真正有吸引力的软件。当然,还有一点需要考虑:我们真正拥有这种能力,也不过才大约 6 个月。对于人类来说,6 个月实在太短了。我们还需要时间去消化和理解这一切究竟意味着什么。
所以我觉得很有意思的一点是,现在有些人对 AI 的批评居然变成了:“为什么它还不够快?”
其实人类历史上从来没有出现过任何一种进步,速度能比 AI 更快。可你们却因为过去三个月里,我们还没有把整个世界重新写一遍,还没有把它变成一个软件无所不能的乌托邦,就开始不耐烦了?
Lex Fridman:听你的意思是,现在每个人都应该转向 Linux 了。有人提出的一个观点是:那些 Linux 上还没有的软件,我们完全可以自己在 Linux 上重新做出来。
Linux 这么多年来一直是我的“真爱”,但我之所以到现在还离不开 Windows,以及现在的 Mac,其中一个原因就是视频剪辑,比如 Premiere。所以问题来了:谁来给 Linux 做一个 Premiere 和 Photoshop?现在的感觉是,一个人就可以做到。
DHH:100%,一个人就可以。
Lex Fridman:在大公司内部,如果只是让开发者放手去做,现在似乎已经很难真正把整个开发过程加速到 Agentic 时代。
DHH:这就是典型的创新者窘境。这些公司在过去那套方式上已经做得太好了,也已经发展得太成熟了。所以,它们整个组织架构、管理层级和工作流程,全都是围绕一个已经不存在的时代建立起来的。
但你没办法轻易让这样的公司转向。它们就像超级油轮一样,体量太大,不可能说转弯就转弯。这种事情就是不会发生。这也是为什么我们现在终于看到科技行业出现这么大的动荡。
有一段时间,我其实对移动领域被苹果和谷歌两家公司双头垄断这件事非常不满。因为那时候感觉,移动设备是我们拥有的最重要的计算平台,而我完全看不到有什么办法能够撼动 Google 或 Apple。它们高高在上,控制着整个生态,同时还可以不断从中收取“过路费”。
但现在,游戏规则变了。移动设备已经不再是唯一、也不再是最重要的计算平台了。
手机当然依然很重要,但接下来还会出现很多其他形态的设备,比如智能眼镜、耳机,或者其他各种设备。现在,一切都还没有定局。但如果从桌面计算这个角度来看,计算平台本身可能是大约 40 年来第一次真正重新进入竞争状态。
Linux 从 1991 年就已经存在了。它一直没有真正攻占桌面,也没有取代 Windows 和 macOS。但它实际上已经占领了其他所有地方。你桌面上的设备、冰箱、烤面包机,几乎所有东西都在运行 Linux,唯独你的电脑不是。当然,有意思的是,你的 Android 实际上也是 Linux,只不过它在 Linux 外面包了足够多的东西,以至于你已经很难认出它了。
但现在,一个突破口出现了。而这个突破口,恰恰就是你刚才说的那一点。
如果有一款软件是你离不开的,因为它把你牢牢绑定在 Windows 上,那么现在,你完全有能力亲自把它重新写出来。当然,你可能做不到 100% 的功能覆盖。但这就像那个关于 Microsoft Office 的老笑话:“我只用 Office 5% 的功能。”
没错,但我们每个人使用的恰恰又是不同的那 5%。那么,如果我们干脆把自己需要的那 5% 做出来呢?如果我只把自己真正需要的功能拿出来,然后自己把它做出来呢?这完全是另一种挑战,而 Agent 今天就已经非常擅长做这种事情了。而且,我已经做过很多次了。
最近让我觉得特别惊奇的一件事就是,随着 Agent 能力不断增强,我居然变成了一个“多语言程序员”。以前的我完全不是这样。
我以前是一名 Ruby 程序员,然后只有在确实需要的时候,才会稍微写一点 Bash。但过去两个月里,我开始写 C++ 了,还交付了三款在 Omarchy Quattro 里正式发布的应用。
其中一个是写作应用。我记得大概只用了 20 分钟,Agent 就帮我做出了第一个版本。上手试用,还有些许瑕疵。不过两天之后,我彻底抛弃原来使用的 Typora 软件,我所有的随笔文章,全部用我自己这款 Omawrite 完成。
“大多数程序员,水平其实挺差的”
Lex Fridman:实际上,我已经为自己写了很多软件。我发现,如果只是做给自己用,其实非常容易,但我从来没有真正做过一款被大量用户使用的软件。这件事让我觉得有些害怕,也让我有点望而生畏。
因此,在这个 Agentic 时代,你会怎么迈出这一步:先做一个真正解决自己问题的工具,然后再把它扩展成对其他人也真正有用的产品?你有什么建议吗?
DHH:这件事比想象中简单。当你写完自用工具,直接让 Agent 把它上传到 GitHub 即可。你什么额外工作都不用做。智能体会生成高质量 README 文档,配置 GitHub Release 版本管理,它做开源维护杂活的能力远超人类。你只需要安心使用、迭代你的软件。
这就引出开源社区当下巨大的争论:AI 生成的代码提交,对维护者来说究竟是好事还是坏事?
现在大量开源维护者怨声载道,源源不断的 PR 来自未必精通编程、甚至完全不会写代码的人。但我的想法是:这难道不是我们长久以来期盼开源实现的愿景吗?人人都可以参与贡献。可长久以来,参与开源贡献的,只有一小撮技术高手。
Lex Fridman:但是,想要维护高质量代码库,不还是需要这些高手把关吗?
DHH:确实,永远需要高手把控质量。这也是开源一直以来的现实。我做开源项目已经 25 年了。说真的,我亲眼看过成千上万,甚至可能是数万名程序员写出来的东西。我觉得,凭借这么多年的经验和样本,我完全有足够的统计依据说一句:大多数程序员,水平其实挺差的。
我的意思是,他们所谓的“差”,是指他们写不出我希望看到的代码。
他们提交 Bug 报告时,不会把所有相关信息都交代清楚;提交 Pull Request 时,也不会说明为什么要这么改;该写代码注释的时候,他们懒得写;写完代码也不会再检查一遍自己的工作;不写单元测试。所有这些事情,都是做好软件所需要的,但他们往往都不会去做。
但你知道谁会把这些事情全都做了吗?Agent,只要你告诉它怎么做。它们非常认真地执行你的指令。大多数时候,它们甚至认真过头了,有时候反而会因此出问题。
但这实际上意味着,如果把一个普通程序员和他的 Pull Request,放到一个普通的开源项目里进行比较,那么他们现在已经开始被 Agent 全面超越了。
如果让我选择,我宁愿收到一个 Agent 写出来的 Pull Request,也不愿意收到一个人类写的。而且,这还不只是因为 Agent 写出来的质量更高。
另一个原因是,如果我要拒绝它,我的心理负担会小很多。毕竟代码又不是你亲手写的。所以,我完全可以直接看看你的 Agent 替你写了什么,然后说:“嗯,不要。”这其实一直都是开源世界的现实。
事实上,我认为这恰恰是开源项目维护者面临的问题之一:他们背负了太多不必要的神经质和焦虑,以至于觉得只要有人贡献代码,自己就有义务想尽办法把这份贡献合并进代码库。
其实根本不是这样。你完全可以直接说:“不。”或者更好一点,你可以说:“不用了,谢谢。”
如果你真正意识到,一个项目本来就应该按照你自己的愿景、按照你自己的路线图去存在和发展,那么到了 Agent 时代,拒绝那些你不想要的贡献就会容易得多。因为你甚至都不会因此给某个人带来不便,也不用担心伤害一个人的感情。
事实上,生产这些无用之物的那些实验室,反而巴不得你白白花掉 Token。反正你用了多少 Token,它们照样能收到钱。所以在我看来,现在绝对是有史以来最适合做开源项目维护者的时代。
我们不仅能够获得大量由 Agent 创建的、各种要求都填写完整的优秀 Pull Request,还可以接触到过去那些根本没有机会参与项目的人所带来的创造力。
我做 Omarchy 这个项目已经一年多了。在过去三个月开发 Quattro 的过程中,我已经合并了超过 1000 个 Pull Request。其中相当一部分 Pull Request,是那些传统意义上并不是程序员的人提交的,或者他们虽然是程序员,但过去从事的是其他领域,并不是 Linux 操作系统或 Linux 发行版开发。正是因为有了 Agent,他们才能把自己的好想法真正变成代码,贡献给项目。
而我所需要做的,就是从中挑选出最好的那些——因为这些想法已经摆在我面前了。如果没有 Agent,这些想法可能就只能一直存在于他们自己的脑子里。再说一次,难道这不正是开源的意义吗?
我们不就是希望调动整个世界的集体智慧和创造力,然后把这些力量汇聚到一个所有人都能受益的公共项目中,让每个人都能从彼此共同的努力中获益吗?现在,Omarchy 大概还有 400 个尚未合并的 PR,数量大约是一个星期前的两倍。所以,开发效率的提升是真实存在的,但与此同时,我们拥有的工具也在不断变强。我现在已经不再审查每一个 Pull Request 了。其实,我已经有相当一段时间没有这么做了。我会让 Agent 替我审查这些 Pull Request。然后,它们会给我一份总结,告诉我某个 Pull Request 是否已经准备好交给人来做最终决定。
也就是说,我只需要决定:合并,还是不合并?
那些明显错误的、重复的、不好的 Pull Request,我根本不需要一个个去看。Agent 可以先帮我把这些“杂质”筛掉。最后留给我的,只是那些真正有价值的“珍珠”——那些已经准备好合并的好想法,以及 Agent 已经替我在虚拟机里验证过、确认确实有效的 Bug 修复。
复制、维护和管理开源项目过程中那些繁琐、重复的工作,正在以惊人的速度消失。最后真正留给我们的,是软件开发中最有价值、最核心的部分——决定这个东西到底应该做什么,以及它接下来应该走向哪里。
Lex Fridman:你觉得,那些真正的好想法,它们的核心还是来自人类的大脑吗?比如说怎样改进 Omarchy,这些事情能够完全由 Agent 来完成吗?还是说,一个 PR 归根结底还是需要一个人类提出想法?又或者,最终我们真的可以只拥有一个由 Agent 组成的池子?
DHH:从去年 11 月 24 日到今年 2 月 28 日的第一阶段 Agentic 时代里,我当时确实就是这么想的。我认为,所有想法最终都应该来自人类。人类告诉 Agent 要做什么,然后 Agent 就去执行。但现在,我完全不这么认为了。我已经亲眼见过一些你们可能根本无法相信的事情。
有些想法就是从模型里直接产生出来的,而且好到让我这个一向以自己有好想法而自豪的人,都不得不感到谦逊。Agent 的创造性思考能力真的非常强。
如果到了现在,还有人停留在“Agent 只不过是鹦鹉”的这种分析上——认为它们只是在重复、重新组合那些原本就已经存在的想法——那么我只能说,他们根本没有真正意识到过去 6 到 9 个月里,AI 到底取得了多大的进步。
造一款拥有智能体的 Linux 发行版——Omarchy
Lex Fridman:也许有网友会说:DHH 这是陷入“AI 妄想症”了。我来帮对手把论点理清楚:你现在看到的一切,会不会只是你的主观幻觉,就像《飞越疯人院》里的状态?反驳这个说法。
DHH:我写计算机相关的东西四十年,过去两个月见识到的一切,是我此生从未见过的。
我投入毕生心血深耕计算机领域,一切认知被彻底颠覆,世界观被改写。换作任何人,都会狂喜。如果你对此毫无波澜,那才是真正的妄想、精神错乱。真正的问题在于,有人拒绝认清当下这场变革的重量,固执认为世界没有发生实质改变,AI 不过是电子鹦鹉。
很多人会质疑:既然 AI 这么厉害,那惊艳的软件产品在哪?为什么 GDP 没有迎来 12% 的年增长?请给它一点时间,它甚至还未满一岁。而我已经拿出了实实在在的成果:Omarchy Quattro 正式发布了,已经有数万人下载,用户反馈非常好。
简单说一下,Omarchy 是一套现代、理念鲜明的 Linux 系统,是 macOS、Windows 之外的全新选择,体验相当出色。Quattro 这个版本,就是面向 Agent 时代打造。
Omarchy 这个项目诞生才一年出头。去年夏天,我参加勒芒 24 小时耐力赛的间隙,刷了一堆 Linux 美化视频,被深深吸引,于是开启这个项目。最早的版本叫 Omakub,基于 Ubuntu 构建。但当我决定向下深挖多层技术栈,从零搭建 Omarchy,我的野心被彻底释放。最早版本还是前智能体时代,所有 Bash 脚本全部手写。而后逐步过渡到智能体半加速,三个月前,彻底全面交由智能体驱动,由我把握方向。
我的野心不再受任何上限束缚。Windows、macOS、其他 Linux 发行版上的任意功能,只要我想要,我就可以让智能体交付。就好像精灵从神灯里跳出来,对我说:“说出你的愿望,操作系统里你梦寐以求的所有特性,大多数五分钟就能搞定,少数二十分钟,如果放手大干一场,最多两小时。”谁遇到这种事不会狂喜?
Lex Fridman:这有点像电影《梦之安魂曲》,会产生类似药物一样的效应。力量骤然交到手上,会让人不知所措。我有时候会被海量可能性压得喘不过气,精疲力竭,哪怕满腔热情,最后还是需要收敛,聚焦,真正完成交付。
DHH:我没有那种感觉。我不会觉得不知所措,也不会感到恐惧,更不会觉得一切都变得失真。因为我有自己的使命。我知道自己要去哪里,所以我可以把这些新获得的力量,全部集中到一个明确的目标和结果上:创造一台完美的计算机。所以,我对 AI 的所有探索,最终都是为了这个目标。
当然,我也有自己的本职工作。在那里我们同样会使用 Agent,而且也是围绕一些明确的目标展开。但在 Omarchy 的经历中,我真正感受到的是,我可以直接连接到大脑深处,让“想法出现在脑海里”和“软件出现在屏幕上”之间的带宽大幅提升。
这就像从拨号上网一下子升级到了光纤。我记得你在播客里,Elon 也谈到过人类真正拥有的“带宽”、Neuralink 以及其他一些项目。我们现在彼此交流所使用的带宽其实非常低,因为我们受到自身认知能力的限制,也受到说话速度的限制。
但当你和一群 Agent 一起工作时,就不再受这些因素的限制了。当然,我得先说明一点:如果 9 个月前,我听到自己说出现在这些话——我可能会给自己贴上“AI 精神病”的标签。我觉得那时候这个标签甚至是合适的。因为 9 个月前,那些说出类似话的人,其实还没有真正把东西做出来、发布出来。我认为,这就是最大的区别。
确实有人很早就看到了这一切。但我并不是其中之一。正如我们之前聊过的,我当时其实相当怀疑 AI。我确实在以某些方式使用 AI,但我并不是最早下载 Claude Code 的那批人。我记得 Boris 是在 2 月底发布 Claude Code 的。而我应该直到 9 月才真正安装 Claude Code。
所以,中间大概有 6 个月的时间,那些先行者已经开始看到未来会是什么样子的一些苗头。但那时候,一切还没有真正到位。因为智能还没有达到那个水平,Agent 所需要的工具和框架也还没有成熟。但他们已经能够看到那些曙光了。而我当时没有看到。
Shopify 的 CEO Tobi Lutke,现在某种程度上也是我在 Omarchy 项目上的“共犯”。他也因为 Omarchy 彻底被 AI 说服了。他其实很早就看到了这些变化,也试图告诉我。但我当时就是看不到。我完全没有看到他所看到的东西。
Lex Fridman:你当时就是个 AI 黑粉。
DHH:对。我当时还待在地球上,而他已经登上火箭,朝着太空飞去了。我记得自己当时读过他给公司发的那份关于 AI 的内部备忘录,心里想的是:“嗯……是不是有点太夸张了?”就感觉你把一件我当时还完全感受不到、还无法真正触摸到的东西,搞得太重要了。
因为我当时想:那成果到底在哪里?我自己试过啊。它写出来的代码我不喜欢。它还总是想打断我的工作。所以,你到底是从哪里得出这些结论的?如果你从来没有亲眼见过今天这种水平的智能到底能产生什么样的结果,那么你当然会看着这样的人,心想:“这个人听起来是不是有点疯?”因为直到那一刻为止,你过去所有的经验都会告诉你:这个人确实有点疯。
毕竟,如果你回顾计算机编程的历史,在过去 40 年、50 年里,人们一直在承诺一件事:普通人只要通过说话,就能够编写程序。我们会有第四代编程语言。
Lisp 和 Smalltalk 曾都被寄予厚望,希望能够让普通人自己编写应用程序。但最终,这些事情都没有真正实现。至少没有达到今天这种意义上的实现。顶多也就是 Microsoft Access 数据库或者 Excel 电子表格。它们确实属于面向最终用户的编程环境,但和我们今天能够做到的事情完全不是一个量级。
而且,我甚至都还不是在说普通用户。我说的是我自己。我是一个已经写了 25 年程序的人。我亲眼看到了它生成的结果,看到了效率的提升,也看到了代码质量,然后真正把这些东西发布出去、投入实际使用。我认为,这才是会让整个讨论在很短时间内发生彻底改变的东西。
那些还在犹豫、还在观望,不确定 AI 到底有没有真正用处的人,以及那些还困在 2025 年初“机械鹦鹉”这个梗里的人,很快就会被即将涌向他们的大量证据彻底淹没。届时,他们再想坚持原来的看法,也会越来越难。
Lex Fridman:期待看到 Omarchy 这类面向智能体优先的项目遍地开花,视频剪辑工具、类似 Typora 这类工具,都可以被重新实现。
DHH:这一天很快就会到来,已经能看到苗头。Omarchy 有一套强大插件系统,你可以基于内置插件,改写操作系统 UI、面板、功能,打造自己的扩展。比如日历组件,系统自带日历点击时钟弹出,但它不支持 iCal 日程同步。
短短三天,插件市场就涌入 330 款插件。我参与过这么多项目,从来没有见过这样的增长速度。大量普通人可以快速开发对自己有用,同时也能服务他人的软件。
之所以能做到这点,是因为 Omarchy 内置一套能力集,告诉接入的 AI 智能体如何开发操作系统扩展,真正实现高度可修改的计算机。我非常讨厌“智能体工程(Agentic Engineering)”这个词,现在已经沦为营销黑话,到处乱贴。我们需要一个新词汇,来描述“AI 来完成实际工作”这件事。
Lex Fridman:“氛围编程”这个词听着也很别扭。
DHH:确实别扭。氛围编程,就像 2000 年初的脚本小子,拿来网上下载的 PHP 脚本,自己却完全看不懂底层逻辑。当然,包括我在内,很多人都做过氛围编程。我甚至用智能体写过 C++、Rust 代码。说句实话,我极其讨厌 Rust,看 Rust 代码对我来说就像往眼睛里泼酸水。
Lex Fridman:为什么讨厌 Rust?
DHH:以我的看法,Rust 是过去 40 年里最丑陋的编程语言。但是,Rust 产出的程序非常出色:内存安全、系统级能力、极高效率,这些优点无可否认。Rust 作为面向智能体工程的平台堪称完美。两件事实可以同时成立:对人类阅读编写而言,它极其糟糕;交给 AI 智能体,它又无比优秀。
Lex Fridman:那我们是不是干脆就把智能体编程统称为“编程”就好了?重新定义编程的含义。再过几个月,还有多少人在用老式手工编程?
DHH:我不建议复用旧名词。传统编程,意味着你要理解循环、条件、变量这些原语,掌握编程语言的各种构造。编写程序不等于编程。打个比方,在智能体时代之前,CEO 雇佣一堆程序员,下达需求,产出软件,没有人会把 CEO 称作程序员。同理,我也不认为氛围式编程的实践者是程序员。
这里定义一下:氛围式编程,就是你告诉智能体去构建软件,但你不去看底层实现。这就是它和编程、或者说智能体辅助开发的分界线。
Lex Fridman:我想反驳一下。传统老派程序员做智能体辅助开发,和完全不懂编程的普通人做氛围式编程,本质是两回事。如果你懂 for 循环,懂函数式编程,掌握软件工程原则,你用自然语言指挥智能体,你的方式会更加体系化,能完成的项目规模、复杂度会远超纯粹氛围式编程的人。
DHH:其实我觉得,有一段时间,我懂得太多编程知识反而成了我的劣势。因为我会按照自己习惯的方式,直接告诉 Agent 应该怎么做,而它们又非常擅长按照我的要求去执行。
在最初的 Agent 阶段,这种方式确实让我觉得效率很高。我可以按照自己作为程序员惯用的方式告诉 Agent 该怎么做,从而获得更高的生产力。我当时几乎把自己作为程序员积累的全部经验都用在了这件事情上。
后来,第二个阶段到来的时候,我或者任何人,都可以向 Agent 描述最终想要达到的结果——或者直接告诉它遇到了什么问题——然后让它自己找到解决方案,而且这个方案往往比一个程序员事先规定好实现方式更好。
Lex Fridman:那你的意思是,有些问题,程序员在 Agentic Engineering(智能体工程)方面的表现,反而不如非程序员吗?
DHH:100% 是这样。我之所以这么说,我们可以先把这个概念定义清楚。
原因在于,有很多程序员其实并不是很擅长做产品经理。而软件开发本质上就是产品管理。
它应该做什么?应该为谁服务?应该怎么做?应该是什么样子?我们应该优先做什么?第一步应该从哪里开始?第一版应该包含哪些功能?这些能力并不是每个程序员都具备,而且也不是均匀分布在所有程序员身上的。
而在 Agentic 时代,当你把真正的实现工作交给 Agent、交给 AI 去完成时,你真正需要的恰恰就是这些能力。而我刚好同时具备这两方面的能力,这也是为什么我特别喜欢现在这个时代。
我现在仍然可以在某种程度上生活在旧世界里,去查看完整的代码实现,因为有一些领域和场景,我认为这样做依然有价值。与此同时,我也生活在未来。
就像我之前说的,当我创建 AmaWrite 的时候,我一行 C++ 代码都没有看过。我甚至刻意要求自己把它当成一次实验。这是一个 100% 的黑箱。我会把它当成自己是任何一个普通用户,只不过这个用户对于自己的“数字打字机”应该怎么工作有一些明确的想法。
所以,我觉得这是一个非常公平的实验。就好像任何其他类型的创作者一样,他们对软件应该怎么做、应该如何工作有自己的想法,然后让 Agent 去实现。
就像你刚才说的视频剪辑软件用户一样,他们非常清楚 Adobe Premiere 哪些地方让自己不满意,也知道它可以怎样做得更好,但他们自己却没有能力把这些改进真正做出来。
Lex Fridman:不过,我想替程序员反驳一下。程序员真正擅长的,优秀程序员真正擅长的,是系统性的设计,也就是从系统的角度思考问题——以及严谨性。
而且我认为,在相当长的一段时间里,即使我们已经可以通过自然语言来控制 Agentic 系统,这种控制方式可能仍然需要一定程度的严谨性。当然,不是那种过度结构化的严谨,而是你仍然需要非常具体地说明系统的目标是什么,应该如何进行验证,需要做什么样的安全测试。
这些事情你还是得告诉它。不过,如果要反过来再说一句,长期来看,这个系统本身也应该变得足够聪明。
DHH:六个月前,我也会这么说。但从那以后,尤其是最近几周,在 Agent 加速开发 Mach-E 的过程中,我发现了一件事:更多时候,我已经能够放下身段,承认 Agent 知道得更多,也知道什么才是最好的做法。
Lex Fridman:你真的可以直接告诉它:“确保系统是安全的。”
DHH:没错。而且,它可能比你更清楚“确保安全”到底意味着什么。
一个很好的例子,就是 AGENTS.md 和 CLAUDE.md 这些文件。曾经有那么一段时间,大家特别热衷于对这些文件进行各种微优化。比如:“你应该告诉 Agent 这个、那个”,最后你会得到一个巨大的 Agent 指令文件,里面塞满了各种各样的要求。
最近,负责 Claude Code 的 Boris 在一次关于 Opus 5 的采访中分享了一件事情:他们随 Opus 5 一起发布的系统提示词,据说 Fable 也应该是类似的情况,后来缩减了 80%。
为什么?
因为 Agent 不仅需要的人类指令少了很多,实际上,人类过于事无巨细地规定怎么做,反而会对 Agent 造成伤害。
任何一个经历过“尖头发老板”的程序员,都知道这是什么感觉。老板走进办公室,什么都不懂,却开始告诉你应该怎么编程、怎么写代码。你会怎么办?你会闷闷不乐。如果有人强迫你按照违背自己判断的方式做事,你最终写出来的代码反而会更烂。那为什么 Agent 就不应该是这样呢?
Lex Fridman:其实我也想反过来反驳一下自己。我现在确实发现,我正在培养的一项真正重要的能力——我觉得可能也是所有人都在培养的能力——就是不要把事情规定得过于具体,而是要学会给系统让路。也就是说,只需要提供足够的高层次愿景和指导,让它知道大方向是什么。
DHH:其实更进一步,你甚至连这些都不需要。现代软件开发最根本的一个认识,来自敏捷软件开发运动。在 90 年代末、21 世纪初,一群聪明、诚实又勇敢的人聚到了一起,他们说:“过去 40 到 50 年里,我们一直试图用这种方式开发软件,但它没有成功,以后也不会成功。”
我们一直试图在一开始就把软件应该是什么样子完全规定下来。我们以为,只要问清楚人们想要什么,把所有东西都写下来,再运用我们的系统思维和严谨性,把它整理成一份详细的需求规格说明书,然后把这份规格说明书交给一群程序员,让他们按照上面的要求一项不差地实现出来,最后所有人就都会满意。
但你猜怎么着?
没有人满意。因为在真正拿到一个东西之前,没有人知道自己到底想要什么。
在真正上手使用一个程序之前,你根本不知道它究竟应该做什么。所以,在 Agentic 时代,你应该抵制一开始就把所有事情规定得过于具体的诱惑。尽可能保持模糊,先让它做出一个东西,然后再去和这个东西互动。
做出好软件的过程,其实就是先写一点软件出来,然后真正去使用它。正是在使用软件的过程中,你才会发现自己真正想要什么。你会在这个过程中发现,什么重要,什么不重要。而 Agent 非常擅长帮助你经历这样一个不断摸索的过程,让你逐渐意识到自己到底想要什么——因为一开始,你其实根本不知道自己想要什么。
Lex Fridman:其实我也做过一些和你说的类似的事情。如果你能为自己设计一个好用的界面,那么和 Agentic 系统互动其实可以变得非常有趣。你可以把注意力放在设计本身,以及设计过程中最有意思的那些部分上。
DHH:没错。而这恰恰是人类真正擅长的事情。也就是差异化评估。给你三个选项,你选一个。但如果一下子给人 22 个选项,人类的表现就会直接崩掉。这就是“选择悖论”。
但如果只给你三个选项,人类很快就能做出判断,甚至一瞬间就能告诉你自己喜欢哪一个。这里面有很多机制,利用的其实都是人类会做出这种非常迅速的判断。
而且这种判断往往发生在理性思考之前,对吧?它首先来自直觉,来自你的“肚子”,然后才进入大脑。接下来,大脑才会试图解释:为什么我的直觉会做出这样的判断?
如果你愿意放下其中一部分理性上的预处理和事后解释,只是单纯地让自己的直觉来做决定,那么 Agentic 时代真的会让你大开眼界。
“手写代码时代的落幕”
Lex Fridman:你之前一直以精雕细琢漂亮的 Rails 和 Ruby 代码而闻名。但短短几个月里,你的工作方式发生了巨大变化,已经不再这样写代码了。那么,你现在的开发环境是什么样的?我猜你依然在追求代码的美感、细节和打磨,只不过换了一种媒介。
DHH:而且是在不同的抽象层次上。当我处理 Ruby 代码时,即使现在是让 Agent 去修改这些代码,我依然会非常在意细节。但我逐渐意识到,这种对细节的投入,其经济回报正在迅速下降。
过去 25 年里,我之所以会如此谨慎地打磨每一行代码,是因为我知道,保持架构清晰、连贯且易于调整,最终带来的回报就是:软件可以由一个小团队快速迭代和演进,不需要付出高昂的成本,也不会因为改动一个地方就引入一大堆 Bug。
正是这个经济上的理由,让我一直认为应该写漂亮的代码,因为漂亮的代码更容易理解、更简单,也更容易修改和扩展。但这一套逻辑的前提,是由人来修改代码。现在,这一点究竟还多大程度上重要,我认为仍然是一个开放的问题。当然,它目前依然重要。之所以这么说,至少是因为现阶段 Token 仍然是稀缺资源。现在,我们基本都受到 Token 数量的限制——当然不是所有人,但只要你的预算不是无限的,就会受到限制。
现在编写那些更容易让 Agent 理解、修改和演进的系统,依然有很高的回报。这样一来,Agent 就不需要每次都重新学习整个上下文。就像人一样,如果它能够在不破坏架构的情况下不断迭代、修改代码,那么下一次修改的成本就能和上一次一样低。反过来,如果不断往一个糟糕的代码库上堆东西,最终就会变成所谓的“泥球”——整个系统东拼西凑,彼此之间毫无章法,最后变成一团真正的乱麻。
所以,打磨代码依然有价值,只不过这种价值是建立在我们当前所处的阶段之上的。顺便说一句,这也是所谓“AI 精神病”真正出现的地方——当你试图推演九个月之后会是什么样、两年之后又会是什么样的时候,很容易陷入这种状态。
但如果把它当成一个思想实验,我第一次使用的电脑是 Commodore 64。它只有 1MHz 的 CPU 和 64KB 内存。所有在这台机器上写软件的人,都会把这些限制彻底内化。事实上,那台机器本身就是由各种限制构成的。如果把当年的程序员送进时光机,直接带到 2026 年,再给他一台今天的现代电脑,让他写一个软件,他可能会迷茫一阵子,因为他过去掌握的所有技术和经验法则,在这里都不再适用了。倒也不能说是“错误”,因为高效的软件依然是漂亮的软件,只是他们能够创造的价值已经过时了。为了让一台 1MHz 的电脑运行一个电子游戏,你需要进行大量优化;而今天,你需要做的优化完全是另一回事。
Lex Fridman:想象一下那个当年坐在 Commodore 前写程序的人。想想那时候编程是什么感觉、意味着什么——资源极度有限,一切都那么慢。
DHH:但从很多方面来说,它很美,而且也很浪漫。不过我们也应该想象一下这一点。每当我们感叹现代汽车文化的时候,都会说:“以前是不是更好?那时候大家都坐马车。”但事实并不是这样。你知道过去纽约用马匹作为交通工具时是什么味道吗?简直就是一条露天的下水道。
Lex Fridman:所以,从某种意义上说,老派的手写编程,就像我们今天浪漫化的牛仔文化一样。我们拍电影、讲故事,把它变得无比酷。
DHH:这种对手写代码的浪漫化已经开始了。我自己也有这种感觉,因为那确实是一个非常浪漫的时代。我很庆幸自己曾经生活在一个手写代码具有经济价值的时代,而且一过就是 20 年。那段时间真的很好。
Lex Fridman:那个时候,漂亮的手写代码本身也具有价值。
DHH:没错。因为漂亮的手写代码今天依然存在。现在仍然有人专门为 Commodore 64、Sega Mega Drive 或其他复古游戏机开发全新的游戏。事实上,我最近最喜欢的游戏之一就是 ModRetro 的作品。你知道 Palmer Luckey 的那个副业吗?他们专门重新打造老式游戏机。比如,他们重新做了一台 Game Boy。
你可以去看看,特别酷。但更酷的还不只是他们重新做出了这些硬件,还保留了原版那种厚重、笨拙的感觉,同时又换上了现代屏幕等设备。现在他们甚至又推出了 Nintendo 64。简直不可思议。他们对输入延迟以及其他各种细节的关注,简直到了疯狂的程度。
Lex Fridman:漂亮的代码本身就是非常好的训练数据。所以从某种意义上说,我们过去几十年创造出来的这些美感还会继续存在。
DHH:是我们共同孕育了今天这一刻。能参与其中真的是一种幸运。我对此有非常切身的感受,因为我写过的代码几乎全部都是公开代码。我职业生涯的大部分时间都在写开源软件,所以其中一些代码、一些漂亮的代码,已经进入了这些模型的训练数据。事实上,我听说有人在写 Ruby 代码时,会直接告诉 Agent:“按照 DHH 的风格来写。”
他们对结果很满意,而这确实让我有一点暖心。因为至少在很微小的程度上,我也参与了这一刻的诞生。其他所有贡献过开源代码,或者任何曾经被这些 Agent 接触到的代码的人,也都一样。从编程成为一门学科以来,我们创造的这些东西,如今都已经成为新一代 Agent 的一部分。
Lex Fridman:所以,当你看到漂亮的手写代码越来越没有用武之地时,你不会有一点伤感吗?
DHH:如果明天我不得不重新找一份工作,我很可能已经无法靠自己的技能去获得一份“亲手写这些代码”的工作,我会因此难过吗?不会。我已经写了 25 年。我想看看新的东西,尤其是如果我们真的会永远活下去的话——当然,我希望我们不会。对我来说,我已经做过了,够了,这很好。我并不会因为自己不再需要亲自写代码而产生更多怀旧情绪,就像我不再需要整天拿着锄头下地干活,也不需要站在流水线上工作一样。
Lex Fridman:你可是世界上最优秀的程序员之一,你擅长亲手写出漂亮的代码,懂得欣赏美,也有极高的品位,而这一切已经被取代了。
DHH:我谦虚地承认。我很感激过去发生的一切,因为正是那些经历把我带到了今天。所以,我也一直在努力做到这一点——可能这确实需要一些练习,我承认,我以前未必一直都是这样。
但斯多葛哲学中的“amor fati”,也就是“热爱自己的命运”,是一种非常自由的生活方式。你当然可以反驳说:“这是一种特权阶层才能拥有的心态。”没错,但即使在我还没有这些所谓“特权”的时候,我也有着同样的方向。所
以,我认为,我们完全可以选择一种与世界相处的方式:接受那些自己能够改变的事情,也接受那些自己无法改变的事情,然后去热爱这一切。去热爱这样一个事实——今天的科技世界,相比去年,已经一下子向前跃进了整整二十年。
给程序员的建议
Lex Fridman:那我们聊聊程序员群体普遍的焦虑。很多人读完计算机,怀揣写代码、构建事物、拿高薪的梦想,世界却发生剧变。他们内心充满焦虑:我该何去何从?你能共情这份焦虑吗?你会给出什么建议?
DHH:我完全共情。但要分清两件事。如果你热爱的,仅仅是拼接逻辑语句这类机械编码工作,那这份工作确实受到威胁。
但如果你真正热爱的,是构建事物,那你非但不会被威胁,反而大有可为。我们会需要更多的构建者。就业市场的数据依旧模糊。部分统计显示岗位反而在增加,AI 降低软件开发成本,会催生更多软件需求。这就是杰文斯悖论:商品成本下降,需求反而上升。
举 ATM 自动取款机的例子。ATM 刚问世,银行柜员无比恐慌。但 ATM 降低开设网点的成本,银行开设大量网点,最终柜员岗位反而变多。
当然,世事没有绝对。历史上绝大多数人口从事农业,机械化收割工具出现之后,农业人力需求大幅下降。身处变革之中,个体面临失业,痛苦完全真实。19 世纪英国卢德派工人捣毁纺织机器,他们本身是掌握高超手艺的从业者,工作条件原本不错。他们的困境值得共情。
但人类整体的进步,来自生产力提升。生产力提升,意味着完成同等工作量需要更少的人。有可能业务规模扩张,吸纳更多人;也有可能不会。部分企业任务固定,过去十个人完成,现在一个人就搞定。对于被裁员的个体,这是悲剧。但宏观层面,释放出来的人力,可以投入到更有产出的事情,推动整个经济迭代成长,社会整体向前。
编程工作里,有很多枯燥乏味的苦活。写代码固然有心流时刻,那种狂喜体验。但一年两千小时工作时长里,真正进入心流的时间有多少?100小时?200?甚至只有 25 小时?大量时间耗费在枯燥调试。把苦活交给机器,是文明演进的常态。
Lex Fridman:调试痛苦的时光大量消失,大部分场景下,编程变得更多是乐趣。但个体层面,焦虑、痛苦不可避免。给现在年轻的程序员,你的建议是什么?
DHH:不要试图去预判未来。就算行业最聪明的人,也无法预测两代模型迭代之后世界会是什么模样。不断推演两年之后会怎么样,只会把自己逼疯。专注当下。现在正是投身计算机领域最好的时代。上手体验当下最顶尖的技术,只要你亲身去接触,你很难不感到兴奋。
Lex Fridman:那要不要公开做项目?
DHH:公开构建项目不是必选项。但开源社区能带来极强的同伴情谊,对抗个人存在主义焦虑。和一群人同行,你会被积极的氛围感染,大家一起做以前想都不敢想的事。
我和 Omarchy 的主要合作者 Ryan Hughes 最开始目标十分保守:只求系统不要凌晨三点因为 Arch 包更新崩溃。而现在,我们的野心已经膨胀到:怎么征服全世界,实现所有梦想。野心膨胀,很大一部分来自智能体,也很大一部分来自和志同道合的人待在一起。
如果你独自躲起来,不断为未来忧虑,很容易陷入抑郁,反复反刍那些你无法掌控的事。套用黄仁勋的一句话:这属于失败者心态。你不必如此。未来不管你喜不喜欢,终究会到来。不如选择拥抱它,享受它。去学习、去创造、去贡献,参与更多事。
Lex Fridman:但人总是需要规划人生。上大学,怀揣憧憬,背后就是一套人生规划。可现在,规划几乎失去意义。六个月之后,Claude Code、Cursor 这类工具会是什么样,没人说得准。未来可能变成语音交互,或者 Omarchy 一统天下,操作系统形态彻底改变。那未来程序员、智能体工程师的工作又会是什么样?
DHH:规划固然有价值,但现在情况已经不一样。我们无法精准预判。最好的办法,是心怀信念,相信一切会向好。对抗焦虑,很大程度上来自你的选择:你可以选择悲观沉沦,也可以选择相信会迎来好结果。
Lex Fridman:我最近去中国乡村旅行,刻意体会那种时间流淌更缓慢的生活,远离 AI 行业的喧嚣。站在长城上,感受跨越千百年的永恒。身处这个飞速变化的时代,很容易错失那些属于人类的永恒命题。我们需要时刻记住那些亘古不变的东西。
DHH:你不会错过什么。这是我在这个时代最大的感悟。不要害怕掉队。这个领域迭代飞快,新概念层出不穷。但就算你去徒步旅行一年,完全脱离行业,回来只需要两周,就可以跟上最前沿。大量实验在快速筛选什么可行,什么不可行。你不需要完整经历全部历史,只需要直接享用结果。
Linux 终将统治桌面端
Lex Fridman:你一直对 Linux 很乐观。你觉得真正的 Linux 能进一步扩大市场份额吗?毕竟这么多年来,大家一直在开玩笑说——
DHH:Linux 桌面年年都要崛起……“明年就是 Linux 桌面元年”。
Lex Fridman:没错。但至少从你的判断来看,再加上你现在投入其中的精力,你似乎已经看到了一个 Linux 最终取代其他桌面操作系统的未来,因为 Agent 天生就喜欢 Linux。
DHH:我不只是能看到这种可能性,我甚至认为,到目前为止,这已经是最有可能发生的结果。Linux 实在太适合当下这个时代了。
正如我们之前聊到的,Linux 身上那些长期以来被认为是缺点的东西——晦涩的配置文件、各种奇怪的报错信息,以及其他让普通用户头疼的问题——偏偏很可能成为 Agent 操作系统最理想的特性。
事实就是如此,我们反而应该为这种命运般的讽刺感到高兴,然后一笑置之。
让我觉得特别有意思的是,苹果过去这么多年最大的优势之一,就是它打造了一个高度封闭、精心策划的用户体验。但现在,这反而可能成为它最大的劣势。
如果你热衷于 Agent、开发,以及这些新东西,Mac 简直是一个充满敌意的地方,到处都是限制和围墙。
而 Linux 从头到尾都是开放的。有意思的是,这件事其实也不是一开始就显而易见的。如果你看看很多 Linux 社区、开源社区面对 AI 的态度,就会发现他们并不是一边倒地拥抱 AI。恰恰相反,我甚至认为,其中大多数社区至少是持怀疑态度的,甚至可以说对 AI 相当抵触。
但幸运的是,Linux 的“终身仁慈独裁者”Linus Torvalds 本人,几周前刚刚写了一篇文章,明确表示他欢迎 AI。
Lex Fridman:没错。
DHH:他希望参与其中、引导它的发展,确保 AI 被正确地使用。他大概表达过这样的意思:如果你认为 Linux 是一个反 AI 的项目,那就再想想吧。你完全可以坚持开源的方式,自己 fork 一个版本,因为我们就是要使用 AI。
你现在甚至可以看到 Linux 内核中 AI 贡献数量的变化曲线,那是一条明显的抛物线。也就是说,Linux 正在非常积极地拥抱 AI。
其实从另一个角度来看,Linux 过去没有更早征服桌面,反而有点令人意外。因为 Linux 早就征服了其他领域。如今所有人使用的 AI 基础设施,几乎都运行在 Linux 上。
所有系统、所有服务器,几乎一切都在 Linux 上运行。所以一直以来,唯一有点奇怪的,就是我们日常使用的桌面电脑和个人电脑迟迟没有被 Linux 真正占领。但现在看来,它显然只是在等待这个时刻。从 1991 年一路走到今天,Linux 花了几十年时间,等待 Agent 真正成熟,最终成为面向普通用户的操作系统。
Lex Fridman:我希望它真的能取代其他系统。我的意思是,它实在太适合 Agent 了。但对普通人来说,换到 Linux 还是很难。
DHH:我认为,如果没有一个足够有说服力的理由,人们当然很难主动切换系统。
这也是 Omarchy 在设计之初最重要的目标之一。它绝不能只是一个“山寨 Windows”或者“山寨 Mac”。我们不想做一个廉价的复制品,尽可能让它看起来熟悉,然后做得更差一点。
如果说得刻薄一点,我会认为 Ubuntu 曾经多少走过这样的路线。当然,这种做法也不是完全没有道理。你把一个系统做得足够熟悉,就能吸引那些不愿意学习新东西的人,然后也许还能让他们接受你的理念,比如“自由软件”——这里说的自由是言论自由意义上的自由,而不是免费啤酒意义上的免费。
但事实证明,这条路并没有真正奏效。人们并不在乎这些,他们真正关心的只是:什么东西更好用。我认为,这正是 Linux 现在有机会赢下桌面市场的原因。
作为一个 Agent 操作系统、一个可以随意塑造的操作系统,它几乎没有对手。你可以按照自己的需求去调整它、改造它,让它真正变成你想要的样子。这种吸引力实在太强了。
自从 Quattro 发布以来,我已经看到越来越多的人真正拥抱了这种“可塑性”:他们开始自己制作东西,分享自己的桌面截图,然后整个人都沉浸在一种非常强烈的兴奋和满足感中。
这就是产品与市场契合的信号,对吧?因为这些人正在体验一种程序员最美好的状态。
过去,你需要向计算机输入那些晦涩的命令,遵循严格的逻辑结构,然后计算机按照你的要求生成结果。而现在,你坐下来,用普通英语絮絮叨叨地说上 20 分钟:“如果它能这样就好了……不对,好像应该这样。我们再让它……”
然后,软件就这样诞生了。一个按照你的想法、你的需求塑造出来的操作系统,就这样出现在你面前。我认为,一旦你真正体验过这种感觉,真正感受到那种力量掌握在自己手中的感觉,你就很难再回到过去。
Lex Fridman:而且我觉得,如果你把这件事真正做好,它最终会成为那种“回头看才发现原来本来就应该如此”的东西。
DHH:没错。这本来就是计算机应该有的样子。其实计算机最初就是这样的。比如 Commodore 64,你打开电脑,首先,它一秒钟就能启动,简直不可思议。其次,它启动之后直接进入 BASIC。
它从一开始就是一台可以随意塑造的电脑。只不过当时你必须懂那些“象形文字”一样的代码,才能真正发挥它的能力。
而现在,我们终于把这件事翻译过来了。Agent 就像给了我们一块“罗塞塔石碑”,你不再需要学习那些晦涩的语言,只需要直接说出自己的需求……
Lex Fridman:说得太好了。既然你提到了 Linus Torvalds,而且你现在也在做一个 Linux 发行版,所以会和 Linux 内核打交道。你怎么看这个人?一个人能够创造并推动这样一个庞大的生态系统,本身就非常不可思议。
DHH:他的坚持、投入,以及持续了几十年的长期主义,真的令人难以置信。
Linus 从 1991 年开始做这件事,到现在从未真正停下来。我不知道他中间有没有休息过,应该有吧,但看起来并没有多少。他似乎真的很享受开发内核的过程,也很享受掌控这个拥有 4000 万行代码的庞大代码库究竟往什么方向发展。更不可思议的是,他能够把几十万名贡献者的集体智慧和生产力汇聚起来。
而我们这些从中受益的人,只能坐下来感叹这一切究竟有多么不可思议。当然,现在的 Linux 已经成为一个完整的系统。即使 Linus 暂时离开一段时间,它依然能够继续运转。但即便如此,他依然属于那种需要我们“无论如何都要保护好”的人。
Lex Fridman:而且他依然足够开放,能够不断接受新事物、推动系统进化,甚至拥抱 AI。
DHH:没错。不只是 AI,他们现在甚至也在让 Rust 进入 Linux 内核。我知道这件事当初同样引发了争议。但 Linus 有一种非常难得的能力:他能够面对新的信息,然后真正得出不同于过去的结论。
Lex Fridman:你怎么看他的沟通风格?某种程度上,他和你的风格有点像,有时候说话会比较犀利。
DHH:我觉得这个世界已经变得太寡淡了,我们需要一点“刺激”。
Lex Fridman:完全同意。
DHH:当然,犀利和刻薄之间存在一条很细的界线。但关键是,你的出发点必须是好的。换句话说,你可以严厉。如果你是在试图让一个真正有可能学会某件事的人吸取教训,我其实不认为稍微严厉一点一定是什么坏事。有时候,反而正是因为这种严厉,那些教训才会真正留下来。
如果你去问那些曾经为强势领导者工作过的人,比如 Elon、Steve Jobs,甚至 Bill Gates,他们中的很多人事后都会说:“那是非常艰难的几年,但同时也是我职业生涯中最好的几年之一。”“他们把我最好的一面逼了出来。”
当然,这不是我的风格。至少我和别人打交道时,会尽量用一种没那么有攻击性的方式,让对方理解最终要达到的目标以及应该吸取的教训。
但我仍然认为,这个世界需要一点“刺激”。我们需要那些不那么循规蹈矩的人,而 Linus 有足够的理由去“不讲情面”。很多时候,整个世界的重量真的压在这个人的肩膀上。
Linux 内核支撑着整个现代文明。如果 Linux 内核明天突然消失,整个世界几乎什么都无法正常运行。所以,如果面对这样的责任和风险,他都不能严厉一点,那什么时候才应该严厉?
我觉得,这其实也和一个人的使命有多大有关。你的使命越重大,你能够承受的“不近人情”似乎也就越多。
这也是为什么我觉得,我们有时候更容易理解那些关于 Elon 比较难相处的故事。这并不意味着你一定要认同他的行为。你完全可以把这两件事分开来看:
“你知道吗?也许如果 Linus、Elon,或者任何处在这种位置上的人能够更温和一点,他们反而会更容易实现自己的目标。”
但与此同时,我又是谁,有什么资格去评判他们?
当你肩负着这样的责任——无论是发射火箭去火星、推动所有人转向电动车,还是负责那个运行在数十亿台设备上的 Linux 内核——说实话,我觉得这不是我的位置去要求你遵循某种所谓的“行为准则”。
当然,一切事情都有界限,严厉也一样。但如果只是在邮件列表里说几句重话?我觉得没什么。某种程度上,这甚至是一种信号:这里是有标准的。
DHH:如果项目的重要性已经达到 Linux 内核这样的程度,而你却达不到这些标准,那么你可能就会被公开嘲讽。如果你参与这样的项目,就应该做好承担这种代价的准备。
Lex Fridman:是的。对于这种影响巨大、意义重大的事情来说,或许应该把追求卓越放在追求“让所有人都感觉舒服”之前。
DHH:而且,更重要的是,你本来就不可能指望这些人都是那种面面俱到、永远温和、永远礼貌的人。Elon 有句话大概是:“你难道还以为我会是一个……”
Lex Fridman:普通人?或者那种……
DHH:……普通又随和的人?怎么可能?当然不会。如果世界上只是多了一个普通、随和的人,却必须用 Elon 来交换,那这个世界究竟得到了什么?我觉得这太荒谬了。
Lex Fridman:我也喜欢人与人之间的多样性。我喜欢善良的人,也喜欢混蛋。我希望不同的意识形态都能够得到充分表达。这也是为什么言论自由能够发挥作用。大家彼此碰撞,然后我们一起想办法把问题弄明白。
编程的未来
Lex Fridman:不过你有没有意识到,如果你继续保持现在这样的成功,OpenAI 和 Anthropic 迟早会杀进来,试着做自己的操作系统;或者像 Peter 和 OpenClaw 那样,直接开出一张巨额支票来收购你。
DHH:是的。我觉得我现在最大的优势,就是我真的不需要钱。所以,我可以纯粹为了自己的乐趣,以及对愿景的坚持去做这些东西。这件事有一个很奇妙的地方:有时候,当你不再在乎别人怎么想、想要什么,只是单纯地追求一个非常明确的愿景时,反而会变得更有吸引力。
如果你总想着:“这些人想要这个,所以我应该做这个;那些人想要那个,所以我应该再加上那个……”最后你会不断稀释这个东西,最终变成一团平庸、毫无特色的东西。
所以,对我来说,方向其实一直很明确:我就是希望电脑能够变成这个样子。如果最后 Omarchy 只是在历史上留下一个小小的注脚,证明它曾经参与了 Agent 化操作系统和可塑电脑的早期运动,那也完全没关系。我对此非常坦然。
只要我还能拥有一台像 Omarchy 这样,用起来如此有趣的电脑,那就很好了。Ruby 和 Rails 对我来说也是一样。从很早开始我就说:“你知道吗?我喜欢 Ruby,它是一门非常棒的编程语言。但如果有一天出现了更好的编程语言,我就会用更好的那个。”
如果有更好的 Rails 出现,我也会用。我喜欢 Ruby,而且我以后依然会写 Ruby,哪怕只是单纯为了享受这件事,就像骑马一样。我的马厩里现在还有马,尽管车库里停着一辆 Model Y。
现在,我写程序所使用的语言其实已经变成了英语。听起来很老套,但确实如此。过去三个月,我一直在用英语编程。我读了很多代码,但真正编程的时候,我是在用英语。我在告诉电脑该做什么,而且使用的是自然语言。
这件事甚至比我想象中还要令人愉悦。如果说世界上还有哪种编程语言比 Ruby 更美,那就是英语。
本文来自微信公众号“CSDN”,整理:屠敏,36氪经授权发布。















