# DHH：编程的未来、AI、Ruby on Rails、效率与育儿

> Ruby on Rails 创始人谈 AI 对开发者的冲击、编程的未来与远程工作方法，也聊为人父的体会。

- 原标题：#474 – DHH: Future of Programming, AI, Ruby on Rails, Productivity & Parenting
- 期数：第 474 期
- 发布日期：2025-07-12
- 嘉宾 / 主题：DHH 大卫·海涅迈尔·汉森
- 网页版：https://lexfridman-cn.pages.dev/ep/dhh-david-heinemeier-hansson/
- 官方页面：https://lexfridman.com/dhh-david-heinemeier-hansson/
- 精读字数：约 8333 字（阅读约 19 分钟）

> 本文为 lex.qiaomu.ai 基于原始访谈的 AI 改写中文精读，非官方翻译；引用请注明出处并链接网页版。

全世界没有一个人认真相信 cookie banner 对任何人有好处，可就是没人能摆脱它。DHH（David Heinemeier Hansson，大卫·海涅迈尔·汉森）在 Lex Fridman 的播客里，用这句话给 GDPR 的十年做了判决。

GDPR 实施十到十二年，在 DHH 看来，它在所有可衡量的指标上彻底失败。唯一受益的是律师、会计师和官僚。他说欧洲在"善意导致恶果"这件事上做到了世界一流。

> 没有人相信 cookie banner 对任何人有好处，可我们就是无法摆脱它。它是善意直接通往地狱的纪念碑，而欧洲在这件事上确实是世界级的。（DHH）

他甚至推演了一个荒诞场景。坐马斯克的火箭去火星访问网页，依然会看到 cookie banner。火星到地球的 ping 延迟一百五十秒，页面加载完，还需要四十五秒才能点完那个弹窗。全世界都被它覆盖，无人能逃。

这个开场很能说明 DHH 是个什么样的人。他不关心一件事的初衷有多高尚，只关心它实际产生了什么。后面整场对话，无论是谈编程语言、谈云服务、谈苹果，还是谈家庭，他都用同一把尺子衡量：这个东西真的让人过得更好吗？

## 三次尝试，一次开窍

DHH 学编程，前两次都失败了。

六岁那年他想要一台 Commodore 64，父亲却带回一台 Amstrad 464。他从杂志上抄游戏源代码，一抄两个小时，常常因为一个拼写错误全盘失败。他理解了常量，却理解不了变量的意义。后来他发现了盗版游戏，干脆放弃学习。

十一二岁他拿到 Amiga 500，试了 EasyAMOS，学会了条件语句和循环，却连一个最基础的游戏都做不出来。他开始怀疑自己不够聪明，数学不够好。这种自我否定持续了很多年。

第三次是大约二十岁。九年级时他接触到互联网和 Netscape Navigator，用 HTML 让文字闪烁，第一次获得正反馈。他做游戏评测网站，先学 ASP.NET，后来转向 PHP。写 PHP 的时候，他开窍了。

十四岁那年，他在哥本哈根的小卧室里运营一个 BBS，接了三根电话线。父母知道他有电脑和电话线，但不完全清楚他在倒腾盗版软件。丹麦的成长环境里，没人对盗版有道德质疑。他曾经花一个月送报纸挣的钱，买一个 Sega Master System 游戏 After Burner II，六百克朗。他还坐火车从哥本哈根到日德兰半岛参加 demo party，拖着一台十四寸 CRT 显示器。

demo scene 是用 4KB 内存做出接近音乐视频的东西，通过邮寄 3.5 寸软盘来交换作品。那种极致的资源约束，和后来他追求的美学一脉相承。

## PHP 给的那口甜

PHP 给 DHH 的东西很具体。九十年代末写 PHP，写脚本、FTP 上传、即时部署，不需要 web 服务器，不需要任何设置。他把这种体验称作 web 开发者人体工学的巅峰，整个职业生涯都在追逐那种快感。

> 我们是怎么丢掉这种敏感度的？让人能这样工作，还能把新人带进这个行业，给他们那种成功体验。（DHH）

他赞赏 Pieter Levels 至今还在用 PHP 加 jQuery 加 SQLite 运营多个业务。这证明那种方式真的能跑，跑得还挺好。行业后来把这条路弄丢了，而且丢得理直气壮。

## JavaScript 的十年混沌

2010 到 2020 这十年，JavaScript 社区在框架和工具链上的更迭荒谬至极。一个用 Webpack 的项目，放下五分钟，它就编译不过了。DHH 的原话是"为什么所有东西永远在坏"。

