Grady Booch 為什麼說 Dario Amodei「大錯特錯」:寫程式不等於軟體工程

UML 共同創造者 Grady Booch 系統性反駁 Anthropic 執行長 Dario Amodei「12 個月內自動化軟體工程」的預測,認為 Amodei 根本搞混了寫程式和軟體工程。AI 工具的本質是編譯器式的抽象層躍升,不是工程師的替代品。

Grady Booch 為什麼說 Dario Amodei「大錯特錯」:寫程式不等於軟體工程

本文整理自《The Pragmatic Engineer》2026 年 2 月播出的單集。

{{< youtube OfMAtaocvJw >}}

{{< spotify "episode/2ilPuZvpudECHieL0sqnzT" >}}

{{< apple-podcast "tw/podcast/the-pragmatic-engineer/id1769051199?i=1000748247375" >}}


Anthropic 執行長 Dario Amodei 在達沃斯論壇上說了一句讓很多開發者睡不好覺的話:軟體工程將在 12 個月內被自動化。這不是他第一次做這種預測。大約一年前,他說 AI 將生成 90% 的程式碼,當時很多人覺得荒謬,結果他大致上說對了。所以當他把賭注從「寫程式」升級到「軟體工程」時,恐慌是可以理解的。

但 UML 共同創造者、前 IBM Fellow 格雷迪.布區(Grady Booch)不買帳。他在 The Pragmatic Engineer 的訪談中,用了一個自稱「科學術語」的詞來形容 Amodei 的說法:utter nonsense(徹底的胡說八道)。接下來的半小時裡,他用七十年的軟體工程歷史,系統性地拆解了這個預測。

根本問題:Amodei 搞混了寫程式和軟體工程

Booch 的反駁從定義開始。在他看來,軟體工程從來就不等於寫程式。寫程式只是軟體工程師使用的工具之一,就像錘子是木匠使用的工具之一,但木匠的工作不是「揮錘子」。

軟體工程的核心是平衡四種力量:技術約束(物理定律、演算法限制、硬體瓶頸)、經濟力量(成本、市場時機、商業模型)、人的因素(團隊組織、溝通、使用者需求),以及倫理考量(我能追蹤你每天的位置,但我應該這麼做嗎?)。這些決策問題,沒有任何一個 AI 工具在觸碰。

Booch 舉了一個很直觀的例子來說明這一點。理想的軟體團隊規模是零人,因為人越多溝通成本越高。但這不切實際,所以退而求其次是一個人,然後從那裡開始成長。當一個系統的規模和社會重要性大到一定程度,比如航空控制、金融基礎設施、醫療系統,你不可能靠一個人完成,也不可能靠 AI 自動生成。因為這些系統必須持續存在,必須被維護,必須隨著技術和法規環境的變化而演進。這些決策需要判斷力,而判斷力恰恰是 AI 做不到的。

歷史證據:每次恐慌都是同一齣戲

Booch 之所以能這麼篤定,是因為他親眼看過同樣的戲碼上演了至少兩次。

第一次是 1950 年代,Grace Hopper 提出可以把軟體從硬體中分離出來的想法。當時建造早期電腦的工程師們非常擔憂,認為脫離機器就不可能寫出高效的程式碼。後來第一批編譯器出現了,同樣的擔憂再次浮現:「我們手寫的組合語言比任何機器生成的都好,編譯器永遠追不上。」這個論點被 FORTRAN 證明是錯的。

第二次是物件導向程式設計興起的時候。寫流程導向程式碼的人擔心自己的技能會過時。結果呢?整個產業不是萎縮了,而是爆炸性地擴張。因為物件導向讓人能處理更複雜的系統,更複雜的系統創造了更多的需求,更多的需求吸引了更多的人進入這個領域。

Booch 認為 AI 時代正在上演完全相同的劇本。每次抽象層躍升,都有一群人覺得天要塌了。但歷史的答案一直是:天沒有塌,只是天花板變高了,房間變大了,能住進來的人變多了。

AI 做的事情和編譯器本質上一樣

Booch 對 AI 編碼工具的定位非常精確:它們是新一代的編譯器。編譯器把高階語言翻譯成機器碼,AI 工具把自然語言翻譯成程式碼。兩者在邏輯結構上是同一件事,只是抽象層不同。

