友快網

導航選單

IBM開源了5億行程式碼資料集,為何C++能位居第一?

今年上半年,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++ 在很多大型應用中,無法施展拳腳;但在不少領域,它卻如同巨人一般又是不可或缺的頂樑柱。

上一篇:西裝套裝是職場女性最好的入門單品, 簡單又自帶氣場穿出高階氣質
下一篇:程式語言越發完備,初學者如何學好程式設計