> JavaScript 社区，尤其是框架和工具，在 2010 到 2020 这十年里的更迭量，是荒谬的。（DHH）

浏览器技术本身也曾经停滞。IE5 赢了之后，微软解散了浏览器开发团队，整个 web 十年不动。是 Chrome 和 Google 把 web 重新推向前。DHH 承认复杂性有时候是桥，是过渡，但代价大得离谱。

他这里埋了一个判断：复杂性本身没有错，错的是把它当成终点。一座桥你可以走过去，但如果所有人都住在了桥上，问题就大了。JavaScript 生态那十年，太多人把桥当成了家。

## Chrome 不该被拆

美国司法部想拆分 Chrome，DHH 的反应只有一句话：这是场灾难。

> 在技术领域所有关于垄断的问题里，Chrome 是最不该动的那个。（DHH）

他的理由是，浏览器领域基本不存在垄断问题。有 Firefox，有 Safari，有 Chrome，用户有选择。Chrome 是给 web 开发者的完整礼物，Google 值得巨大赞誉。真正的问题在移动手机上那个收费站，也就是苹果的 App Store，不在开放 web 上。要反垄断，该冲着 Google 的广告业务去，而不是 Chrome。

这个立场和他后面谈苹果、谈 HEY 的那段故事，是同一个逻辑的两面。开放 web 是他眼里少有的、还站在开发者这一边的地方，他不想看着它被拆掉。

## Ruby：为大脑定制的手套

DHH 是通过 Dave Thomas 和 Martin Fowler 在 IEEE 杂志上的一篇文章发现 Ruby 的。那篇文章用 Ruby 来解释编程模式，因为 Ruby 看起来就像伪代码。Ruby 由松本行弘（Matz）在 1993 年开始开发。

DHH 给自己两周时间写一个概念验证，结果一个周末就完成了。他被彻底震撼。

> Ruby 像是为我的大脑量身定制的手套，而缝制它的人我从未见过。这怎么可能？（DHH）

Ruby 的核心设计目标是程序员幸福感（programmer happiness）。对比之下，James Gosling 设计 Java 时的哲学是：普通程序员是愚蠢的生物，不能信任他们使用复杂语言。两种世界观，导向两种语言，也导向两种工作方式。

Ruby 的美学，DHH 举了几个例子。5.times，数字 5 也是对象，可以调用方法。initialize 对比 Python 的 __init__(self)，干净太多。if user.admin?，那个问号是给人类看的交流工具，对计算机毫无意义，但正是这种冗余让代码读起来像人话。user.downgrade unless user.admin?，用 unless 替代 if !，更自然。还有 5.days，是 DHH 通过 Active Support 加到 Number 类上的方法。

> 它读起来像诗。（DHH）

他还提到 Matz 的信任。一个来自丹麦的陌生人，去改动他心爱的作品，Matz 允许了。这种信任程度基本闻所未闻。

## 静态类型之争与 Shopify 的账单

DHH 誓死捍卫动态类型。他认为静态类型让元编程更难，美学上也令人反感。静态类型里写 User user = new User()，同一个词 user 出现三次，纯属浪费。他不用 IDE，不用自动补全，用文本编辑器徒手把代码凿出来。

> 我不是用工具写代码，我用文本编辑器。我用双手把它从屏幕上凿出来。我不用自动补全。（DHH）

他认为自动补全会提高你对样板代码的容忍度，因为你打得快，就不觉得它在浪费你的生命。

他也承认，千万行、几千个程序员的大型代码库需要不同的方法。他反对的，是把这套东西强加到个人项目上。

> 用你的帕加尼去 Costco 买杂货。那是个糟糕的交通工具。（DHH）

支撑他观点的是真实数据。Shopify 在黑色星期五达到每秒一百万动态请求，运行着全球约 30% 的电商店铺，它的单体应用约五百万行代码。如果换成 Go 或者 Java 写，同样功能需要两千五百万行。Shopify 约一万名员工，市值一千二百亿美元，每季度 GMV 两千五百亿美元。它的创始人 Tobi Lütke 曾是 Rails 核心团队成员，写了 Active Merchant 和 Liquid 模板语言。

> Ruby 是奢侈品语言。最高级的奢侈品。它是编程语言里的香奈儿。（DHH）

## 扩展性其实是一道经济学题

DHH 把扩展性拆成两个维度。一个是运行时性能，也就是单请求的执行速度，目标三百毫秒以内，理想是一百毫秒。另一个是水平扩展，加服务器就行，Shopify 用一千台服务器处理每秒一百万请求。

