歡迎光臨
每天分享高質量文章

分析了 7500w+ GitHub 代碼倉庫,哪門語言熱度最高?

(點擊上方公眾號可快速關註)


來源:開源中國

www.oschina.net/news/92822/ranking-programming-languages-by-github-users


近日,有開發者在 reddit 發佈了一個帖子,內容是通過對 GitHub 用戶的資料進行分析得到的編程語言排序榜。作者認為,通過計算 GitHub 上有多少人使用每種語言來對所有的編程語言進行排序會很有趣。

下麵我們不妨看看這份資料源“獨特”的排行榜有哪些值得關註的東西。

首先,作者表示這次分析的資料主要來源於 GitHub Archive 和 GHTorrent。他通過分析 GitHub Archive 上 7500w+ 個不同的倉庫中超過 12.5 億次的事件(包括推送新代碼、fork、star、issue 處理等),每月彙總一次,計算了每種語言的 MAU(月活躍用戶數量),詳細的分析說明可點此查看。

先看看總體資料,截至 2018 年 1 月 24 日,通過統計 GitHub 上活躍用戶的活動情況,對每種語言的排名結果如下(TOP 25):

整體排名十分有趣,但我們應該深入瞭解這些語言隨著時間的推移有著怎麼的演變。(資料可以追溯到 7 年前)

主流編程語言

可以看到,主流編程語言都有著相對穩定的用戶群,而且大多數也都是你意料之中的。

從追蹤的資料來看,JavaScript, Python, Java, C++ 和 C 保持這種熱度的勢頭已經超過 7 年,所以近段時間依然不會有所改變。

JavaScript 保持它的“龍頭”地位是可以解釋的,因為它基本上是所有程式員都需要使用的一門語言。

不過隨著時間的推移,Python 的使用者越來越多,最近已超過 Java 成為 GitHub 上第二大流行的編程語言。Python 的增長大部分似乎都來自開發者對機器學習的興趣。事實上,Python 的整體流行度在這裡可能被低估了(以後可能會更多)。

C++ 似乎也正在超越 C 的地位,而這也是有根據的,像 GCC 這種專案都已經從 C 轉換到 C++,以便使用 C++ 的一些特性。由於 C++ 基本上是 C 的超集,GCC 團隊發現使用 C++ 的有限子集可讓他們編寫更乾凈的代碼。

2018 年要學習的編程語言

觀察這種編程語言趨勢的最好方法就是,確定具有快速增長的用戶群的新興編程語言:

明顯能看到,用戶群增長最快的語言分別有:Go,TypeScript,Kotlin 和 Rust。

作者表示,在過去的幾周里他也一直在學習 Go 和 Typescript。他發現,對於編寫併發的服務器端程式,Go 確實非常有用,而在使用 TypeScript 幾個星期後,自己可能再也不會樂意使用 JavaScript 了。

Kotlin 的崛起是意料之中的,Kotlin 主要用於 Android 應用程式開發,當被宣佈成為 Android 開發的官方支持語言後,看看圖中的斜率變化情況。

對於 Rust,在這裡的增長雖然比其他語言慢,但其中依然有許多令人驚嘆的專案。作者推薦了兩個用 Rust 編寫的兩個專案 —— 用於 Ruby 的採樣分析器和 autodifferentiation 框架。

事實上,所有這些語言都有一個共同點,它們背後都有大公司在支持著。正如谷歌之於 Go,微軟之於 TypeScript,JetBrains 之於 Kotlin,Mozilla 之於 Rust。成功推廣一門新的語言需要不少的付出 —— 至少僅僅開發出一門優雅的語言是不夠的,還必須擴大語言背後的社區和生態系統。諸如 IDE 支持,用於常見任務的庫和軟體包、工具和文件,這些對於讓用戶使用某種語言都非常重要,而且都需要付出巨大的努力。

出現下滑趨勢的語言

在過去的 7 年裡,Ruby,PHP,Objective-C,CoffeeScript 和 Perl 在 GitHub 上的用戶比例都顯著下降。

不過值得註意的是,這些資料是以 GitHub 用戶群的百分比得出的,而 GitHub 的用戶數量正在快速增長。在過去的 7 年中,GitHub 的用戶增長已經超過了 20 倍。這意味著即使是市場份額下降的語言也可能擁有不斷增長的用戶群。

這樣來看,相比 2011 年,使用 Ruby 語言的活躍用戶數量已經超過了3倍。它的增長沒有其他語言那麼快,導致它在這個分析上的表現相對較差。

此外要註意的是,某些較新的語言似乎在蠶食舊版語言的用戶群。例如,Objective-C 用戶的下降與 Swift 的上升相對應。另外,CoffeeScript 似乎已經被 TypeScript 取代:

雖然 Objective-C 正在下滑,但整體上 iOS 開發相對穩定。同樣的,CoffeeScript 似乎已經為 TypeScript 鋪平了道路,因為它讓程式員習慣於將代碼編譯成 JavaScript。

函式式編程語言

作者表示,這裡的資料相對較少,排名中的干擾因素較多,他不相信隨著時間的推移,Clojure 和 Haskell 會出現這樣明顯的下滑。而 Elixir 這門語言值得大家留意,雖然未能排在前 25 名。

文中作者還對用於科學領域的語言進行了分析,詳情可查看原文。作者還表示未來對編程語言流行度的跟蹤將會參考其他一些資料,如 TIOBE 指數、Stack Overflow 上的標簽趨勢圖、GitHub Octoverse 等。

原始碼和整體排名可在 GitHub 上查看。https://github.com/benfred/github-analysis

最後,reddit 帖子的回帖中,有用戶給出了自己統計的資料以進行對比參考,他統計了 reddit 上十大最受歡迎的編程語言的 subreddits 數量( subreddits 是 reddit 中的子版塊,用戶可根據自己的興趣和需要進行訂閱)

Python – 213594
JavaScript – 199592
Java – 81241
PHP – 58794
C++ – 58788
C# – 52103
Go – 39529
Ruby – 38405
Rust – 33124
C – 32351

看完本文有收穫?請轉發分享給更多人

關註「資料分析與開發」,提升資料技能

赞(0)

分享創造快樂