衡量編程語(yǔ)言的流行度有很多種途徑。在這份報(bào)告中我們采用了公開和私有代碼倉(cāng)庫(kù)中的主要語(yǔ)言的獨(dú)立貢獻(xiàn)者的數(shù)量,。另外,,我們還采用了主要語(yǔ)言的代碼倉(cāng)庫(kù)的創(chuàng)建數(shù)量。 2008~2018 年編程語(yǔ)言排行榜,,根據(jù)代碼倉(cāng)庫(kù)創(chuàng)建數(shù)量排名 如今,,使用 Java 創(chuàng)建的代碼倉(cāng)庫(kù)超過(guò)了任何其他語(yǔ)言。過(guò)去十年內(nèi) JavaScript 創(chuàng)建的代碼倉(cāng)庫(kù)數(shù)量穩(wěn)定上升,,從上圖可以看出從 2011 年之后就有了穩(wěn)定的上升趨勢(shì),。在這個(gè)時(shí)間點(diǎn),GitHub 的總代碼倉(cāng)庫(kù)數(shù)量將近 100 萬(wàn),,而新的 JavaScript 服務(wù)器(如 2009 年發(fā)布的 Node.js)使得開發(fā)者可以在客戶端和服務(wù)器開發(fā)中使用同一種語(yǔ)言,。 編程語(yǔ)言排行榜,根據(jù) 2018 年 9 月 30 日時(shí)的貢獻(xiàn)者數(shù)量排名 JavaScript 也是公開和私有代碼倉(cāng)庫(kù)中擁有貢獻(xiàn)者最多的語(yǔ)言。在世界上任何地方,、任何大小組織中都是這樣,。但是,我們也看到了 GitHub 上新興語(yǔ)言的成長(zhǎng),。TypeScript 去年在所有區(qū)域的公開,、私有和開源代碼倉(cāng)庫(kù)中進(jìn)入了前十名。而像 DefinitelyTyped(https://github.com/DefinitelyTyped/DefinitelyTyped)之類的項(xiàng)目能幫助人們?cè)?TypeScript 中使用普通的 JavaScript 庫(kù),,促進(jìn)了 TypeScript 的接受程度,。 我們也注意到一些語(yǔ)言的流行度在下降。Ruby 在過(guò)去幾年的流行程度一直在下降,。盡管 Ruby 的貢獻(xiàn)者人數(shù)依然在上升,,但 JavaScript、Python 等其他語(yǔ)言增長(zhǎng)得更快,。新的項(xiàng)目很少用 Ruby 寫,,特別是個(gè)人或小型組織的項(xiàng)目,這些項(xiàng)目更傾向于使用 JavaScript,、Java 或 Python,。 按照地理位置劃分的流行程度,根據(jù) 2018 年 9 月 30 日時(shí)的貢獻(xiàn)者數(shù)量排名 在過(guò)去 12 個(gè)月中,,我們并沒(méi)有看到不同區(qū)域中的語(yǔ)言使用情況有多少不同,。但是,TypeScript 在南美和非洲的排名要高于在北美和歐洲的排名。原因可能是非洲和南美的開發(fā)者社區(qū)相對(duì)較新。去年非洲和南美的代碼倉(cāng)庫(kù)平均要比北美和歐洲的代碼倉(cāng)庫(kù)更年輕,。這也許意味著開發(fā)者們更傾向于較新的開發(fā)技術(shù),。 增長(zhǎng)最快的語(yǔ)言排行榜,根據(jù) 2018 年 9 月 30 日時(shí)的貢獻(xiàn)者數(shù)量排名 許多大公司的項(xiàng)目都在使用 PowerShell,使得它排名上升。類似地,Go 也因?yàn)榇笮徒M織而進(jìn)入了排名,,而且在各種類型的代碼倉(cāng)庫(kù)中都有增長(zhǎng),今年它在開源代碼倉(cāng)庫(kù)中排名第九,。我們也看到,,趨勢(shì)在朝著靜態(tài)類型的方向發(fā)展,以增強(qiáng)類型安全性和互操作性,。其中 Kotlin,、TypeScript 和 Rust 增長(zhǎng)最快。 2018 年為什么是這些編程語(yǔ)言流行,? 那么,,2018 年編程語(yǔ)言流行的原因是什么,?下面是我們的觀點(diǎn)。 類型安全 除了 Python 之外,,我們看到了靜態(tài)類型的崛起,,很可能是因?yàn)樗転閭€(gè)人開發(fā)者和大型應(yīng)用的開發(fā)團(tuán)隊(duì)帶來(lái)安全性和效率。TypeScript 的可選靜態(tài)類型增加了安全性,,而 Kotlin 能提供巨大的交互性,,同時(shí)還允許創(chuàng)建可信的類型安全的程序。 互操作性 TypeScript 在榜單中上升的部分原因是它能與 JavaScript 共存,。Rust 和 Kotlin 也在上升榜中,,兩者分別吸引了 C 和 Java 的使用者。Python 的靈活性和互操作性也十分出色,,比如開發(fā)者可以直接從 Swift 中調(diào)用 Python API(https://github.com/tensorflow/swift/blob/master/docs/DesignOverview.md#python-interoperability),。 互操作性不僅意味著語(yǔ)言可以建立在已有的社區(qū)上,,還意味著語(yǔ)言可以與不同的社區(qū)融合并超越,。比如,Kotlin 去年被認(rèn)為是 Android 平臺(tái)上的首選,。 開源 當(dāng)然,,這些語(yǔ)言都是開源項(xiàng)目,且都在 GitHub 上維護(hù),。社區(qū)負(fù)責(zé)為 Kotlin 等新語(yǔ)言進(jìn)行改進(jìn),、回答問(wèn)題并提供資源,幫助開發(fā)者選擇這些語(yǔ)言,,并在 2018 年以后繼續(xù)使用這些語(yǔ)言,。 如果你還想了解更多有關(guān)編程語(yǔ)言等技術(shù)趨勢(shì),請(qǐng)參考 2018 GitHub Octoverse 報(bào)告系列中的關(guān)于各區(qū)域的發(fā)展?fàn)顩r:
以及代碼倉(cāng)庫(kù)的其他文章:
作者:telliott27 |
|
來(lái)自: 長(zhǎng)沙7喜 > 《編程》