他自己就是 Claude 的重度使用者,拿它來解決 JavaScript、Swift、PHP 和 Python 的問題。他說 Claude 比 Google 搜尋好用太多了,尤其是在查函式庫文件的時候。但他也馬上補充:他之所以能有效使用這些工具,是因為他有幾十年的基礎知識在背後支撐。當 Claude 給出一段程式碼時,他能判斷對不對、好不好、有沒有隱含的問題。一個完全依賴 AI 的初學者做不到這一點。

這就是 Booch 反駁 Amodei 的第二個論點:AI 工具主要在自動化那些已經被做過千百次的模式。如果你要在 CRUD 上面搭一個 Web UI,AI 工具非常好用,因為這個模式被訓練資料涵蓋了無數次。但 Booch 借用了莎士比亞《哈姆雷特》的句式說了一句話:計算世界裡還有太多太多東西,是 Dario 的哲學裡想像不到的。Web 中心的模式自動化只是整個軟體世界的一個子集。嵌入式系統、即時控制系統、分散式高可靠度系統、軍事系統,這些領域的問題結構完全不同,現有的 AI 工具幾乎沒有觸及。

Amodei 為什麼要這樣說?

Booch 對 Amodei 的動機判斷也很直接:這是投資人關係操作。Amodei 領導一家需要籌資的公司,他需要對利害關係人講出夠大膽的故事。在達沃斯這種場合,「12 個月自動化軟體工程」比「我們在持續改善程式碼生成品質」震撼得多。Booch 不是在質疑 Amodei 的智慧或 Anthropic 的技術,他是在指出 Amodei 的說法混淆了行銷敘事和技術現實。

這個判斷其實很重要。因為如果你把 CEO 在公開場合的說法當成技術預測來看待,你會做出錯誤的職涯決策。Amodei 說的「軟體工程將被自動化」,和一個資深軟體架構師說的「軟體工程將被自動化」,所承載的意涵完全不同。前者是市場訊號,後者才是技術判斷。

焦慮的真正解藥:基礎知識

Booch 對感到焦慮的開發者有一個很明確的訊息:專注於基礎。演算法、資料結構、系統設計、理解塑造軟體的各種力量,這些技能在每一次抽象層躍升中都存活了下來。1950 年代掌握這些基礎的人,在編譯器出現後變得更強。1980 年代掌握這些基礎的人,在物件導向出現後變得更強。同樣的邏輯適用於 AI 時代。

他用自己的經驗做了最好的示範。他不是在抗拒 AI 工具,他每天都在用。但他能用得好,正是因為幾十年累積的基礎知識讓他能判斷 AI 的輸出。這是一個不可跳過的環節。如果你今天完全依賴 AI 來寫程式,不去理解底層在做什麼,那你就像一個不懂力學的人在用計算機算結構強度:數字可能是對的,但你沒有能力判斷什麼時候它會出錯。

我的觀察:分辨市場訊號和技術現實

Booch 和 Amodei 這場隔空辯論,對臺灣的軟體工程師有一個很實際的啟示:學會分辨市場訊號和技術現實。

AI 公司的 CEO 說「軟體工程將被自動化」,和一個親歷七十年軟體演化的工程大師說「你的工具在變,你的問題沒變」,這兩句話指向的是完全不同的真相。前者需要你的注意力來換取投資信心,後者需要你的理解力來做出正確的職涯決策。

最弔詭的是,Booch 本人就是 Anthropic 產品的忠實用戶。他不是在否認 AI 工具的價值。他否認的是那個把「寫程式」等同於「軟體工程」、然後宣稱後者即將被自動化的推論鏈。如果你把這兩件事分開看,AI 很擅長自動化已知模式的程式碼生成,但軟體工程中真正困難的部分(判斷、取捨、架構決策、倫理考量)依然需要人,那你的焦慮就有了明確的出口。

不是停止使用 AI 工具,而是在使用它們的同時,投資在那些 AI 做不到的事情上。Booch 已經 73 歲了,依然在用 Claude 學新的 JavaScript 函式庫。如果一個見證了整個軟體工程史的人都還在學習和適應,我們有什麼理由恐慌?