軟體工程的三個黃金時代:從打孔卡到自然語言,Grady Booch 的七十年座標系

UML 共同創造者 Grady Booch 在 The Pragmatic Engineer 節目中提出軟體工程「三個黃金時代」的框架:算法抽象、物件導向、AI 自然語言。每次抽象層的躍升都伴隨恐慌,但歷史證明產業只會擴張,不會萎縮。

軟體工程的三個黃金時代:從打孔卡到自然語言,Grady Booch 的七十年座標系

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

{{< youtube OfMAtaocvJw >}}

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

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


七十年前,「軟體」這個詞還不存在。如果你把整個電腦發展史壓縮成卡爾.乍根的「宇宙年曆」,軟體工程大概只佔最後幾奈秒。但就在這眨眼之間,我們從插線板上的 ENIAC 走到了用自然語言生成程式碼的 AI 時代。

UML 共同創造者、前 IBM Fellow 格雷迪.布區(Grady Booch)在 The Pragmatic Engineer 的訪談中,為這段極速演化提供了一個清晰的座標系:三個黃金時代,每個時代由一次抽象層的躍升定義。這不只是歷史回顧,而是一面鏡子,讓我們看見當前 AI 浪潮在歷史長河中的真實位置。

第一黃金時代:當軟體從硬體中剝離

Booch 把第一個黃金時代定位在 1940 年代末到 1970 年代末。在這之前,軟體和硬體根本無法區分。ENIAC 的「程式設計」是把插頭插進插線板,硬要說這是寫程式的話,那插線板就是你的 IDE。真正的轉折點出現在 IBM 決定建立一套跨機器的共通指令架構:軟體投資終於可以在硬體換代後保留下來。這既是工程決策,也是商業決策,更是經濟決策。一旦這個門被打開,軟體需求就像洪水一樣湧入。

這個時代的核心抽象是「演算法」。世界被看成流程和函數,資料只是等待被處理的原始湖泊。FORTRAN 做的事情正如其名:公式翻譯(Formula Translation)。當時的軟體主要服務兩個場景:數學計算和商業流程自動化。整棟辦公大樓的會計人員、薪資處理員,被一台機器取代,因為機器更快也更準確。

但 Booch 特別強調,真正的創新不在中心,而在「邊緣」。冷戰是推動力。美國半自動防空系統 SAGE 在 1950 到 60 年代消耗了全美 20% 到 30% 的軟體開發者。當時全美可能只有幾萬名開發者,而這一個軍事專案就吃掉了三分之一。費爾柴德半導體的第一個客戶是空軍,買的是導彈用的電晶體。矽谷早期生產的電晶體幾乎全部流向了冷戰計畫。Booch 用了一個令人難忘的說法:現代計算在很大程度上是「編織在悲傷的織布機上的」(woven upon the loom of sorrow),引用了賈卡爾提花織布機的意象。網際網路、微型化、積體電路,這些我們今天視為理所當然的東西,根基都來自國防經費。

這個時代在 1970 年代末出現了裂痕。北約的軟體工程研討會第一次公開承認了「軟體危機」:軟體太貴、太慢、品質太差,而需求永遠填不滿。美國軍方清點了一下,發現自己竟然在使用超過一萬四千種不同的程式語言。

第二黃金時代:物件導向與個人電腦的完美風暴

第二個黃金時代從 1980 年代持續到 2000 年代初。它不是某個單一事件觸發的,而是三股力量的匯流:物件導向程式設計理論的成熟、微型化帶來的個人電腦革命,以及分散式系統的需求拉力。

理論端的故事要從 Simula 說起。這是第一個物件導向語言,Bjarne Stroustrup 從中汲取靈感創造了 C++。而在學術圈,David Parnas 提出了「資訊隱藏」(information hiding)的概念,抽象資料類型也在同一時期成型。這些思想共同構成了一個新的觀看世界的方式:不再只是演算法和流程,而是物件和類別。Booch 指出,這個分岐可以追溯到柏拉圖的對話錄,兩個人爭論到底該透過「流程」還是「事物」來理解世界。原子(atom)這個詞本身就來自希臘語。所以用物件來做抽象,不是什麼新發明,只是終於被應用到了軟體上。