真正的扩展难点是数据库，是 MySQL，编程语言根本排不上号。Twitter 从 Rails 切走之后，DHH 说它十年零创新，这是 Rails 最好的广告。

他算过一笔账。37signals 大约 15% 的运营预算花在 Ruby 应用服务器上。就算换一门快一倍的语言，也只省下七个百分点的预算。而如果 Ruby 和 Rails 能让程序员生产力提高 10%，那个影响远远大于省下的 CPU 周期。

> 关于 Ruby 扩展性的问题，本质是经济问题。（DHH）

> 不是 CPU 核心。是 web 核心，是人力的核心。是人理解和运转系统的能力。（DHH）

大多数关于语言性能的争论，其实都在讨论一个错误的成本项。机器贵还是人贵，答案早就摆在那了，只是争论的人不愿意承认。

## AI 让能力从手指间流失

DHH 喜欢用 AI 协作，但有个硬规矩：不让 AI 驱动写代码，只在单独的窗口里用它当参谋。他觉得 AI 有点太慢，像回到需要等编译的时代。

他最大的担忧是，能力从手指间流失。

> 我能真切感觉到，能力正从我的手指间流走。（DHH）

他举自己写的 Omakub 项目，一个用 Bash 写的 Ubuntu 定制版。让 AI 写代码的时候，他没学到任何东西。自己一个字一个字打的时候，他学到了。

> 你是用手指学习的。你要学吉他，可以看无数 YouTube 视频，但你还是学不会弹吉他。（DHH）

他说 AI 让他每天聪明 0.5%，但让 AI 驱动的时候，他每天笨 0.5%。他把 AI 看成结对编程伙伴，一个可以问愚蠢问题而不会被评判的对象。

Anthropic 的 CEO 预测年底 90% 的代码由 AI 写，DHH 说他不止一点怀疑。

> 第一条规则，没人他妈知道任何事。没人能预测六个月之后会发生什么。（DHH）

但他也接受一个可能：编程也许会变成"马"。从交通工具，变成休闲活动。一个人承认自己热爱的东西可能被时代降格，需要勇气。

## Rails 的九条信条

2012 年 DHH 写下 Rails 的九条信条，原因很简单：如果不把价值观记录下来，社区就会迷失。

第一条，优化程序员幸福感，致敬 Matz。接受美学和其他目标之间的权衡，允许模糊。IRB 里 exit 和 quit 都能退出，Python 里你打 exit，它会给你上一课。

第二条，约定优于配置。反对 Java 框架那种几百行 XML 配置。系统应该预装好，不用你从一盒乐高开始拼。

> 约定优于配置，本质是说系统应该预先组装好。我不是递给你一盒该死的乐高，让你拼千年隼。我给你的是一件成品玩具。（DHH）

第三条，菜单是 Omakase，厨师精选。Rails 是解决 web 问题的完整尝试，所有拼图预先配置。对比 JavaScript 生态，没有人负责菜单，N 乘 N 乘 N 种排列组合，没有保留的智慧。

第四条，单一范式。Ruby 的核心是面向对象，也借鉴函数式和命令式。Rails 同样把各种最佳理念重新混搭。

第五条，追求优美代码。class Project 继承 ApplicationRecord，belongs_to :account，has_many :participants，validates :name，presence: true。读起来像俳句。

第六条，提供利刃。反对 Java 那种"不给你 foot gun"的哲学。信任人类，允许危险操作，割伤一次就学会了。

第七条，价值集成系统。Rails 解决整个 web 问题，不做零散组件。

第八条，进步优于稳定。DHH 承认这条已经过时。Rails 8 对 Rails 7 用户基本是无操作升级。是 JavaScript 社区的混沌让他改变了看法。

第九条，隐含的：单体优于微服务。

> 分布式编程第一法则：不要分布式你的编程。（DHH）

> 微服务……当你把这个模式用到二十个程序员、五十万行代码的团队上，你就是个白痴。（DHH）

这些信条背后是具体的产品。Basecamp 约十万行 Ruby 代码，约四百二十个屏幕。HEY 也是约十万行。HEY 发布时前端只有 40KB，Gmail 压缩后约 6MB，未压缩 28MB。Basecamp 首版由 DHH 一人在 2004 年用四百小时完成，至今创造数亿美元收入。

四百小时，一个人，一个周末到几周的量级。工具选对了，小团队能做出后来几十年都在产生现金的东西。

## SQL 为什么一直没死

ActiveRecord 这个名字直接来自 Martin Fowler 2001 年的《企业应用架构模式》，那本书里就有这个模式名。核心思想很简单：表对应类，行对应对象。

