← 回到天際線 思考機器第 56 層 / 102

EP 4742025-07-126:08:48

DHH 的減法哲學:從程式到人生

DHH

Ruby on Rails 創辦人 DHH 談程式美感、AI 該幫多少、拒絕創投與蘋果開戰的往事,以及賽車和三個兒子教會他的事。

DHH: Future of Programming, AI, Ruby on Rails, Productivity & Parenting | Lex Fridman Podcast #474在 YouTube 看 ↗

重點6 條

  1. 從失敗的童年寫程式到愛上 Ruby:DHH 六歲拿到一台仿冒的 Amstrad 464,兩次嘗試學程式都因為看不懂變數和迴圈而放棄,直到後來接觸 PHP、再遇上 Ruby,才第一次體會到寫程式可以像寫詩一樣講究美感。
  2. Rails 的九大信條,用約定換自由:他逐條解釋 Rails 的設計哲學——優先照顧開發者心情、用慣例取代設定、反對微服務——並說明為什麼寧可保守也不追 JavaScript 那種不斷重寫的風潮。
  3. 用 AI 查資料,但堅持自己手打程式碼:他把 AI 當成隨時可以問的夥伴,卻拒絕讓 AI 直接改自己的程式,理由是手打的過程本身就是在學習,也是他享受寫程式的原因。
  4. 小團隊、不融資、不設經理:37signals 二十多年沒拿創投、沒有中階主管,第一版 Basecamp 他個人只花了 400 小時;他認為這種規模反而更容易做出好東西。
  5. 跟蘋果、WordPress 都開過戰:Hey 上架後被蘋果臨時要求拆帳三成,他公開開戰逼對方讓步;他也批評 WordPress 創辦人向 WP Engine 追討分潤,認為這違反了開源該有的分寸。
  6. 賽車跟寫程式一樣讓他進入心流,但兒子才是第一位:他從 25 歲開始賽車,一路開到 Le Mans 24 小時耐力賽;但談起三個兒子時,他說公司、賽車這些成就都比不上當父親。

時間軸26 段

01 02:52
童年學程式挫折

六歲拿到仿冒的 Amstrad 464 想學程式卻失敗兩次,直到唸書時碰到 HTML、後來學會 PHP,才算真正打開程式設計的門。

02 16:52
PHP 教會的簡單

他說 PHP 時代寫完直接上傳伺服器的簡單感,是自己一路在追的高;NoBuild 與 Rails 8 想在不放棄後來進步的前提下,把那種簡單找回來。

03 21:16
JS 失落的十年

2010 到 2020 年前端工具鏈不斷重寫讓他厭惡,稱之為黑暗時代;他認為現在瀏覽器原生能力已經好到不太需要建置流程。

04 30:40
Chrome 反壟斷

他支持反壟斷但認為拆分 Chrome 打錯了對象,Chrome 是靠技術贏得市場;接著批評 GDPR 催生的 cookie banner,是沒人喜歡卻十幾年拔不掉的失敗立法象徵。

05 38:20
遇見 Ruby

靠一封 email 跟 Jason Fried 搭上線、合作做出 Basecamp,那是他第一次有技術選型的自由,因此接觸到 Ruby,一個週末就寫出讓他著迷的雛形。

06 45:14
Ruby 的語法之美

拿 PHP 的錢字號、Python 的 `__init__` 當對照,說明 Ruby 怎麼把不必要的符號都拿掉;也對比 Ruby 設計者 Matz 與 Java 設計者 James Gosling 對程式設計師截然不同的信任程度。

07 1:03:00
元編程的魔法

`has_many` 這類直接改寫語言語法的 metaprogramming,是他愛上 Ruby 的核心;靜態型別的好處他認為主要是服務 IDE 的自動完成,而他堅持用文字編輯器手打程式碼。

08 1:13:54
Shopify 驗證規模

Shopify 尖峰每秒上百萬個請求還是跑在 Ruby on Rails 上;他認為對多數商業軟體來說,省下的人力成本遠比省下的運算成本重要。

09 1:26:50
AI 協作但手打

