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 條
- 從失敗的童年寫程式到愛上 Ruby:DHH 六歲拿到一台仿冒的 Amstrad 464,兩次嘗試學程式都因為看不懂變數和迴圈而放棄,直到後來接觸 PHP、再遇上 Ruby,才第一次體會到寫程式可以像寫詩一樣講究美感。
- Rails 的九大信條,用約定換自由:他逐條解釋 Rails 的設計哲學——優先照顧開發者心情、用慣例取代設定、反對微服務——並說明為什麼寧可保守也不追 JavaScript 那種不斷重寫的風潮。
- 用 AI 查資料,但堅持自己手打程式碼:他把 AI 當成隨時可以問的夥伴,卻拒絕讓 AI 直接改自己的程式,理由是手打的過程本身就是在學習,也是他享受寫程式的原因。
- 小團隊、不融資、不設經理:37signals 二十多年沒拿創投、沒有中階主管,第一版 Basecamp 他個人只花了 400 小時;他認為這種規模反而更容易做出好東西。
- 跟蘋果、WordPress 都開過戰:Hey 上架後被蘋果臨時要求拆帳三成,他公開開戰逼對方讓步;他也批評 WordPress 創辦人向 WP Engine 追討分潤,認為這違反了開源該有的分寸。
- 賽車跟寫程式一樣讓他進入心流,但兒子才是第一位:他從 25 歲開始賽車,一路開到 Le Mans 24 小時耐力賽;但談起三個兒子時,他說公司、賽車這些成就都比不上當父親。
時間軸26 段
六歲拿到仿冒的 Amstrad 464 想學程式卻失敗兩次,直到唸書時碰到 HTML、後來學會 PHP,才算真正打開程式設計的門。
他說 PHP 時代寫完直接上傳伺服器的簡單感,是自己一路在追的高;NoBuild 與 Rails 8 想在不放棄後來進步的前提下,把那種簡單找回來。
2010 到 2020 年前端工具鏈不斷重寫讓他厭惡,稱之為黑暗時代;他認為現在瀏覽器原生能力已經好到不太需要建置流程。
他支持反壟斷但認為拆分 Chrome 打錯了對象,Chrome 是靠技術贏得市場;接著批評 GDPR 催生的 cookie banner,是沒人喜歡卻十幾年拔不掉的失敗立法象徵。
靠一封 email 跟 Jason Fried 搭上線、合作做出 Basecamp,那是他第一次有技術選型的自由,因此接觸到 Ruby,一個週末就寫出讓他著迷的雛形。
拿 PHP 的錢字號、Python 的 `__init__` 當對照,說明 Ruby 怎麼把不必要的符號都拿掉;也對比 Ruby 設計者 Matz 與 Java 設計者 James Gosling 對程式設計師截然不同的信任程度。
`has_many` 這類直接改寫語言語法的 metaprogramming,是他愛上 Ruby 的核心;靜態型別的好處他認為主要是服務 IDE 的自動完成,而他堅持用文字編輯器手打程式碼。
Shopify 尖峰每秒上百萬個請求還是跑在 Ruby on Rails 上;他認為對多數商業軟體來說,省下的人力成本遠比省下的運算成本重要。
他把 AI 當成隨時可以問的另一個視窗,卻拒絕讓 AI 直接改自己的程式碼,理由是手打的過程本身就是在學習。
他認為沒人能預測六個月後的事;至今仍在跑美國社會安全支票系統的 COBOL 提醒大家,對「這行要被 AI 淘汰」要謙虛一點。
兩人辯論修改 AI 產出的程式碼,會不會發展成跟從零手寫一樣值得認真磨練的技能;DHH 認為編輯者必須先是能自己動手做的人。
從 programmer happiness、convention over configuration 到反對微服務,逐條講清楚 Rails 設計哲學的由來,以及為什麼堅持 monolith。
Rails 8 對 Rails 7 使用者幾乎是無痛升級,他說這是吸取 JavaScript 社群不斷重寫的教訓後的選擇;也提到他反對聘請工程經理,偶爾需要管理職能時寧可自己短期兼任。
第一版 Basecamp 他個人只花了 400 小時,小團隊做出的東西不是巨頭團隊的縮小版而是完全不同的東西;也談到拒絕創投、只接受 Jeff Bezos 買下部分股份的往事。
兩人分工明確、刻意保持距離不常開會,他認為這是長期合作沒有內耗的關鍵;也引用心理學家 Csikszentmihalyi 的心流理論,說明退休式的放鬆對創業者來說反而很痛苦,賣掉公司再退休的人很少真正快樂。
把運算與儲存搬回自有機房,一年省下數百萬美元的支出,也呼應 DARPA 最初設計網際網路要分散、不能有單點故障的初衷。
他認為 Musk 能吸引人才,是因為自己真的懂技術、能直接評斷工作成果的好壞,而不只是靠願景畫大餅。
Hey 上架後被蘋果臨時要求拆帳三成,他公開開戰逼蘋果讓步;也談到 Epic 告贏蘋果,讓開發者現在能導去網頁收款、避開三成分潤。
原本沒把成家排進人生優先序,遇到妻子後徹底改觀;也談到西方社會生育率下降、傳統制度被拆掉卻沒有替代品的隱憂。
25 歲才考到駕照,第一次坐進賽車就上癮;一路開到 Le Mans 24 小時耐力賽,也講到隊友在賽道摔斷雙腿、認識的丹麥車手意外身亡,賽車真實的代價。
描述怎麼把每個賽道彎角記成一套可重複執行的煞車與加速「程式」,再靠數據分析持續修正;他說專注賽車反而能保證進入心流,寫程式沒那麼穩定。
用了 20 年蘋果電腦後,先是愛上機械鍵盤,後來乾脆整套換成 Linux 跟 NeoVim,他說當網頁開發者其實 Linux 更合適。
他解釋討厭 TypeScript 是因為型別系統主要服務 IDE 的自動完成,他不需要;也給初學者 Ruby、JavaScript、Go 三個語言的建議。
他認為開源軟體是送禮不是交易,維護者不欠使用者任何東西;也批評 WordPress 創辦人向 WP Engine 追討分潤,違反了開源該有的分寸。
引用 Coco Chanel 的話說第二好的東西都很貴,最好的東西反而免費,像是有個真心相愛的伴侶。
他說不必為還沒發生的壞事先痛苦,氣候變遷、核武這些人類自己造成的問題,人類過去也總有辦法想出辦法解決。