![]()
編譯 | 核子可樂
策劃 | Tina
AI 編程助手承諾提升速度,但也幾乎必然對質量、信任與架構師的工作方式造成影響。在本播客中,InfoQ 與 Gardy Booch 探討了當機器與人類共同編寫代碼時,架構應當如何進化的原則性議題。討論中剖析了軟件工程的第三個黃金時代:生產力提升的真實價值與潛在風險所在,以及架構師應如何設計審查機制與實踐,從而保障軟件項目的長期完整性。
基于數十載的軟件工程實踐經驗,此番探討超越了炒作的表象,深入剖析了 AI 增強時代下哪些職責應由人類堅守,也闡明了為何架構判斷、責任擔當與創造性思維在當下比以往任何時候都更加重要。
內容摘要
我們已身處軟件開發的第三個黃金時代,AI 只是其中的組成部分、而非驅動因素。行業正從算法時代邁向對象時代,繼而進入平臺時代與系統全球分布的時代。AI 工具作為抽象層被嵌入平臺的時代,加速了架構師對非完全可控系統的組合與編排探索。
盡管設計流程已經實現自動化,架構決策的轉換成本依然高昂。AI 雖能快速生成設計方案、模式與代碼,但架構本質上仍是一整套涉及長期成本決策、彈性與進化選擇的復合體。這些決策仍離不開人類在權衡、約束條件與風險因素層面的判斷。
AI 通過提升抽象化程度以增強杠桿作用,而非取代人類思考。與當初的編譯器類似,大語言模型同樣將底層工作轉交給機器,幫助人類在更高的概念層上工作。真正的收益仍源自經驗豐富的從業者對輸出結果進行指導、質疑與驗證,而非粗暴將 AI 模式奉為圭臬。
最大風險在于技能退化、思維趨同與虛假自信。大語言模型往往在潛移默化中令開發團隊更傾向常見的安全模式,侵蝕初級工程師的成長路徑。對 AI 的過度依賴還會制造正確性幻覺,忽略了 AI 開發體系正愈發平庸、在新興場景中往往失效。
AI 增強工程中,人類責任絕不可動搖。當 AI 生成或審查代碼時,質量、安全與結果的責任仍由人類架構師與工程師承擔。我們必須保持清醒、劃定清晰邊界,主動承擔責任而非躲在工具背后。
1 第三個黃金時代并非始于 ChatGPT 的崛起
Shweta Vohra:今天我們將開啟一個全新的播客系列。這個系列想討論的是,在 AI 時代,架構師如何重新思考設計方法、平臺架構、API 體系,甚至整個交付模式。我們的目標不只是談趨勢,更希望把這些討論變成對從業者真正有幫助的實踐性指導,幫助大家把這些洞見落實到自己的架構設計和領導力實踐中。也正因為如此,我們今天特別邀請到了 Grady Booch。
今天我們想探討的是,在 AI 工具不斷進入軟件開發流程的今天,軟件架構是否依然像過去那樣重要?我們是否正從“軟件架構”走向某種新的“AI 架構”?作為 IBM 院士兼首席科學家,Grady 在這個領域有著極其深厚的積累,我也很期待聽聽他會如何理解這些變化。
很多人可能并不知道,Grady 還是 UML 的聯合創始人。就我個人而言,我幾乎是從 UML 開始進入這個領域的。當我們最初開始理解“什么是設計、如何組織系統結構、又該如何把這些設計真正表達出來”時,Grady,你其實塑造了幾代人對軟件架構的理解,甚至可以說影響了軟件架構演進的一個個世代。那么當我們再回頭看今天這個 AI 輔助開發的時代,哪些東西依然是真實成立的?又有哪些地方,會讓你覺得歷史正在以某種方式重演?
Grady Booch:“世代”這個詞真是讓我頗有感觸。要完整回答這個問題,我們可能得穿越時光,聊聊軟件架構的整個世代更迭。目前我們正處于第三個世代,也是軟件架構的第三個黃金時代。
第一個黃金時代可以追溯到上世紀四十、五十和六十年代。當時我們正嘗試將軟件和硬件區分開來——以往編程時需要直接操作硬件,之后則逐步轉向高級編程語言。Grace Hopper 等先驅者在這個過程中發揮了關鍵作用。這批致力于構建軟件產業的人們,在六十年代迎來了事業上的全面開花——IBM 最終決定將軟件與硬件解耦,軟件由此成立獨立存在的實體產業。
現在回想起來,我們軟件產業還真是蠻年輕的。薩根曾經把整個宇宙誕生的歷程濃縮成今年一月一號到現在的過程,如果把計算發展史也同樣這樣看待,那我們只處于最后的 250 毫秒當中——也就是瞬息之間。如此浩瀚的文明進程居然濃縮于此,而深入這 250 毫秒,我們會發現連“軟件”這個概念也是 1950 年代才誕生的術語。軟件工程是由 Margaret Hamilton 于六十年代提出,那會我才剛剛出生。可見如今的輝煌成就,不過產生于兩、三代人之間。但它已經將我們帶向了驚人的高度,并在短短歲月間憑借創造的成果徹底改變了人類的文明形態。
回溯第一個世代,不知道大家了不了解當時的困境:大型機占據主流,且硬件造價甚至高于人力成本。因此那時候軟件工程的大量實踐,都是在優化計算機經濟性、而非滿足人性化需求。由于計算機的運行時間極其昂貴,大量工作需要在離線狀態下完成,所以前期準備工作尤為重要——這正是瀑布開發模式最擅長的形式,因為前期投入成本更低。當然,如果想在前期修復錯誤,代價也相當高昂。
正是在計算機的第一個黃金時代,結構化分析的理念應運而生。這也完全合乎邏輯,畢竟軟件工程面臨的核心挑戰就在于規模問題。此前我們從來沒經歷過這樣的轉變,這種從自動處理單一數學功能的小型獨立程序到構建大規模系統,所以大家都沒有經驗。人類在面對這些問題時,解決思路肯定是抽象化。在早期計算機中,算法就是核心抽象單元,因此第一個黃金時代聚焦于算法拆分,也由此催生出 FORTRAN、COBOL、C 等語言及其衍生體系。
到了七、八十年代,世界開始改變——微型計算機開始異軍突起。人們可以在個人設備上編程,分布式系統也由此嶄露頭角。之所以說“嶄露”,是因為其真正開端源自冷戰背景下的 SAGE(半自動地面環境)系統,相當于美國對于蘇聯軍事威脅的戰略回應。因此在七十年代前后,我們再次見證軟件處理方式新的變革萌芽期——同樣是一場根本性的顛覆。
這種變革不僅體現在單臺計算機的復雜性提升,更標志著軟件行業向著分布式系統的整體邁進——當然,這還只是互聯網誕生的前夜。不知道大家還記不記得,自己的第一個電子郵箱是什么時候注冊的。我敢說我應該是最早的:1979 年,我在 ARPANET 上注冊了首個郵箱。當時甚至還有一本專門的小冊子,收錄了全球所有用戶的郵箱地址。我恰好親歷了這項偉大發明的萌芽階段。值得注意的是,當時分布式系統的研發并非源于工業領域或者商業部門,而是由軍事系統驅動的軟件工程創新。
于是整整一代人開始面臨軟件工程能力的嚴峻考驗,好在研究領域涌現出諸多驚艷的突破:David Parnas 提出的信息隱藏理念、Simula 語言倡導的“通過類、而非算法來觀察世界”的視角,以及抽象數據類型的構想等等。這些理念匯聚成一股力量,推動美國國防部開發出名為 Ada 的編程語言——嘗試用一種統御所有語言的通用語言,以解決當時的軟件危機。“軟件危機”這詞可不是我造的,它源自五十年代末的北約會議。當時人們意識到軟件需求激增,但開發速度卻嚴重滯后,由此引發了軟件供應危機。
必須承認,我自己恰逢變革浪潮的中心,所以很幸運地獲得了實踐機會。我汲取了納帕斯關于抽象內型的理論,意識到這能引領我們以全新視角思考編程——即面向對象的規劃設計,而不再是結構化設計。由此,我們步入了軟件工程的第二個黃金時代。
我認為咱們正處于軟件工程的第三個黃金時代,而且不是從今年才開始的,甚至并非始于 ChatGPT 的崛起。這波浪潮大約是從十年產隨著平臺的興起而誕生——因為當軟件系統日益龐大時,我們再次看到了變革的跡象,而其中的關鍵就在于“系統”二字。現在不再是孤立程序的時代了,而且標志物不僅是分布式系統本身,而是一個個彼此交互的分布式系統體系——而我們對其他系統毫無控制權。正如 David Deutsch 所言,“何為分布式系統?”即一旦某臺我們甚至不知道它存在的計算機崩潰時,我們自己的系統也會受到影響。這,才是真正的分布式系統。
似乎一夜之間,我們突然置身于真正的全球規模系統當中,也由此見證了技術浪潮的興起。我們有了算法抽象、對象抽象,如今更要應對完整的平臺體系——架構師的核心職責就是將這些元素編排、融合起來。比如需要消息傳遞功能,那就用這個庫;需要授權機制,沒必要親自編寫,直接調用某項 SaaS 服務。架構師們的職責突然變成了如何編排這些東西,這就是我們身處的當今時代。
只不過在這個過程中,我們恰巧碰上了 Claude 等工具的興起。順帶一提,Claude 也是我首選的 AI 輔助開發工具。這些工具構成了第三次黃金時代的氛圍和基調,我們也已經身處其中。這恰恰定位了 AI 的發展態勢,成為當下新趨勢的組成部分。其他行業也存在類似的現象,不過這里我們暫且打住,稍后再展開討論。
Shweta Vohra:沒錯。想到整個軟件產業正邁向第三個黃金時代,我整個人都振奮起來了。但我想先重點討論您特別提到的一個觀點,也是我認為軟件行業的架構師和創作者必須理解的:您早在 1979 年就理解了電子郵件的意義,但這項技術真正被大眾接觸可能要到 2000 年左右。如你所說,AI 的發展同樣起步很早,而我們當下所見的其實是多年艱苦耕耘的結晶。正是這些努力,最終讓構想成為了現實。
2 AI 應用的本質是人類跟機器之間協同工作
Shweta Vohra: 這就引出了個經常困擾開發團隊的議題——如何區分架構與設計。我知道這個話題您已經聊過很多次了。在 AI 時代,設計能不能流水線化?您覺得哪怕工具再怎么演進,架構還是會承擔哪些核心職責?方便的話,您可以先聊聊“架構與設計的本質區別”的問題,再結合當今的 AI 工具等技術進行解讀。
Grady Booch:這個問題提得很好,在回答之前需要厘清兩點。第一:架構與設計有什么本質區別?第二:在設計與架構當中,創造力分別如何體現?我對此有個簡單觀察,當然只是個人的定義:一切架構都屬于設計,但并不是所有設計都屬于架構。架構代表著塑造系統形態與功能的一系列重大設計決策,而是否“重大”的衡量標準在于變更成本。
架構是更高的抽象層級,也對應著設計本身。事實上,設計之下還有更基礎的層面,即慣例。比如“變量如何命名?”這類常見的模式,其本質上仍然是選擇,而設計始終是選擇的過程。如同工程師、設計師和程序員,在本質上都屬于工程師。之所以有資格自稱工程師,是因為我們致力于構建具有最優合理價值的系統,以抵御靜態與動態的雙重壓力。
假設我是結構工程師,或者是像 Frank Gehry 那樣的建筑師,當客戶提出“我們要造一棟摩天大樓”時,需要考慮的就有靜態荷載、地震等靜態與動態因素。建筑物需要承重,地震偶爾會發生,人員也隨時進進出出。還有動態荷載,比如風力作用等等。這些都是土木工程領域的建筑師們最關注的核心問題。
工程師們還需要顧慮其他要素:美學考量、成本控制、進度管理、系統可維護性等等。軟件工程師們同樣面臨這些挑戰,但我們所處的物理環境截然不同——軟件本質上是極具可逆性的流動元素,我們純粹憑思想就能構建系統。設計的核心始終是選擇,底層是編程范式,再上一層則是設計模式等抽象概念。我們需要實現用戶與數據間的職責分離,因此創造了 CRUD 模型——“后端處理數據操作,前端負責界面交互”。實踐經驗已經不斷驗證了這種職責分離的必要性,這些也都屬于設計范疇。
我們這個領域最精彩的地方,在于設計空間的廣闊性,海量用例為我們帶來了無限可能。這為資深架構師、軟件工程師和開發者們提供了大放異彩的舞臺:憑借豐富的項目經驗和實踐積累,他們能夠洞察問題的本質,精準運用特定設計模式。
作為更高層次的抽象,架構的本質就是在提醒工程師們做出最關鍵的決策。比如決定“我要用 React,而非其他語言”——這就是架構決策,而且會造成相應的成本。決策之間也有層級差異,比如選擇“采用統計方法,而非經驗方法”,這既是設計選擇,也屬于架構范疇。由此可見,架構涵蓋了我們決策體系中的全部維度。
現在再聊聊創造力,也就是架構的第二重維度。人類的獨特之處,就在于我們擁有創造力。那創造力究竟是什么?在 AlphaGo 擊敗全球頂尖圍棋選手的比賽中,有位韓國棋手被這場對決徹底震撼,并感慨道“我仿佛在此刻見到了天神的面容,因為 AlphaGo 走出了無人預料的棋步。”創造力也是如此,試想某個空間的景觀——比如說我們身處三維空間,我正漫步于鄉野,探訪山谷中的那座山丘。人類的圍棋、歷史、傳統乃至體驗層面,總會踏上相似的路徑。關鍵在于,AlphaGo 并不受傳統歷史的束縛,它能從另一維度抽身審視整片曠野。它能探索更廣闊的狀態空間,憑借海量計算能力進行搜索——這與人類截然不同。
這算創造力嗎?嚴格來講不算。它只是在更廣闊的空間中快速探索,但未必能稱為創造力——因為創造力意味著在需求、渴望、欲望、情感等語境當中,將意料之外的事物組合起來。我們的 AI 還做不到這一點。它們只是卓越的搜索引擎,擅長處理大語言模型,堪稱出色的、但完全不可靠的斜杠者。坦白講,大模型本質上就是規模化的胡扯生成器——但人類創造力的核心機制,我們至今還是沒搞清楚。
到這里,我們已經剖析了兩大核心要素。現在回到 AI 的實際應用場景。我自己常用 Claude 處理 JS 項目,同時還負責 Swift、PHP 和 C++ 等其他項目。于我而言,AI 就像一位充滿熱情、不知疲倦的實習生——從不睡覺、天真無邪,但因為缺乏創造力而需要持續指導。我可以明確告訴它做什么、處理哪些任務,并收到完美的結果。整個過程我自己不需要投入多少時間成本,而且正確率相當之高——可 AI 本身并不知道。實際上,AI 就不存在“自己”這個概念,畢竟它并非擬人化的存在,我也不愿意把它擬人化。它真正擅長的是自動化,所以 AI 應用的本質就是我這個人類跟機器之間協同工作。
這種模式對我這類用戶效果極佳——我沒法代表其他人發言,只能說我自己在系統構建領域經驗豐富,深諳各類設計模式與架構模式,也懂得從代碼中發現問題。我能精準判斷代碼是否存在隱患,但持續運轉的大語言模型就不具備這些認知,更缺乏上下文理解能力。因此我很樂意將一部分任務委托給它,再隨后進行核查——就像里根總統在冷戰期間所言:“信任,但需要核實。”
從輔助工具的角度審視,可以這樣對 AI 做出總結:我對軟件領域內的 AI 發展毫不畏懼,甚至為之欣喜,因為它解放了我——代勞了我本須親力親為的工作。但同時,它絕不會取代我的工作,因為 AI 在能力上存在根本性局限。
Shweta Vohra: 最近以來,我開始盡量避免將軟件架構類比為“建筑”,因為人們常將兩者混淆,導致思維僵化。其實 AI 領域充滿動態變化,結構永無定態——絕不能說架構建成后,所有決策便已塵埃落定。它始終處于演進之中,如今變化速度更是遠甚以往。但你剛才的闡釋方式,特別是把 Claude 當作實習生的比喻,確實為創造力提供了絕佳的視角。那是不是可以這樣說——這也是我一直在向軟件和 AI 架構師們強調的觀點:我們總以為是工具在變,卻忽視了工具對于自身判斷力的侵蝕,最終難以清晰闡述真正發生的變化。真正的變革在于:我們應當成為優秀的主人,而非優秀的奴隸。
Grady Booch:恕我直言,我更傾向避免使用這些充滿情感與歷史包袱的術語。我更愿將自身視為導演,而舞臺上的演員正是我們執導的對象。順帶一提,這種定位隱含著某種失控感——作為導演,我不可能、也不打算事無巨細地干預,但希望被指導者擁有自主權和自由度。這就引出了關于 AI 智能體的討論,稍后我們還會涉及。
不過在繼續之前,我想提出一個有趣的類比——你提到了土木工程等領域。雖然因為指向對象的物理特性差異巨大,將兩個領域相提并論的確既困難又危險,但我仍想重提 Frank Gehry。他設計的迪士尼音樂廳以流暢的曲線著稱,而這位建筑大師本身就是天才,但那些恢弘結構是如何誕生的?答案在于 AutoCAD 等工具。正是 AutoCAD 的出現,讓 Gehry 這樣的設計師得以大膽嘗試新形態。AutoCAD 讓設計師得以通過數學建模手段實驗新形態與新材料,在實體建造前完成驗證。因此工具并沒有取代建筑師的工作,反而釋放了新的創造力——他本人就是最好的寫照。
當前 AI 領域正上演著同樣的變革。或許有人會質疑:“可建筑業仍存在諸多弊端呀。”事實上,建筑業本身也擁有耐人尋味的歷史。那我們就得回溯至 Frank Gehry 出現之前的時代,畢竟他也屬于相對新銳的建筑師。讓我們回到建筑本身充滿爭議的年代。在軟件開發與軟件工程的萌芽期——特別是首個黃金時代,當時的系統多為整體式架構,主要采用匯編語言編寫。隨著復雜度激增,人類越來越難以掌控自己打造的系統。
于是 David Wheeler、Maurice Wilkes 和 Stanley Gill——我記得是這些人——在五十年代末開始沉思:“我們該如何看待這個問題?是否該將軟件拆解開來,而非直接面對冗長的代碼列表?要不要創造名為'子程序'的東西?”這些想法當時極具爭議。雖然如今這已是我們習以為常的思維方式,但當時他們提出需要這種機制,讓人類能夠在更高抽象層面上進行思考時,還是引發了很大爭議。這是因為當時調用子程序并返回需要額外執行若干機器指令。而對于僅需幾毫秒的操作而言,這確實代價高昂。但如今隨著計算機性能提升,分布式系統已實現突破。由此可見,那些看似爭議的架構決策,最終都將擺脫技術的桎梏。
3 為何“AI 架構”的本質,是如何用語言描述系統
Shweta Vohra: 現在我想把話題轉向 AI 架構。您之前提到創造力與大語言模型的關系——它們能為我們處理混合任務時,但卻并不具備真正的創造力。那么從您的視角看,遍布各處的 AI 架構究竟屬于全新的架構學科,還是軟件架構被迫應對新約束所產生的結果?您怎么看?
Grady Booch:我完全不懂所謂“AI 架構”,甚至就沒聽說過這個術語。它具體指什么?
Shweta Vohra: 指的就像您剛剛講過的,即運用 AI 建立軟件架構的新方式。它本質上表明 AI 正在重塑規則。這些設計規則具體是什么?對架構層面有何影響?它究竟屬于新興學科,還是既有學科衍生出的全新原則、規則與防護機制?
Grady Booch:字眼還是不能隨意使用,因為人們總是把各種概念混為一談,最終導致自己的表達中充斥著毫無意義的噪音。于我而言,“AI 架構”是個極其空洞的詞匯。我更愿意討論“由 AI 工具增強的架構”,這才是有實質性內涵的表述。
架構是永恒的。從古人用泥巴糊草屋的時代,到 Grank Gehry 創造的那些恢弘飛揚的建筑,我們始終見證著架構的演進。架構代表著一種高層次抽象的世界觀。軟件密集型系統亦是如此——哎呀,我又用了“軟件密集型”這個詞。其實不僅是軟件,更是由硬件、軟件、人員及社會共同構筑的系統——而架構師的職責正體現在此。
那么,AI 要如何融入其中?畢竟 AI 只是工具。事實上,我認為我們所見證的不過是抽象層次的新一輪躍升,這也代表著軟件架構與軟件工程長期發展的歷史軌跡。軟件工程史就是抽象層次不斷提升的歷程。早期我們主要致力于控制機器——差分機和 ENIAC 的誕生正是為此而生,旨在掌控機電或機械裝置。在更高抽象層級,我們試圖將高度抽象化的思維轉化為可操控的機器形式,由此誕生了匯編語言。匯編語言本身就比機器語言抽象度更高。
隨后我們又發明了高級編程語言,實現了又一次抽象躍升。我認為 AI 工具的興起,對軟件領域的影響將不亞于編譯器的誕生。這兩者都代表著抽象層次的提升,將大量原本需要人工處理的瑣碎事務下放給機器本身。編譯器為我們做了什么?在 Grace Hopper 那個時代,FORTRAN 發明之初也曾引發激烈爭議,但其核心理念是加速人類工作效率,將編譯事務推給機器處理。在 FORTRAN 和 COBOL 時代,困擾人們的仍是如何將數據最優分配到寄存器以提升速度。如今我們無需再為此煩惱,直接交給機器處理即可。
同樣的,當我需要修改軟件時,只需進行重構。由人掌控模式,機器可以代勞。我只需思考重構方案,讓機器執行具體操作。因此我們實現了更高層次的抽象。其意外后果(或許也是預料之中的結果)在于:我們并未減少代碼量,反而編寫了更多代碼——因為這使非專業人士能完成他們原本無法實現的任務。Visual Basic 興起時同樣如此。它讓非程序員也能完成驚人創舉,徹底革新了商業模式,但這并不改變架構本身的本質。
4 “Dario,計算機世界蘊藏的奧秘遠超你哲學所能想象”
Shweta Vohra: 基于您的觀點,我們來探討下一個話題。當前被低估的領域是什么?又有哪些被過度炒作或高估?
Grady Booch:先聊聊被過度炒作的部分吧,這個更簡單。如果你關注我的推文,就會發現我經常抨擊馬斯克、特曼等人,比如說:"天哪,你們瘋了吧?我知道你們需要經營企業,也知道你們在項目上虧得一塌糊涂,但請務實點。AGI 不只不會突然出現,以后也不可能實現。”我建議大家去看看我十多年前的 TED 演講,當時談到超級智能的崛起,我的反應是:“我不擔心這個問題”。
最近的事嘛,之前提到我用過 Claude、也非常喜歡,但我狠狠批評了 Anthropic 的 CEO 達里奧,因為這家伙在達沃斯論壇上說: “成果就在眼前,我們將用這些系統編寫所有軟件”。沒錯,就像編譯器能用匯編語言和機器語言編寫所有軟件那樣——但更高層次的編程遠不止于此,只能由人類來完成。
有幅很棒的漫畫,出自 xkcd,可謂一針見血地解答了這個問題。它這樣講:“當一種語言具備足夠的表達力和精確度,能夠生成可執行的產物時,你該稱之為什么?”我們稱之為編程語言。而提示詞不過是另一層抽象——比如“把這個重構為命令模式”。這不過是抽象層級的提升——我將人類層面的理解提升到更高維度,以供機器理解并且代為執行。這固然美妙,但 AI 絕不會取代人類,因為正是我這個富有創造力的人類在引導它實現目標。
我不懼怕超級智能的崛起,真正令我膽寒的是掌控這些系統、借此擴張權力的億萬富豪階層。這才是人類面臨的危機,而非軟件問題。
Shweta Vohra: 沒錯。許多問題的根都在人身上,對此我完全認同。但我想進一步探討: 若按你所說的責任劃分,即能將多少職責移交給硬件,我認為大語言模型已算得上取得了巨大進展。比如在創造力方面愈發符合我們的期望,且借此提升了工作效率,也讓大眾更容易獲取各種成果。我想我們應當給予這項技術應有的認可,而且它本身正在不斷進化。
Grady Booch:AI 的確已經滲透進大眾的日常生活,也由此衍生出各種倫理與法律問題,特別是在文本轉視頻和文本轉圖像領域。就在此刻,歐盟正因這類問題對 Grok 提起訴訟,可見其存在諸多意料之外的后果。
在軟件領域,我們受到的限制較少,因為被盜取的內容相對有限。大部分訓練數據源自 Stack Overflow 等平臺,其倫理性威脅確實值得商榷。開源軟件同樣存在爭議,但至少沒有直接竊取受版權保護的代碼,因此引發的風險也有所不同。
Shweta Vohra:確實如此,安全問題本身就是個值得深入探討的方向。
Grady Booch:沒錯,相當相當需要認真對待。
Shweta Vohra:但在深入探討前,我想聽聽您對另一個問題的看法。我們承諾將實現巨大的生產力提升。從微服務開始到云原生,如今又迎來 AI 編程輔助,智能編程技術正日益精進。您認為哪些領域能真正發揮優勢?又擔心哪些領域會為短期速度犧牲長期完整性?給大家講講吧。
Grady Booch:我先從后半部分說起。我最擔心的是技能退化現象。軟件行業本質上是學徒制行業,與法律行業頗為相似。過去要想成為律師,大家必須埋頭鉆研法律書籍直至精通,更需通過參與各類案件與前輩并肩作戰,汲取其戰略洞見——這些都是必修課。如今隨著 LexisNexis 等工具興起,法律檢索已演變為模式匹配問題。我認識的不少法律界朋友都憂心忡忡——初級從業者既無崗位可入職,更無成長空間,這正是技能退化的現實隱憂。
我擔心軟件行業也會出現同樣現象——由于越來越多的工作被交給大模型,初級崗位正逐漸消失殆盡。那么新生代該從何處積累經驗?對此我尚無答案,一切恐怕只能交給時間來驗證。
另一個現實又要回到 Dario 的話題了。我曾引用莎士比亞的話對他說:“Dario,計算機世界蘊藏的奧秘遠超你哲學所能想象”——這句話原是莎士比亞筆下霍雷肖的臺詞。我的觀點是:計算機世界的疆域遠比全球彈性規模的網絡中心化系統更為廣闊,而大多數大語言模型僅在這單一領域內訓練而成——雖也不算狹小,但未來此類模型將愈發泛濫,這意味著普遍性的平庸正成為新的常態。
大語言模型往往將我們推向同質化的設計方向。誠然,這類設計也是我們所需要的,能夠緩解之前提到的軟件危機,但卻無法解決兩個問題:無法應對意外情況,也不再嘗試截然不同的方法。大語言模型對此無能為力,因為這超出了它們的訓練數據范圍。其次,如果要構建基于最新云層與流體物理模型的氣象系統,那這些模型沒接受過相關訓練,超出其能力范圍,自然就無法提供幫助。雖然未來可能實現,但這類前沿領域始終存在,而專門為此訓練大語言模型在經濟上不可行,發展空間也將受到限制。
歸根結底:軟件世界浩瀚無垠,這些 AI 工具只是其中一環,既非唯一選擇,也絕非永恒之選。面對不斷涌現的技術選擇,人類需要持續思考:我們需要哪些工具?哪些才真正合適?對我而言,AI 僅僅是工具。我敦促開發者學習使用這些工具,但切勿看淡人的意義。不要將創造力拱手讓給工具,因為這正是我們的核心價值所在。
Shweta Vohra:我也強烈建議聽眾——特別是創造者、工程師和開發者——謹記這條忠告:切勿盲目跟風,務必深入理解工具的運作機制。因為當問題出現時,終須有人來修復。這又引出了下一個問題:人類與機器的邊界究竟在哪里?其原則又是什么?因為從架構師的視角出發,我總在思考:如今這些工具生成的內容如此龐雜,該由誰來評估它們?誰來真正劃定這些邊界?我們又該把邊界設在哪里?
Grady Booch:計算技術與人類本質的交匯處,正是值得深入思考的關鍵領域。對此我雖無定論,但目睹人類正面對前所未有的規模化、自動化浪潮,這個過程本身已然令人嘆為觀止。盡管沒有答案,但我仍有堅持遵循的原則:創造力必須被掌控在人類手中,而非 AI 手中。一旦我將創造力交予它們,便犯下致命錯誤——因為創造力本非 AI 的職能、它們缺乏語境。說到底,根本不存在所謂的“智能”,因為 AI 跟我們并不存在于同一個世界。
它們既沒有我們面臨的約束條件,也不具備我們所處的情境——在我有生之年,甚至在我們子女的時代都永遠無法具備。人類成長為如今形態的背景,遠比我們所見的一切更為廣闊。無論奧特曼拉來多少萬億美元的投資都無濟于事。大語言模型始終是架構上的死胡同——Yann LeCun 對此也有類似論斷——如今的 AI 產業正處于極其荒誕的迷茫期。
所以就這個問題,我的簡短回答是:"切勿泯滅人性。切勿泯滅創造力、獨特性與跳出框架思考的能力。"從架構層面看,我們深知基于大語言模型的系統存在根本性缺陷——它們無法進行推理。我知道這個觀點頗具爭議,但我堅持這一結論。大模型雖具備推演引擎和演繹引擎,卻缺乏歸納推理能力,即構建理論的能力。它們能進行概括,但這與理論構建截然不同。據我們所知,歸納推理目前僅存在于哺乳動物中。我之所以不限定于人類,是因為其他哺乳動物似乎也具備這種能力,例如鯨類、猿類等。但我們的大語言模型尚未掌握這項能力,這對整個人類種群的存續無疑是個好消息。
過去六年我在 IBM 任職期間,不僅在 AI 實驗室工作,還與神經科學家團隊合作。作為計算機科學家,我意識到自己對大腦的結構一無所知,因此過去六年致力于這一領域研究。大腦結構蘊含著驚人的美學,進化塑造的這種結構令人嘆服。那些宣稱“通用人工智能近在眼前”的人,其認知之天真令人咋舌——他們根本不理解人類大腦或有機大腦的運作機制,所以我根本不吃那套。
5 氛圍編程一上來,責任就沒人認了
Shweta Vohra: 我的核心認知是,架構設計如今比以往任何時候都更重要。過去我們可能依賴測試人員發現問題,或指望有人能在生產環境中及時修復——但如今代碼部署范圍如此廣泛,這種依賴已不可行。我們必須建立人類參與的閉環機制,制定指導原則與防護措施。這點我深表認同,我們需要就此展開更深入的討論。但我想強調一個核心問題:一旦 AI 生成代碼在生產環境中出現故障時,架構責任究竟該由誰承擔?
Grady Booch:人類。答案很簡單——責任在人,而非工具本身。這就像說“狗吃了我的作業本”,或者“是 AI 出錯了”,同樣沒有說服力。
Shweta Vohra:但產出的代碼并不是完全由架構師經手,那責任也要由我們承擔嗎?
Grady Booch:沒錯。IBM 的 Tom Watson 在五、六十年代就說過,機器永遠不該為錯誤負責。責任永遠在人,因為機器是受指令驅動的,最終責任必然回歸到下達指令的人類。我們深知在社會體系中,人類熱衷于推卸責任。人們總想擁有權力卻逃避責任,而 AI 領域很可能正走上這條老路。“我有權這么做,但要是出錯,都是 AI 干的。”胡說八道,都是人干的,勇敢點把責任擔起來吧。
Shweta Vohra:明白。我們需要承擔起責任,因為我們別無選擇……
Grady Booch:肯定呀。
Shweta Vohra:而且我們需要明確劃分這些邊界。但在氛圍編程領域,這種邊界模糊的問題仍廣泛存在,開發者自己、甚至是氛圍編程服務商都不清楚 AI 到底在干嘛。
Grady Booch:沒錯。這正是代碼錯誤產生的根源——當我進行氛圍編程時,總會感嘆“架構師們可真了不起”。因為他們擁有極其豐富的經驗和才華,深諳事物本質。能夠敏銳察覺代碼錯誤。相信大家都是如此,既會驚嘆"天哪,AI 生成的結果真神了,但這里還是有問題,可以從這個角度切入”。這正是我使用 Claude 這類工具時發現的妙處——它堪稱絕佳的結對程序員,但也是相當的不靠譜,犯錯永遠是家常便飯。它甚至無法意識到自己的錯誤,所以我必須時刻保持警惕,持續監督。一旦我放棄這份責任,當系統出錯時,責任便瞬間落到我頭上——不是機器的錯,是我自己搞砸了。
Shweta Vohra: 綜上所述,如果 AI 既負責代碼編寫、又負責代碼審查,那就意味著人類責任邊界的缺失。這可能正是我們需要填補的漏洞。
Grady Booch:沒錯。容我補充一點,這本質上關乎人類信任問題。此刻我的手機里運行著五款大語言模型,它們可以說是性格迥異——姑且用這個詞形容吧。我對它們的信任程度因工作領域而異,就像身邊的朋友圈子。和某人交談時,我期待他有這種能力、掌握那種知識,同時也清楚他存在某些認知盲區。
我身邊的這些工具也同樣如此。Claude 能完成堪稱驚艷的工作,卻也會做出令人抓狂的蠢事。因此作為人類,我對它們產生了某種“心理預期”,信任感也由此建立。
我建議讀者們這樣做:"積極熟悉這些工具,就像木匠把玩自己買的錘子那樣。不同的錘子總有細微的差別——份量不同、平衡點不同。要盡量習慣它、適應它、讓工具配合你,而且在過程中千萬別迷失了自己。"
Shweta Vohra:一點沒錯。換個視角來看,這也是個激動人心的時代,因為新事物總會帶來新的機遇和新的學習方式。
Grady Booch:沒錯。變革的時代同樣令人感到惶恐,畢竟在處于平穩期時沒人想突然遭遇劇變,不確定性與錯失恐懼癥會因此蔓延——這正是 Dario 和奧特曼這類人最令我不齒的地方。他們總在嚷嚷“你必須適應一切”。不,我沒必要。作為軟件工程師,我的首要目標是打造有價值的酷炫產品,工具只在能幫助我達成目標時才值得關注。
Shweta Vohra:是的,元宇宙炒作最厲害的那會,我發現你也一直在堅持自己的判斷。
Grady Booch:確實,那會簡直了……
Shweta Vohra: 這段往事咱們日后再細品吧。總之我想說的是,對于今天收聽播客的架構師們,你建議大家主動把握哪些 AI 機遇?更重要的是,哪怕工具能讓某些環節變得輕松,他們又該抵制哪種用法?
Grady Booch:古語有云:“通往數學的道路沒有捷徑”,架構設計同樣沒有捷徑。這需要親身體驗、反復嘗試,感受架構決策帶來的后果。別當那種“下達指令就走人”的空降式架構師,你必須直面決策的后果。因此我的建議是:盡情把玩這些工具,它們很有趣。學會使用它們,因為它們將成為未來軟件開發不可或缺的組成部分。
但同時,要精進架構師的本領。別只沉溺于特定領域的技術細節,去研讀跨領域的代碼,去讀讀 MacPaint 背后的原始代碼,去剖析 Unix 內核——我們了解到的一切架構方案,終將反哺自己所在領域的實踐。我所知曉的每一位頂尖作家,無不以閱讀為本。
我所知曉的每一位頂尖軟件架構師,不僅編寫代碼,更會研讀他人代碼——精進技能應該成為貫穿一生的習慣。
Shweta Vohra:我完全贊同你的看法——別只頂著個架構師的名頭,要真正為自己的建議和決策承擔起責任。
Grady Booch:沒錯。
Shweta Vohra:還要為團隊中的其他成員承擔起責任。
6 “人生苦短,去盡情享受生活”
Shweta Vohra: 這期節目我們討論了諸多議題,從架構、設計和責任角度剖析了現實與炒作間的差異,還涉及到生產力、速度、完整性以及人機協作關系。作為收尾,您還有其他想要補充的嗎?
Grady Booch:我覺得自己的人生經歷非常神奇。我曾與 Grace Hopper 會面,與 J. Presper Eckert 相識。雖不能與圖靈謀面,畢竟他去世時我還沒出生,但也有幸接觸過他的同事。我的職業生涯橫跨計算機領域的萌芽期直到如今,也從這些前輩身上汲取了豐厚的養分。我自認在某種程度上推動了整個領域的發展,也盡情享受這段旅程。計算機是片神奇的天地,對于觀看這期播客的朋友,我想說這既是殊榮、也是責任。殊榮在于我們每個人的工作都在改變世界,責任在于我們改變世界會造成后果。試問,還有哪個行業能夠如此深刻且迅猛地影響文明的本質?
所以我敦促每位從事軟件行業的朋友,請牢記這份使命。為我們從事的這份事業歡呼吧,大家正置身于文明變革的浪潮當中——這本身就是一份無上的榮光。
Shweta Vohra:完全同意。每當我媽興沖沖地告訴我她又學會用某項軟件功能,或者解決了某個問題時,我都由衷心生喜悅。
Grady Booch:這種感覺很神奇吧?
Shweta Vohra: 是啊,這種感覺超棒,讓我覺得咱們這群架構師確實做了實事,但也應該承擔更多責任。Grady,感謝您今天的分享、建議和指導。這期節目馬上結束,給大家一句話建議好嗎?
Grady Booch:人生苦短,去盡情享受生活吧。
Shweta Vohra:沒錯,絕對該盡情享受生活。天氣這么好,下播我就去吃冰淇淋。Grady,再次感謝你的到來。
https://www.infoq.com/podcasts/craft-software-architecture/
聲明:本文為 InfoQ 整理,不代表平臺觀點,未經許可禁止轉載。
會議推薦
QCon 全球軟件開發大會·2026 北京站將于 4 月 16 日 -18 日正式舉辦。本屆大會以“Agentic AI 時代的軟件工程重塑”為主題,聚焦 100+ 重磅議題,匯聚來自阿里、騰訊、字節跳動、小米、百度等一線科技企業與創新團隊的技術專家,圍繞 AI 工程化、系統架構與研發模式演進展開深入探討。更多詳情可掃碼或聯系票務經理 18514549229 進行咨詢。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.