今年上半年,IBM 研究院發布了一個名為 CodeNet 的數據集,該數據集包含 1400 萬個代碼樣本,共有用 55 種編程語言編寫的 5 億行代碼,用于訓練面向編程任務的機器學習模型。
不過令人意想不到的是,Python竟然不是樣本中使用最多的語言,僅屈居第二,C++榮登榜首。
為何C++榮登榜首
Python近些年的火爆程度毋庸置疑,但為何不是榜首,其實從Python近十幾年的熱度走勢就可知曉。

從圖中不難發現,直至2018年Python才開始呈現一個逐步上升趨勢,而這些代碼樣本是從提交給在線編程平臺 AIZU 和 AtCoder 上的近 4,000 項挑戰的提交中提取,可能存在Python未廣泛使用的情況。
另外一方面C++一直以來也十分受歡迎,即使是在Python逐漸火爆的情況下,幾乎每年在 TIOBE 編程語言排行榜中,且一直保持在該榜單的前五名,其影響力也可見一斑。
C++的由來
提起C++就不得不先說一說C語言,C語言是于1972年由美國貝爾實驗室的丹尼斯·里奇(Dennis Ritchie)在B語言的基礎上最終設計出的一種新語言。而C++正是以C語言為根基,并也誕生于美國貝爾實驗室,由Stroustrup所設計。

起初本賈尼·斯特勞斯特盧普(Bjarne Stroustrup)發現 Simula 具備很利于大型軟件開發的特點,但 Simula 的運行速度太慢,無法對現實需求發揮功效;BCPL 雖快得多,但它過于低級的特性,使其不適于大型軟件的開發。為此他選擇了能夠適用各種用途,具有快速、可移植性的C語言,并為它增強一些類似Simula的特點,來解決這一問題。至此C++可謂已經初具雛形,不過此時它叫作C with Classes。
直至1983年,C with Classes才改名為我們熟悉的C++,并加入了新的特性,其中包括虛函數、函數名和運算符重載、參考、常數、用戶可控制的自由空間存儲區控制、改良的類型檢查,以及新的雙斜線(//)單行注解風格,C++此后開始大展拳腳。
C++為何經久不衰
相較于“90后”(20世紀90年誕生)的Python,C++這一位“80后”,雖更為年長,但絲毫不影響其發光發熱。

究其原因:其一,苗正根紅。除了C++外,Java和C#等也是以C為基礎相繼誕生,并在各自領域大獲成功;其二,緊跟時代,不斷優化。C++從設計之初,已有近40個年頭。C++從最初的C with class,經歷了從C++ 98、C++ 03、C++ 11、C++ 14、C++ 17再到2020年的C++ 2a(又叫C++ 20)的多次標準化改造,功能得到了極大的豐富,已經演變為一門集面向過程、面向對象、函數式、泛型和元編程等多種編程范式的復雜編程語言。
正因如此,造就C++一個最重要特性,即某些領域具有不可替代的作用。如:驅動是要用 C++、啟動代碼是要用 C++、就連 Android 的底層也和 C++ 脫不了關系。雖然 C++ 在很多大型應用中,無法施展拳腳;但在不少領域,它卻如同巨人一般又是不可或缺的頂梁柱。