它没有把 SQL 抽象掉，反而让 SQL 更简洁，更适合构建领域模型。

DHH 批评其他 ORM 试图活在纯对象世界里，然后发明一套复杂机制来回翻译。他认为程序员应该理解 SQL，哪怕用着 ORM。

> SQL 是那些经受住 NoSQL 冲击、至今仍然统治的东西之一。（DHH）

这句话放到今天依然成立。当年喊着要取代 SQL 的一批数据库，大多已经变成了 SQL 数据库。持久的东西往往跟时髦无关，靠的是把问题切得准。

## 不要经理，要小团队

DHH 反对工程经理这个角色。他做过两年实验，雇了很优秀的工程经理，结论是：我原来是对的，我们不应该有经理。

经理的问题在于很快失去技术手感，变成"尖头发老板"。最好的反馈来自比你更擅长你工作的人，经理给不了。

37signals 的默认配置是小团队，两个人，一个程序员加一个设计师。没有经理，就不需要计划，可以跟随从代码里涌现的真相。小团队本身就是目的，不必把它当成通往大团队的垫脚石。

> 你没法用一千人的团队做出 Basecamp 这样的软件。你会做出一千人做的那个软件，那完全是两回事。（DHH）

他也反对 VC。拿别人的钱，意味着他们要回报。

> 不要拿风险投资。（DHH）

37signals 有个数据很有意思：十九年没有全职财务人员，后来因为没有收销售税被罚五百万美元，才不得不雇。他们还曾有过十年全职数据分析师，后来选择用财务人员替代。这种近乎偏执的精简，和他在云服务上的做法是同一种性格。

## Jason Fried、Bezos 与一段被当成理所当然的信任

DHH 和 Jason Fried 合作了二十五年。两人住在不同城市，每周直接交流不到两小时。早期产品讨论激烈到员工担心公司要散架，但争论针对想法而非个人：Jason，你是个白痴，你是个白痴是因为你看这个问题的方式错了。

两人各有明确的能力领域。Jason 信任 DHH 的技术决策，DHH 信任 Jason 的设计和产品方向。他们刻意避免把彼此耗尽，因为关系有有限的交换量。两个人都喜欢做具体工作，DHH 编程，Jason 设计，不满足于只是头脑风暴。

Bezos 通过私人办公室买了二级股份，金额几百万美元，从 DHH 和 Jason 个人手中买，钱没进公司账户。DHH 说这是疫苗，让他们有底气拒绝 VC。

写投资提案的时候他们大笑，故意写了个疯子才会接受的价格。Bezos 的投资团队说这毫无经济意义，Bezos 说：我不在乎，我想投资这个人。

Bezos 每年和他们会谈一次，说的话是：你们在做很棒的事，继续做。我不懂怎么经营你们的业务，你们懂。

DHH 从 Bezos 那里学到长期信念和 disagree and commit。他对这段关系有一些遗憾，因为曾把这种信任视为理所当然。他还说，会议有毒。

> 会议有毒。（DHH）

## 恨意是热爱的副产品

DHH 引用 Kathy Sierra 的博客 Creating Passionate Users。如果你创造出有价值的东西让很多人喜爱，必然产生等量的反作用力，也就是恨你的人。

> 如果你在创造有价值的东西、让很多人热爱它，你必然创造出等量而反向的恨意力量。唯一逃脱它的方式是平庸。（DHH）

任何试图讨好所有人的人，最后只能平庸。反过来说，如果身上一点争议都没有，可能该反思自己到底做了什么。

## 流、自行车与 top 5%

DHH 引 Mihaly Csikszentmihalyi 的《Flow》。这本书的研究起点是"为什么有些人幸福、什么时候幸福"。结论是，人最幸福的时刻，是能力被拉伸到略超当前水平的时候，而不是坐在 Mojito Island、没有义务和责任的时候。

流状态里人会忘记时间空间。编程一个难题，你以为过了二十分钟，实际过了三小时。人回望这些时刻会感到最大的快乐。如果移除所有问题，人会抑郁。

成功卖掉公司后，退休两周就会无聊到极点。失败则后悔过去十年。继续经营也永远不会更容易。如果只留下工作，会全面失败。DHH 想要流带来的幸福，但要以能持续四十年甚至五十年的方式做。

第一次体验只发生一次，大多数人无法第二次复制成功。Basecamp 是 lightning in a bottle，第二家公司很少能同样成功。创始人容易傲慢，认为成功只因自己厉害，但有时只是时机之门打开又关闭。

