2025年底,Bjarne Stroustrup接受了《碼農翻身》雜志的一次專訪。
按理說,這本該是一場“標準的紀念式訪談”,回顧下過去,評述下現在,展望一下未來,但采訪結束時,記者沉默了。
回去之后,記者猶豫再三,最終在稿件上寫下了一行備注:“此稿不宜發表。”
當然,大家也都知道,越是“不宜發表”的內容,往往傳播得越快。
以下,是那場未公開的專訪記錄。
記者:Bjarne Stroustrup先生,首先恭喜您,C++已經40歲了!一門編程語言能活這么久,歷經無數風雨,真的不多見。
Stroustrup:謝謝,不過我得糾正你一個小錯誤,1979年我就開始做C++了,那時候它還不叫C++。
記者:那叫什么?
Stroustrup:叫“帶類的C”。
記者:這名字聽起來有點兒隨意,您為什么突然想起來給C加上“類”呢?
Stroustrup:嗯,說來話長,起因是我在丹麥奧胡斯大學讀書的時候,受到了一個人深刻的影響。
記者:是誰啊?
Stroustrup:克里斯汀·尼加德,圖靈獎得主,面向對象的“祖師爺”,他發明了世界上第一個面向對象編程語言Simula。
記者:他來學校做什么?
Stroustrup:他每月來我們學校一次,待一周,每次來都和我們幾個好學生一起喝啤酒,一喝就是幾個小時。
記者:……
Stroustrup:一邊喝酒,一邊講面向對象。
記者:聽起來像一種古老的編程培訓方式。
Stroustrup(笑):效果還挺好,就是第二天不一定能編譯自己。
記者:既然Simula那么先進,您為什么不直接用它?
Stroustrup:Simula確實很優雅,非常適合描述復雜的軟件結構,對于大型項目非常有效,但有個致命缺點:太慢了。
記者:所以您開始找替代方案?
Stroustrup:對,我熟悉十幾種編程語言,比如Algol 68,我很喜歡它的類型系統,但是在工業界它沒有擁護者。
記者:最后您選了C?
Stroustrup:是的。C很棒。
記者:哪里棒?
Stroustrup:離硬件很近,速度很快,而且——貝爾實驗室的氣氛很好,我1979年去了那里。
記者:怎么個好法?
Stroustrup:C語言之父Dennis Ritchie 就在隔壁!基本就是“走兩步就能改變計算機歷史”的距離。
記者:哇,那你們是不是經常討論?
Stroustrup:是啊,還經常一起吃晚餐。
記者:C語言很簡潔,您為什么把C++設計得這么復雜?
Stroustrup(嘆氣):這個問題我聽了40年,今天我決定把秘密告訴你:其實我是在保護程序員。
記者:保護?我沒聽錯吧,C++這么復雜,門檻這么高,很多程序員都學不會.....
Stroustrup:你知道COBOL嗎?
記者:知道,老古董了,不過COBOL依然支撐著43%的銀行系統,處理著每天3萬億美元的交易,毫不夸張地說,我們的世界就運行在COBOL屎山上。
Stroustrup:那你知道COBOL程序員以前有多賺錢嗎?
記者:聽說很夸張。
Stroustrup:是的,屬于“寫代碼寫到財務自由”,后來IBM覺得不太對勁,人太少了,太貴了,就開始砸錢培訓,批量生產程序員。
記者:結果就是程序員數量上去了,工資就下來了?
Stroustrup:是的。我從COBOL學到了一個教訓,一門語言如果太容易學,會發生兩件事。第一,人人都會寫。第二,沒人值錢了。同樣的事情,還發生在Java身上,Python身上,JavaScript身上..... 你說說,這些語言都有什么特點?
記者:簡單?
Stroustrup:對嘍,它們跑在虛擬機里,隱藏了指針,隱藏了硬件訪問,一個初中生經過半年培訓,都可以開發Web系統,用這樣的語言,程序員們還有什么前途?!
記者:所以您是故意把C++設計復雜的?
Stroustrup(笑):我更愿意說——我沒讓它變“過于簡單”。
記者:這有什么區別?
Stroustrup:一個是主動復雜,一個是拒絕變成玩具。我決不允許COBOL的悲劇發生在C++程序員的身上。首先C++要能干大事兒,做系統級編程,其次它的門檻一定要高,寫出的代碼難以理解,只能由作者來維護,這樣我的C++程序員們就不用擔心失業了。
記者:真是良苦用心啊,我看到網上對C++有個評價,我跟您讀一下,您別生氣啊。
C++是一門垃圾語言,就像一棟從上世紀70年代開始修、一直沒停過的樓: 地基是 C 語言:裸指針滿地跑,“樓梯沒扶手”,掉下去沒人管 一樓加了類和面向對象:開始有房間了,但門鎖經常壞(構造/析構一不小心就炸) 二樓是模板:看起來優雅,實際上像“可變形迷宮”,編譯器報錯能寫一屏小說 三樓是 STL:終于像個現代住宅了,但你得先學會一套“奇怪的家具擺放規則” 屋頂是各種新特性(auto、lambda、智能指針):像是后來補的精裝修,但電線還是老的 你寫一行代碼,可能同時涉及三代標準、五種語法風格、兩種內存模型。
Stroustrup(笑):哈哈,這位網友是有點兒創意在身上的。不過說正經的,C++這門語言,如果你真的耐心學下去,會發現它其實是個“重武器級別”的工具。很多你天天用的東西,像操作系統、瀏覽器、高性能庫、游戲引擎、多媒體軟件,本質上很多都是C++在底層撐著的。
記者:這么一想,好像確實也是,用C++的程序員,聽起來確實不太容易失業。
Stroustrup(笑):至少“被AI一鍵替代”的焦慮,會稍微晚一點。
記者:說到AI,我發現一個現象:AI寫出來的代碼,好像大多數都是Python、JavaScript、Java,C++反而很少見。
Stroustrup:你終于注意到了。
記者:為什么會這樣呢?
Stroustrup(笑):還是那個原因——我設計的C++很復雜。指針、內存管理、模板、元編程、宏……這些東西疊在一起,就像工具箱里塞滿了電鋸、焊槍、炸藥包,每個工具都寫著“專業級操作,誤觸概不負責”。
記者:聽起來 AI 光是拎起工具箱就手抖了。
Stroustrup(笑):所以 AI 通常選擇另一個工具箱——Python,里面就三樣東西:一把小錘子、一卷膠帶、一張寫著“別怕,怎么敲都不會壞”的說明書。
記者 :哈哈哈
Stroustrup:Python的代碼滿互聯網都是,AI 閉著眼睛都能寫。C++?GitHub上雖然也不少,但每段代碼的寫法都像是同一個人在不同精神狀態下的產物,AI 學起來容易精神分裂。
記者:這么說來,C++ 程序員短期內確實不用擔心被 AI 取代……
Stroustrup(意味深長地笑): 我說什么來著?四十年了,我一直在替你們操心。
記者:好吧,按慣例,在采訪結束的時候,我會請嘉賓給讀者說一句話,您想說些什么呢?
Stroustrup :“我沒有讓 C++ 變簡單,因為我不想讓你們變得廉價。”
記者:您的良苦用心,程序員們會理解的。
Stroustrup:答應我,一定要發表。
記者:發表了我會通知您的。
Stroustrup:對了,你能把錄音給我拷一份嗎?
記者:行吧。
——采訪結束,錄音從此下落不明。
當然,這個采訪是假的,愚人節快樂!
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.