硬體端的故事同樣精彩。微型化讓個人電腦成為可能,而 Booch 特別提到一個有趣的文化面向:PC 的興起與嬉皮反文化運動有著千絲萬縷的關聯。Stewart Brand 和 The WELL(可能是史上第一個社群網路)、嬉皮的「權力歸還人民」精神,都在推動個人電腦的普及。有一本叫做《What the Dormouse Said》的書專門講述了這段歷史。當時矽谷的電子零件店讓任何人都能買到軍方淘汰的電晶體和積體電路來「玩」,而 Booch 強調「玩」在軟體歷史中扮演了至關重要的角色。

Booch 自己就是第二黃金時代的核心人物之一。他當時在范登堡空軍基地(Vandenberg Air Force Base)從事飛彈和太空系統的開發,每週能看到兩次火箭發射。後來他和 Ivar Jacobson、Jim Rumbaugh 一起成為了「三劍客」(three amigos),把各自競爭的物件導向符號系統統一成了 UML。他坦承這個時代犯過的錯誤,比如過度強調繼承(inheritance),但整體而言,物件和類別的範式證明了它對管理軟體複雜度極為有效。

這個時代還催生了平台經濟的雛形。從 IBM SHARE(第一個使用者主導的軟體共享社群,某種意義上的最早期開源),到服務導向架構(SOA)、SOAP 協定,再到 AWS 和 Salesforce 這類被「護城河」保護的「經濟城堡」,軟體不再只是工具,而是滲透進了文明的每一個縫隙。

第三黃金時代:AI 把抽象層推到了自然語言

Booch 認為第三黃金時代其實從千禧年之交就已經開始了,並不是 ChatGPT 出現後才啟動的。第一個信號是抽象層再次躍升:從個別的程式元件到完整的函式庫和平台。你不再自己寫訊息傳遞系統,而是呼叫一個現成的函式庫。你不再自己管資料,而是用 Hadoop 之類的工具。

AI 編碼工具在這個脈絡下就很容易理解了。Cursor、ChatGPT 這類工具,本質上是在加速已有函式庫和模式的使用。大多數開發者不知道所有可用的函式庫,AI 幫你在正確的時機找到並使用它們。這和編譯器做的事情在邏輯上是一致的:把人類表達的較高層意圖,翻譯成機器能執行的較低層指令。

但 Booch 特別強調,真正的新東西是抽象層從程式碼跳到了自然語言和意圖。過去你對程式設計師說「我要一個會員管理系統」,他幫你翻譯成程式碼。現在你對 AI 說同樣的話,它直接生成程式碼。這是一次質的跳躍,就像從組合語言跳到高階語言那麼大。而每一次這樣的跳躍,都觸發了同樣的恐慌:「我們是不是要失業了?」

歷史的答案一直是:不會。編譯器出現時,組合語言程式設計師沒有消失,反而釋放出了更多人來解決更高階的問題。物件導向出現時,寫流程圖的人沒有消失,只是問題的規模變得更大了。Booch 堅信,AI 時代也是同樣的邏輯。產業會擴張,不會萎縮。新的人會進來,新的問題會出現,新的角色會被創造。

我的觀察:這個框架對臺灣工程師意味著什麼

Booch 的「三個黃金時代」框架最有價值的地方,不是它的歷史敘事,而是它揭示的結構性規律:每次抽象層躍升,舊的技能不會消失,而是被吸收進新的基礎設施,成為「我們呼吸的空氣」。今天沒有人會說「我擅長演算法抽象」,因為這已經是所有工程師的基本素養。同樣的事情正在發生在物件導向上,未來也會發生在 AI 輔助開發上。

對臺灣的軟體工程師來說,這個框架提供了一個冷靜的參照點。當你看到 AI 工具生成程式碼的速度越來越快,焦慮是正常的。但如果你用 Booch 的座標系來看,AI 做的事情和編譯器在本質上沒有不同:把較高層的人類意圖翻譯成較低層的機器指令。真正無法被自動化的,是理解需求、平衡取捨、做出判斷這些工程決策。這些東西在第一個黃金時代就存在了,七十年後依然是軟體工程的核心。

Booch 說得好:工具在變,問題沒變。如果你只會用工具,那每次工具換代你都會恐慌。但如果你理解問題本身的結構,那新工具只會讓你更強大。