如果问他想对年轻的自己说什么，他说不会说任何话，不会剥夺因无知而获得的人生经历。智慧要一次一次摔碎再重建。新起点最大的祝福，就是不知道会有多难，不知道自己不知道什么。

责任是意义的关键。Jordan Peterson 教他表达这一点，Viktor Frankl 在《Man's Search for Meaning》里说，只要有理由，人能忍受任何苦难。

二十岁、三十岁、四十岁都不可回。Derek Sivers 有个自行车的比喻：全力骑十九分钟，或者享受风景慢 5% 用二十一分钟，只差两分钟。

如果想成为世界第一，必须牺牲一切，痴迷于一件事。DHH 不追求第一。他自认不是最聪明、最好、最有天赋的，但能组合不同领域。top 5% 比 top 0.1% 容易二十倍或一百倍，你可以在五件事上同时做到 top 5%：写作、赛车、编程、经营公司、家庭。

Karl Marx 描述过早上钓鱼、晚上锤铁、周末画画的生活。DHH 无法忍受单一隧道视野带来的异化。深度编程数周甚至数月之后，必须浮上来做别的事，再以全强度回来。

## 从云端搬回自己的机房

批评者说，如果 37signals 追求 moon、VC、AI，可能大一百倍。DHH 承认机会成本真实，但以公司这个规模来看，每年省下两百万美元基础设施账单，其中一半到三分之二直接进入底线，归所有者和员工分红，这笔账值得算。

他反对硅谷那种"成本不重要"的思维。低效业务和低效程序一样像脑中刺，看 expense report 里的浪费让他不适。

AWS 曾经用于一切，包括 HEY，总云账单峰值约三百二十万到三百四十万美元。云的推销话术是更快、更容易、更便宜，DHH 曾经相信，决定不再拥有服务器。后来他发现 AWS 运营着约 40% 的毛利，云的那套话术在他看来根本站不住脚。

AWS 也没有更容易。IAM 规则、access parameters 之类的东西复杂得很。迁出自有硬件后，没多雇一个人，团队不变。

"更快"只在需要十五分钟内上线一千台机器时明显，日常用不到。买服务器便宜得多，可以买更多机器，不必追求自动缩放的极致效率。

2023 年初他受够了账单，六个月内把七个主要应用从云端迁到自有服务器，包括 compute、caching、databases。服务器从 Michael Dell 那里买，Dell 已经营业四十一年。S3 因为四年合同继续使用，云里拿到好价格通常需要多年合同，compute 常是一年合同。

他预计五年省约一千万美元，基础设施支出降一半到三分之二。

DARPA 原设计是分布式网络，没有单一节点控制一切。US-East-1 宕机时，看似三分之一互联网离线，这是对 DARPA 设计的侮辱。

自有硬件现在完全可行。现代 CPU、1U 机器的内存容量、TSMC 和苹果推动的进步，年增 15% 到 20%。NVMe 和 SSD 改变了系统设计。摩尔定律本应让价格下降，云却反着来。

自有机器有痛点。计算机固有痛苦，需要机架、网络、专业 know-how。但整个互联网曾经就是靠插以太网、插电源、启动 Linux 建成的。

数据中心用 Summit，前身是 Deft，白手套服务，DHH 不亲自去。看到 IP、drives 上线，体验类似云，但便宜很多。

他还提到 homelab：个人服务器、家庭光纤 5 gigabit。2004 年的技术和 100 megabit cable 就能支撑 Basecamp 数百万 MRR。从卧室就能启动公司。

xAI 不租对手的 GPU，自建十万块 GPU 的帐篷，以创纪录速度搭起来。拥有硬件在小型、中型、前沿计算三个尺度上都有优势。

## 招聘、Elon、苹果与 HEY 的那场仗

DHH 招聘不看简历、学校、成绩、血统，看 cover letter 和编程测试。远程工作要求好写作，编程测试模拟真实工作。他多次被代码质量颠覆预期：简历完美的人代码不行，看起来不确定的人代码极好。

Elon 不是在找人才，是在吸引人才。使命足够大胆、清晰，人才因为使命而来。Elon 懂很多东西，能评估工作产品的质量，快速分辨谁在胡说，能押注在能去火星的人身上。他能简化问题，需要愿景加现实锚定，加对结果的激情。

苹果早年，DHH 是死忠。2000 年代初苹果以 Unix 为底，他从微软逃离。在哥本哈根商学院用第一台白色 iBook，转化了半个班。2004、2005 年他和 Jason 做苹果开发者广告。Mac 用户二十年，2007 年和 Jason 排队五小时买第一代 iPhone。

转折在 iPhone
