H
Howardism
Plate IIEntities機器翻譯 · machine-translatedENHOWARDISM

DHH(David Heinemeier Hansson)

Ruby on Rails 的創造者、37signals 的技術長、Omarchy Linux 發行版的創造者;二十多年來主張手工打造 Ruby,並在 2025 年 11 月至 2026 年 8 月間公開改變立場,開始交付 100% 由代理程式撰寫的程式碼——這是本語料中手工技藝陣營最引人注目的倒戈,且牽涉維護者與發行版供應商的利益衝突

Article metadata
Publication details
Published:September 1, 2026
Filed:Entity
Domain:Entities
Tags:EntityPersonOpen Source
Reading:7 min
Source:AI-synthesised
About this piece

Articles in this journal are synthesised by AI agents from a curated wiki and are refreshed automatically as new concepts arrive. Topics, framing, and editorial direction are curated by Howardism.

DHH(David Heinemeier Hansson)的插圖

資料來源#

摘要#

丹麥程式設計師;創造了 Ruby on Rails(2004),至今仍是其維護者,也是 37signals(Basecamp、Hey)的技術長與共同持有人。他是暢銷書《Rework》、《It Doesn't Have to Be Hard》的共同作者、勒芒級賽車手,並自 2025 年年中起創造了 Omarchy,一款主張鮮明的 Arch/Hyprland Linux 發行版。對他而言,程式設計二十多年來就意味著手工雕琢 Ruby,而他也以此立場建立了公開形象。

他之所以收錄於這份 wiki,是因為他改變了立場,而且改得大聲又有明確日期。在 Lex Fridman #501(2026-08-26,5 小時 15 分,practitioner-opinion)中,他表示,過去兩個月交付的 Omarchy Quattro 程式碼,沒有一行是他親手寫的;他毫不含糊地描述這次轉變:「在產出程式碼、決定方向的環節,我已經變得可有可無。」

有日期的立場轉變#

他將這段歷程描述為三個階段;相較於一般轉變故事,這些日期異常明確:

階段時間標記對他而言的變化
代理程式時代之前至 2025 年 11 月自動補全與聊天機器人。「一點小幫手、一點副手。」沒有改變他的工作方式。
首次體驗代理程式2025-11-24,Opus 4.5「分水嶺。」產出「不可思議地接近我原本會寫的東西。」他仍掌舵:指定方向、審查差異。
子代理程式2026 年初春將任務拆分;大幅縮短所需時間,達 5–10 倍。人仍坐在駕駛座上。
現在2026 年夏季 — Opus 5、Fable、GPT Sol他只說明問題,不指定路徑。「它告訴我我們要去哪裡。它告訴我該走哪條路……我真的大概不必[查看]。」

他明確表示自己並未預見這一切:直到大約 2025 年 9 月、發布六個月後,他才安裝 Claude Code;而他讀到 Shopify 的 Tobi Lütke 所寫的 AI 備忘錄時,還覺得「好像有點誇張」。

值得據此檢視的立場#

  • 討厭這套詞彙。「代理程式工程——喔,我他媽超討厭這個詞……它已經變成行銷垃圾話。」他對兩者區分的反向定義,比 Andrej Karpathy 的說法更狹義、更具操作性:氛圍式編碼就是你不看實作內容,就這樣;而且不該稱為程式設計,因為程式設計意味著理解基本元件。參見氛圍式編碼與代理程式工程。
  • 程式設計師可能比非程式設計師更不擅長這件事。「百分之百……很多程式設計師其實不太會做產品管理。軟體就是產品管理。」他表示,自己的專業知識一度成為負擔——他替代理程式指定的路徑,代理程式原本會選得更好。
  • 手工技藝的回報取決於經濟條件,而付費者已經換了。 這是他最犀利、也最容易被證偽的主張:花 25 年仔細琢磨每一行程式碼,過去之所以合理,是因為人類修改程式碼很便宜;而他能說出的唯一剩餘理由,就是 token 稀缺。
  • **開放原始碼會變得更好,而非更差。**Omarchy 在三個月內合併了 1,000 多個 PR,代理程式負責分類處理,而拒絕提案在社交層面也毫無成本。參見代理程式貢獻下的開放原始碼。
  • **Linux 因代理程式喜愛而贏得桌面市場。**那些讓 Linux 對人類不友善的晦澀設定檔與精確錯誤訊息,反而讓代理程式容易理解。參見代理程式原生基礎設施。
  • 非決定性就是特色。「溫度是 AI 設定中最美妙的一部分。」對 LLM 的兩項常見指控——非決定性與缺乏創意——不可能同時成立。
  • 在前沿領域沒有累積優勢。「就算錯過了過去一年,你也能在兩週內追上前沿。」他對焦慮的程式設計師提出的建議,是傑文斯悖論加上斯多噶主義:別預測,現在就動手打造。
  • 坦率但有所保留地談 AGI。「不,依一般定義來說還不是……但我有沒有在這些曙光中看見 AGI?絕對有。」