他把 AI 當成隨時可以問的另一個視窗,卻拒絕讓 AI 直接改自己的程式碼,理由是手打的過程本身就是在學習。

10 1:39:16
程式設計會消失嗎

他認為沒人能預測六個月後的事;至今仍在跑美國社會安全支票系統的 COBOL 提醒大家,對「這行要被 AI 淘汰」要謙虛一點。

11 1:50:13
Vibe coding 之辯

兩人辯論修改 AI 產出的程式碼,會不會發展成跟從零手寫一樣值得認真磨練的技能;DHH 認為編輯者必須先是能自己動手做的人。

12 1:58:51
Rails 九大信條

從 programmer happiness、convention over configuration 到反對微服務,逐條講清楚 Rails 設計哲學的由來,以及為什麼堅持 monolith。

13 2:20:54
穩定優先於重寫

Rails 8 對 Rails 7 使用者幾乎是無痛升級,他說這是吸取 JavaScript 社群不斷重寫的教訓後的選擇;也提到他反對聘請工程經理,偶爾需要管理職能時寧可自己短期兼任。

14 2:32:35
少即是多

第一版 Basecamp 他個人只花了 400 小時,小團隊做出的東西不是巨頭團隊的縮小版而是完全不同的東西;也談到拒絕創投、只接受 Jeff Bezos 買下部分股份的往事。

15 2:50:31
與 Jason 搭檔 25 年

兩人分工明確、刻意保持距離不常開會,他認為這是長期合作沒有內耗的關鍵;也引用心理學家 Csikszentmihalyi 的心流理論,說明退休式的放鬆對創業者來說反而很痛苦,賣掉公司再退休的人很少真正快樂。

16 3:14:55
離開 AWS 雲端

把運算與儲存搬回自有機房,一年省下數百萬美元的支出,也呼應 DARPA 最初設計網際網路要分散、不能有單點故障的初衷。

17 3:34:42
Musk 的用人哲學

他認為 Musk 能吸引人才,是因為自己真的懂技術、能直接評斷工作成果的好壞,而不只是靠願景畫大餅。

18 3:43:23
與蘋果開戰

Hey 上架後被蘋果臨時要求拆帳三成,他公開開戰逼蘋果讓步;也談到 Epic 告贏蘋果,讓開發者現在能導去網頁收款、避開三成分潤。

19 4:06:25
成為父親

原本沒把成家排進人生優先序,遇到妻子後徹底改觀;也談到西方社會生育率下降、傳統制度被拆掉卻沒有替代品的隱憂。

20 4:32:15
開始賽車

25 歲才考到駕照,第一次坐進賽車就上癮;一路開到 Le Mans 24 小時耐力賽,也講到隊友在賽道摔斷雙腿、認識的丹麥車手意外身亡,賽車真實的代價。

21 4:52:19
把彎道變成程式

描述怎麼把每個賽道彎角記成一套可重複執行的煞車與加速「程式」,再靠數據分析持續修正;他說專注賽車反而能保證進入心流,寫程式沒那麼穩定。

22 5:04:41
換成 Linux

用了 20 年蘋果電腦後,先是愛上機械鍵盤,後來乾脆整套換成 Linux 跟 NeoVim,他說當網頁開發者其實 Linux 更合適。

23 5:17:22
討厭 TypeScript

他解釋討厭 TypeScript 是因為型別系統主要服務 IDE 的自動完成,他不需要;也給初學者 Ruby、JavaScript、Go 三個語言的建議。

24 5:33:00
開源是禮物經濟

他認為開源軟體是送禮不是交易,維護者不欠使用者任何東西;也批評 WordPress 創辦人向 WP Engine 追討分潤,違反了開源該有的分寸。

25 5:59:41
金錢買不到的事

引用 Coco Chanel 的話說第二好的東西都很貴,最好的東西反而免費,像是有個真心相愛的伴侶。

26 6:02:08
對人類保持樂觀

他說不必為還沒發生的壞事先痛苦,氣候變遷、核武這些人類自己造成的問題,人類過去也總有辦法想出辦法解決。