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