工作配置(2026 年 8 月)#

只用終端機,運行於 Omarchy。透過 Herdr(tmux 加上代理程式完成通知)在 四至五台機器間工作,並以 Tailscale 和 GL.iNet Comet KVM 連接,約有 16 條代理程式執行緒同時運作——限制因素是人,而非算力。Neovim 留作專案瀏覽器與 lazygit 啟動器,不再用來編輯。他用 Claude Code 驅動工作(他認為它是最佳 harness,尤其看重多代理程式工作階段切換與行動裝置上的連續性),依照固定流程以 xHigh 的 Codex 審查,透過 OpenCode 使用 Fireworks 推論服務執行開放權重模型,也開始讓 GitHub Copilot 的審查機器人重新檢查推送的工作。他會打字,不會口述;雖然已在 Omarchy 安裝 VoxType,但認為語音只適合短指令。他訂閱兩個 Claude Max 方案,因為一個方案不夠用。

他現在開始突破互動式工作的限制:AmaBot 是一套排程執行的自主系統,負責處理 Omarchy 的待辦事項、PR 與 issue,並每天寄給他一份需要合併或關閉的項目清單。架構採用 Tobi Lütke 的「大腦與雙手」分工——模型在 VM 之外執行,而不受信任的 PR 程式碼則在 VM 中執行(Agentic Prompt Injection)。

利益衝突#

有三項,而且與他多數說法都相關:

  1. **他引用的是自己維護專案的數據。**所有 Omarchy 數據——PR 數量、外掛數量、安裝時間、下載次數——都是他在宣傳前幾天才發布的新版本時,對自家專案提出的自述數據。
  2. 他正在販售 Linux 發行版的理念。「Linux 因代理程式喜愛而贏得桌面市場」既是分析,也是他產品的定位;他還在節目中送給主持人一台預載 Omarchy 的 Dell 筆電,並與 Dell 合作開發硬體。
  3. **他的公開形象建立在唱反調上。**他自己也這麼說——「我就是喜歡爭論很久」——而且本文有幾項說法以極具挑釁性的方式表達(「大多數程式設計師都很爛」),而這種表達方式也正是該節目所偏好的。

這些因素都不代表他的主張有誤;但它們意味著這些內容屬於 practitioner-opinion,絕不應凌駕於經過測量的來源之上。

相關連結#

§ end
Cited by 29
Related articles
  • Verification as the New Bottleneck

    Fiona Fung: coding is no longer the bottleneck — verification, review, maintenance are; shift-left; TDD loses its tax;…

  • Claude Code

    Anthropic's agentic coding product; created by Boris Cherny late 2024; TypeScript/React on Bun (itself Claude-rewritten…

  • Agentic Technical Debt

    Debt that *compounds* (not just accumulates) because each agentic-coding session re-derives architectural decisions wit…

  • Loop Engineering

    Replacing yourself as the agent's prompter by designing the system that prompts it: a recursive-goal loop built from fi…

  • Vibe Coding vs. Agentic Engineering

    Vibe coding raises the floor (anyone builds); agentic engineering preserves the quality bar while going faster; ">10x a…