關注 NodeJS vs Python vs Go
作者:Mr Herath
原文鏈接:
https://medium.com/better-programming/what-will-be-the-best-back-end-programming-language-for-2021-18096c0c6105
譯者:polaris
注:以下 JavaScript 和 NodeJS 沒有嚴格區分,因為談後端,自然指 NodeJS。不過統計中,前端部分的 JS 應該佔了很大一部分。
已經快 2020 年 9 月了,但是 2020 年的預測似乎還沒有結束。在預測這樣一個動態變化的行業的未來時,作為軟件開發人員,要生存下去並非易事。從事軟件的人們可能已經不知不覺地看到了許多技術的長生不老,因為在軟件行業很難生存。
但是,如果回顧一下,編程語言擁有許多重要組成部分的悠久歷史。C 和 Java 是最古老的兩個,並且在業界仍然存在。但是,如果我們查看它們所處的位置或獲得的知名度,我們可以它們正在下降。
作為開發人員,我愛上了 JavaScript,並且已經使用 JavaScript 已有一段時間了。但是,如果我們睜開眼睛看看開發人員世界,情況可能會稍有改變。讓我們從 JavaScript,Python 和 Go[1] 中選擇一門在 2021 年使用的語言。在討論每種語言的優點之前,讓我向您展示一些在線調查及其結果。
調查和其他數據
StackOverflow 調查
StackOverflow 的年度開發人員調查是對全球開人員的最大、最全面的調查。超過 90,000 個開發人員參加了此調查。我們可以看到 Python 領先,而 JavaScript 和 Go 分別位於第二和第三位。但是,等等?!這是在 2019 年進行的調查。作為一種快速增長的語言,Go 的受歡迎程度正在瘋狂增加。我認為,統計數據可能會在 2020 年發生變化。
圖 01:
https://insights.stackoverflow.com/survey/2019
GitHub-GitHut 排名
下面的 GitHub 2.0 圖顯示了從 2013 年到 2019 年之間 Pull Request 的數量。從圖中可以看出,JavaScript 在所有其他語言之上,而 Python 位居第二,但我們無法在圖中看到 Go。
圖 02:
https://madnight.github.io/githut/#/pull_requests/2020/2
但是通過觀察每種編程語言的排名,我們可以看到 Go 的流行度正在顯著增加,而 JavaScript 和 Python 的流行度卻在下降。
圖 03:
https://madnight.github.io/githut/#/pull_requests/2020/2
官方 GitHub 倉庫
圖 04:https://github.com/python/cpython
圖 05:
https://github.com/nodejs/node
圖 06:
https://github.com/golang/go
根據這些 GitHub 倉庫,我們可以看到 Go 對開發人員的吸引力越來越高。Go 倉庫的 Watch 和 Star 都更高,儘管與 JavaScript 和 Python 倉庫相比,人們對 Go 的偏愛要小。
為什麼選擇 Python?
Python 是一種高級的動態類型編程語言,在 IT 行業中已經流行了很多年。根據許多調查,Python 被認為是過去十年中最受歡迎的語言。
Python 的優點
- 使用 Python,您可以用更少的代碼在更短的時間內解決複雜的問題。
- Python 通過簡單而強大的語法使許多複雜的事情變得非常容易。
- 這是一種高級語言,因此您不必像使用 C++ 那樣擔心諸如內存管理之類的複雜任務。
- 它是跨平臺的,這意味著您可以在 Windows,Mac 和 Linux 上構建和運行 Python 應用程序。
- 它有一個龐大的社區。每當您遇到困難時,都會有人幫助您。
- 它具有大量的庫,框架和工具。這意味著無論您想做什麼,很可能其他人以前都做過,因為 Python 已經問世 20 多年了。
簡而言之,Python 是一種多用途語言,具有簡單,乾淨且對初學者友好的語法。所有這些都意味著 Python 很棒。從技術上講,您使用 Python 所做的一切,也可以使用其他編程語言。但是 Python 的簡單性和優雅性使其比其他編程語言有了更大的發展。這就是為什麼它是僱主尋找的第一語言。無論您是程序員還是絕對的初學者,學習 Python 都會在 2021 年為您帶來很多就業機會。實際上,一個 Python 開發人員的平均年薪高達 116,000 美元。(國內是這樣嗎?感覺懸)
為什麼選擇 JavaScript(Node.js)?
我個人很喜歡 Node.js,因為 Node.js 是我開始進行後端開發的語言。到目前為止,我已經談論編程語言。但是在本節中,我想進一步談談 Node.js,它是最流行的 JavaScript 運行時環境之一。眾所周知,Node.js 在 IT 行業中很受後端開發的歡迎。主要原因之一是 Node.js 基於 JavaScript。如果您是 JavaScript 開發人員,則可以輕鬆地成為全棧開發人員,這是瞭解 JavaScript 的另一項優勢。
JavaScript 和 Node.js 的優點
- 這是非阻塞的。因此,這意味著 Node.js 確實非常快。(非阻塞文件讀寫是服務器需要做的事情之一。但這是 Node.js 要做的事情。)
- 前端和後端使用一種語言編寫。
- Uber,LinkedIn,Netflix 和 Facebook 等主要公司都在使用它。
- 它是跨平臺的。這意味著您可以在 Windows,Mac 和 Linux 上構建和運行 Node.js 應用程序。
- 它有一個龐大的社區。(Gitter[2] 是我目前所在的社區之一。此外,您可以找到 Slack 頻道和 StackOverflow 討論。)
- 它不是一個臃腫的框架。這意味著它是一種 Web 服務器技術,可以與 Node.js 所使用的不同框架一起使用,例如 Express,它是流行的 Node.js 框架之一。
再一次,我們可以看到 Node.js 還將成為在後端開發中使用的絕佳 JavaScrip t 環境。通過觀察下圖,我們可以看到在 2019–2020 年期間,JavaScript 用於後端和前端開發的比例相似。如果我們看一下 Node.js 在美國的開發人員的平均年薪,我們發現它的年薪在 48,000 美元到 130,000 美元之間。
圖 07:
https://nodejs.org/en/user-survey-report/
為什麼選擇 Go?
Go 是一種開放源代碼編程語言,可輕鬆構建簡單,可靠和高效的軟件。它最初是在 2009 年發佈的,但自那時以來,其流行度一直低於 Python 和 JavaScript。然而 Go 兩次被評為年度編程語言。此外,Go 已成為 67.9% 的開發人員最喜歡的編程語言。顯然,有一些原因使開發人員開始喜歡 Go。
圖 08:
https://insights.stackoverflow.com/survey/2019
Go 的優點
- 高效。由於 Go 是一種類似於 C 的語言,因此您無需瞭解太多新的語法。
- Go 也是一門跨平臺語言。
- 這是一門簡單的語言。為什麼?答案是它只有 25 個關鍵字和較少數量的數據結構(沒有類,只有函數和類型)。
- 這是一門可靠的語言。這是一門快速的語言。默認情況下,它支持併發,具有漂亮的模型並默認情況下處理可用於生產環境的服務器。
- Go 不會經常更新。如果更新,則也不會特別重大更改,並且 Go 與舊版本 100% 兼容。
- Go 現在是一門成熟的語言。(Go 具有內置的包管理器測試框架和併發模型。)
基於以上優點,我們可以看到 Go 也是一門很棒的語言。您可能想知道為什麼要花這麼多時間才能弄清這一點,為什麼還沒有開始使用 Go。在我這邊,我也這麼認為。如我們所見,大多數程序員都將 C 語 言作為他們的第一門編程語言來學習。如果您以這種方式開始學習和使用 Go,那麼對您來說將毫不費力。
如果我們看一下 Go 開發者在美國的平均薪水,則為每年 45,000 美元 至 130,000 美元。
結論
如上所見,Go 在過去幾年中做得很好。此外,根據調查,與 JavaScript 和 Python 相比,我們可以看到 Go 吸引了大量用戶。當然,在接下來的幾個月中,人氣和資源將會增加。即使我開始使用 JavaScript,我還是選擇 Go 作為 2021 年將要使用的最佳後端編程語言。
參考資料
[1]
Go: https://golang.org/
[2]
Gitter: https://gitter.im/nodejs/node