2021編程語(yǔ)言「后浪」趨勢(shì)預(yù)測(cè):JavaScript、Python熱度不減,但崛起最快的卻是它
轉(zhuǎn)眼 2020 年已經(jīng)過(guò)去了 8 個(gè)月,但對(duì) 2020 年的預(yù)測(cè)似乎并未結(jié)束。對(duì)于軟件開(kāi)發(fā)從業(yè)者來(lái)說(shuō),這個(gè)行業(yè)時(shí)刻發(fā)生著變化,很多技能出現(xiàn)然后又消失,退場(chǎng)速度甚至遠(yuǎn)超人們的想象。
但如果我們回頭看一下,關(guān)于編程語(yǔ)言的變化趨勢(shì)仍然值得探討。C 和 Java 算是行業(yè)中最古老的兩門(mén)語(yǔ)言,目前仍然在行業(yè)中占據(jù)一席之地。不過(guò)我們也能發(fā)現(xiàn),它們的受歡迎程度呈現(xiàn)一個(gè)曲線(xiàn)下降的趨勢(shì)。
作為一名開(kāi)發(fā)者,Mr Herath 最喜歡的語(yǔ)言是 JavaScript。在一篇 Medium 文章中,他為我們分析了 2021 年可能最受歡迎的幾種編程語(yǔ)言。
JavaScript、Python 或者 Go?在討論每種語(yǔ)言的優(yōu)點(diǎn)之前,先看一些在線(xiàn)調(diào)查的結(jié)果。
調(diào)查結(jié)果說(shuō)明了一切
1. Stack Overflow 調(diào)查
Stack Overflow 每年的開(kāi)發(fā)者調(diào)查是全球規(guī)模最大、范圍最全面的調(diào)查之一。2019 年的統(tǒng)計(jì)獲得了全球近 9 萬(wàn)名開(kāi)發(fā)者的數(shù)據(jù)。在最想使用編程語(yǔ)言的榜單中,Python 領(lǐng)先地位明顯,JavaScript 和 Go 語(yǔ)言分列二三位。
圖源:https://insights.stackoverflow.com/survey/2019
正如 PyTorch 急速取代 TensorFlow 的位置一樣,編程語(yǔ)言的流行趨勢(shì)變化也很快。
Go 語(yǔ)言的受歡迎程度正在快速上升,根據(jù) Stack Overflow 2020 年度開(kāi)發(fā)者報(bào)告的數(shù)據(jù)顯示,在開(kāi)發(fā)者最想使用的榜單中,雖然 Go 語(yǔ)言依然排在 Python 和 Javascript 后面,但比例較 2019 年有所上升。
圖源:https://insights.stackoverflow.com/survey/2020
GitHub 趨勢(shì)
GitHut 2.0 圖表向我們展示了自 2013 年到 2019 年之間,不同編程語(yǔ)言的合并請(qǐng)求數(shù)量變化趨勢(shì)。正如你所見(jiàn),有關(guān) JavaScript 的比其他所有語(yǔ)言都多,Python 排名第二,但 Go 語(yǔ)言的節(jié)奏根本看不出來(lái)。
圖源:https://madnight.github.io/githut/#/pull_requests/2020/2
但觀察每種編程語(yǔ)言的排名,我們可以看到 Go 的受歡迎程度正在顯著提升,而 JavaScript 和 Python 的受歡迎程度正在下降。
圖源:https://madnight.github.io/githut/#/pull_requests/2020/2
GitHub 庫(kù)數(shù)量
圖源:https://github.com/python/cpython
圖源:https://github.com/nodejs/node
圖源:https://github.com/golang/go
如以上圖片所示,可以發(fā)現(xiàn) Go 對(duì)開(kāi)發(fā)者的吸引力越來(lái)越高。盡管它的使用人數(shù)肯定不如其他兩種語(yǔ)言多,但從閱讀數(shù)量和 Star 量上看都是更高的。
那么問(wèn)題來(lái)了,為什么越來(lái)越多的開(kāi)發(fā)者都在使用 GO 語(yǔ)言?
Go 語(yǔ)言的優(yōu)勢(shì)
Go 語(yǔ)言是一種開(kāi)源編程語(yǔ)言,它有助于開(kāi)發(fā)者輕松地構(gòu)建簡(jiǎn)潔、可信賴(lài)和高效的軟件。2007 年,羅伯特 · 格瑞史莫、羅勃 · 派克和肯 · 湯普遜開(kāi)始設(shè)計(jì) Go 語(yǔ)言,并于 2009 年正式推出開(kāi)源,這門(mén)語(yǔ)言的歷史只有短短十幾年,很長(zhǎng)時(shí)間內(nèi)它一直沒(méi)有獲得像 Python 和 JavaScript 那樣的關(guān)注度。
近年來(lái),Go 語(yǔ)言的熱度日益上升,也曾兩度被評(píng)為年度編程語(yǔ)言。根據(jù) Stack Overflow 2019 年度開(kāi)發(fā)者調(diào)查報(bào)告的數(shù)據(jù)顯示,在近 9 萬(wàn)名受訪(fǎng)開(kāi)發(fā)者中,有 67.9% 的人將 Go 語(yǔ)言作為他們最喜愛(ài)的編程語(yǔ)言之一。
圖源:https://insights.stackoverflow.com/survey/2019
Go 語(yǔ)言自身具有的優(yōu)勢(shì)是受開(kāi)發(fā)者喜愛(ài)的一大原因。以下是 Go 語(yǔ)言的一些顯著優(yōu)勢(shì):
- 效率高:Go 語(yǔ)言與 C 語(yǔ)言類(lèi)似,開(kāi)發(fā)者不需要掌握新的語(yǔ)法;
- 可以實(shí)現(xiàn)跨平臺(tái)運(yùn)行;
- 簡(jiǎn)單:Go 語(yǔ)言?xún)H有 25 個(gè)關(guān)鍵詞以及較少的數(shù)據(jù)結(jié)構(gòu)(沒(méi)有類(lèi)別之分,只有函數(shù)和類(lèi)型);
- 可信賴(lài):Go 語(yǔ)言運(yùn)行快,默認(rèn)支持并行機(jī)制,模型漂亮,并且默認(rèn)處理生產(chǎn)服務(wù)器(production-ready server);
- 更新不頻繁:Go 語(yǔ)言即使更新,也不會(huì)出現(xiàn)重大的變動(dòng),并且 100% 兼容舊版本;
最后,Go 語(yǔ)言已經(jīng)非常成熟了,它擁有內(nèi)置包管理器測(cè)試框架和并行模型。
薪酬也是反映編程語(yǔ)言是否受歡迎的指標(biāo)之一,同樣根據(jù) Stack Overflow 2019 年度開(kāi)發(fā)者調(diào)查報(bào)告的數(shù)據(jù)顯示,在哪種編程語(yǔ)言能夠獲得較高薪酬的排名中,Go 語(yǔ)言排名第三,而 Python 和 JavaScript 的排名就落后了很多。由此也反映出了 Go 語(yǔ)言的「錢(qián)途」。
圖源:https://insights.stackoverflow.com/survey/2019
所以明年該用哪個(gè)語(yǔ)言?
正如我們所見(jiàn),Go 語(yǔ)言在過(guò)去幾年里表現(xiàn)很好。在每個(gè)編程語(yǔ)言的調(diào)查中,我們都能看到除了 JavaScript 和 Python 之外,Go 吸引了大量用戶(hù)??梢灶A(yù)見(jiàn)的是,在接下來(lái)的幾個(gè)月里,這門(mén)語(yǔ)言的人氣和資源會(huì)不斷增加。所以雖然人人都在用 JavaScript,但我認(rèn)為 Go 語(yǔ)言將會(huì)是 2021 年最好的后端編程語(yǔ)言。
原文鏈接:
https://medium.com/better-programming/what-will-be-the-best-back-end-programming-language-for-2021-18096c0c6105
【本文是51CTO專(zhuān)欄機(jī)構(gòu)“機(jī)器之心”的原創(chuàng)譯文,微信公眾號(hào)“機(jī)器之心( id: almosthuman2014)”】