2019 年,走出舒適區(qū)的技術(shù)圈迎來消費互聯(lián)網(wǎng)向產(chǎn)業(yè)互聯(lián)網(wǎng)的轉(zhuǎn)型,也開始了數(shù)字智能化的進一步升級,而在此之下,作為這個時代浪潮中最為敏感的開發(fā)者,又需要完成哪些自我演進?
近日,知名軟件開發(fā)公司 JetBrains 從工具、技術(shù)、編程語言等維度出發(fā),在調(diào)研了全球 18 個國家/地區(qū)的 19,696 名開發(fā)者后,帶來了全新的《2020 開發(fā)者生態(tài)系統(tǒng)現(xiàn)狀》報告,旨在幫助更多的同行者快速了解最新的行業(yè)趨勢。
通過該報告,我們發(fā)現(xiàn),數(shù)百種編程語言中,雖然各有千秋,但是在一定的時期內(nèi),主流的編程語言僅占少數(shù)。
隨著每年新興的領(lǐng)域、技術(shù)不斷迭代,編程語言的使用率由此也發(fā)生了一定的變化。
下圖中橙色所代表的是過去 12 個月間常用的編程語言占比,深灰色所表示的是計劃采用/遷移:
在過去一年間,JavaScript 的使用率最高,70% 的開發(fā)者選擇使用該語言。不過,值得注意的是,在主流的編程語言行列,JavaScript 雖然最為常用,但是想要做遷移的開發(fā)者占比最高,其中 16% 的開發(fā)者計劃遷移并轉(zhuǎn)而采用 Go 語言。
反觀在 Go 開發(fā)群體中,沒有采用/遷移其他編程語言的用戶高達 59%,穩(wěn)定性最強。
要問哪種類型的開發(fā)最受歡迎?從官方統(tǒng)計的數(shù)據(jù)來看,后端、前端開發(fā)處于第一梯隊,最為熱門;桌面、移動、服務(wù)器/基礎(chǔ)架構(gòu)在第二梯隊。
54% 的開發(fā)者表示,當前主要從事網(wǎng)站類型的開發(fā),其次,實用工具、數(shù)據(jù)庫/數(shù)據(jù)存儲、系統(tǒng)軟件等類型也較為火熱。相對而言,仍在發(fā)展中的區(qū)塊鏈、AR/VR 開發(fā)占比較少。
不同類型的開發(fā)所使用的語言也有所不同,比如網(wǎng)站開發(fā)中,JavaScript、PHP、TypeScript 最為實用。數(shù)據(jù)庫/數(shù)據(jù)存儲方面,SQL 有著獨特的優(yōu)勢。
如果有開發(fā)者關(guān)注 、 的生態(tài)報告,那么不難發(fā)現(xiàn),JavaScript 已經(jīng)連續(xù)多年榮獲「最常用編程語言」的稱號,究其原因,不僅因為它的保持著高效的更新,JavaScript 也囊括了許多編程語言庫,幫助開發(fā)者更好地上手。
在 JavaScript 框架中,React 以 64% 的使用率成為最受歡迎的框架。相較去年,它的份額上升了 10%。與此同時,知名的開源框架 Vue.js 份額下降了 7%,不過仍然位居第三位,雖落后于 Express 框架,但差距并不是很大。
此外,CSS 樣式表語言是 JavaScript 開發(fā)者最青睞的選擇,而在 TypeScript 開發(fā)者中,最受歡迎的則是 SCSS 方式,所占份額為 59%。
以每半年更新一次的 Java,早已讓其后面追逐的開發(fā)者“累不覺愛”。不過,從官方數(shù)據(jù)統(tǒng)計顯示,Java 8 歷經(jīng)多年,仍然是最受歡迎的,75% 的 Java 開發(fā)者在使用這一版本。不過,隨著時間的推移,Java 8 每年的使用率正在遞減。
而后來者們正在逐步居上,在這之中,份額有所上漲的還有另一個長期版本 Java 11,與去年相比,Java 11 的使用份額增長了 10%。不過,后更新的 Java 12、Java 13 也在憑借最新的特性等優(yōu)勢爭奪用戶。
在應(yīng)用程序服務(wù)器方面,Apache Tomcat 占據(jù)主導地位,不過它的份額相較去年稍有所下降。不過,也有 26% 的 Java 開發(fā)者在開發(fā)過程中沒有使用應(yīng)用程序服務(wù)器。
與此同時,63% 的開發(fā)者表示使用 Spring Boot 框架可以直接取代應(yīng)用服務(wù)器。而它也是 Java 最喜愛的 Web 框架。
作為 JetBrains 打造的產(chǎn)品, IntelliJ IDEA 被視為當前 Java 開發(fā)效率最快的 IDE 工具,這也是為什么它能成俘獲七成開發(fā)者關(guān)注的主要原因。
對于 Java 開發(fā)者而言,36% 的受訪者表示正在使用 Java 開發(fā)網(wǎng)站,其次也會用它來開發(fā)實用工具、系統(tǒng)軟件、數(shù)據(jù)庫/數(shù)據(jù)存儲等產(chǎn)品。
在此,將老牌軍 C 語言單獨列出來,不僅是因為在另一大編程語言排行榜 TIOBE 中,C 時隔 5 年,再度超越 Java,重回大眾視野,而且在新基建數(shù)字智能化經(jīng)濟到來之際,無論是小型的智能設(shè)備,還是大型硬件的嵌入式開發(fā),C 將再次被廣泛應(yīng)用,因此 C 當前的現(xiàn)狀也尤為值得關(guān)注。
在本次調(diào)查中,C 語言的標準仍以 2000 年 ANSI 采納的 ISO/IEC 9899:1999 標準,即 C99 為主,占比 52%。不過,對此,JetBrains 官方表示 C11 標準的采用率雖然下降,但預計 C11 未來三年將上升到第一位。當前它仍位于嵌入式開發(fā)(家庭自動化和其他硬件)榜單的頂部,占據(jù) 47% 的份額。
編輯器層面,在 Vi/Vim 領(lǐng)先多年后,VS Code 上升到第一位。不過,在嵌入式開發(fā)領(lǐng)域,Vi/Vim 仍高居第二位。CLion 的份額也在快速增長。
Go、Kotlin、Python 為何會成為開發(fā)者最想要采用的三大語言?
與此同時,值得關(guān)注的是,過去一年中,Python 熱度超越了 Java,成為開發(fā)者上手的熱門語言之一。除了有 55% 的開發(fā)者正在使用 Python 之外,有 9% 的受訪者表示計劃采用/遷移到 Python。當然除了 Python,13% 的受訪者表示計劃采用或?qū)⑦w移到 Google 開發(fā)的 Go 語言,也有 10% 的開發(fā)者想要使用 Kotlin。
在人工智能、大數(shù)據(jù)等技術(shù)迅猛發(fā)展的今天,Python 的崛起速度其實遠超乎很多開發(fā)者的想象。很多人認為學習 Python 主要可以解決數(shù)據(jù)性問題,其實不然。據(jù)調(diào)查報告顯示,近五成的 Python 開發(fā)者將 Python 用于 Web 開發(fā),其次才是數(shù)據(jù)分析,再者是機器學習領(lǐng)域。
在版本方面,今年 4 月,其官方發(fā)布了 Python 2 最后一個版本,這也意味著 Python 2 時代徹底結(jié)束。據(jù) 2017 年數(shù)據(jù)顯示,44% 的受訪者在使用 Python 2,如今隨著 Python 2 不再維護,很多人選擇升級或遷移,如今留守 Python 2 版本的用戶僅剩下了 7%。
不過,據(jù)報告調(diào)查顯示,Python 2 最常見的用例是系統(tǒng)管理員和基礎(chǔ)結(jié)構(gòu)配置 (DevOps),兩者的總份額達到 40%,Web 開發(fā)的份額為 35%。
在數(shù)據(jù)科學領(lǐng)域,很多開發(fā)者除了使用 Python 之外,也會用如 NumPy、Pandas 等主流的數(shù)據(jù)科學框架用以輔助。
另外,據(jù)官方調(diào)查顯示,與總體開發(fā)者相比,Python 開發(fā)者更可能參與學術(shù)研究 (24%),這一數(shù)字在總體開發(fā)者中的比例為 14%。
與其他編程語言的應(yīng)用有所不同,在所有開發(fā)者中,Python 開發(fā)者更傾向于將 Linux 作為其開發(fā)環(huán)境。在 JetBrains 調(diào)查中發(fā)現(xiàn),有 64% 的 Python 開發(fā)者更喜歡使用 Linux,相比之下,更喜歡 Linux 的總體開發(fā)者比例約為 50%。這使 Linux 在 Python 開發(fā)者中成為最受歡迎的操作系統(tǒng),但 Windows 整體上仍是領(lǐng)先的操作系統(tǒng)。
據(jù)調(diào)查報告顯示,大多數(shù) Go 開發(fā)者將 Go 語言用于工作 (63%)。在工作中使用 Go 的開發(fā)者比例每年都在上升。其次,也有 28% 的開發(fā)者處于個人/編外項目原因正在使用 Go。
71% 的 Go 開發(fā)者開發(fā)微服務(wù),這使 Go 成為此領(lǐng)域第二受歡迎的語言,僅次于 Scala。
對此,JetBrains 官方解析道,DevOps 和基礎(chǔ)結(jié)構(gòu)開發(fā)是 Go 最受歡迎的用例。因此,80% 的 Go 開發(fā)者參與這些活動和 36% 的人將其視為主要職責也就不足為奇了,相比之下,只有 57% 的總體開發(fā)者將自己與基礎(chǔ)結(jié)構(gòu)開發(fā)相關(guān)聯(lián)。Go 開發(fā)者是重度 Docker 用戶。84% 的人表示使用此工具,比總體開發(fā)者中的 Docker 用戶百分比高 20 個百分點。
如今距離 Google 宣布將 Kotlin 作為 Android 開發(fā)的首選語言已經(jīng)過去了 3 年的時間,時下,大多數(shù) Kotlin 開發(fā)者仍以 Android 或 JVM 為目標。Kotlin 提供了以 JavaScript 為目標和執(zhí)行原生開發(fā)的功能,但以這些平臺為目標的開發(fā)者人數(shù)相對較少。
不過,Kotlin 可以用于移動、Web、服務(wù)器端、桌面,甚至嵌入式系統(tǒng)開發(fā)。得益于其代碼共享機制,開發(fā)者可以輕松創(chuàng)建多平臺庫和在多個平臺上運行的應(yīng)用程序。
和 Java 的版本選擇有些類似,Kotlin 開發(fā)者中有 73% 的人選擇了 JDK 8。JDK 11 的使用率雖然排名第二,不過在過去一年間,它的份額幾乎翻了一番。
據(jù)調(diào)查報告顯示,幾乎所有的 Kotlin 開發(fā)者 (92%) 在使用 Kotlin 前使用過 Java。其中大多數(shù)(90% 的 Kotlin 用戶)仍在繼續(xù)使用 Java。這也意味著,Kotlin 最初被外界猜測想要取代 Java 的愿景并不太容易實現(xiàn),而相比 Java,Kotlin 也有自己獨特的優(yōu)勢。
整體而言,在日益更新的技術(shù)環(huán)境之下,編程語言作為一種開發(fā)工具,每種都有各自擅長的領(lǐng)域,開發(fā)者如何選擇,與自身工作的屬性有很大的相關(guān)性。
除了以上,開源作為一種協(xié)作、共享的方式,已成為很多企業(yè)和開發(fā)者的選擇。但是據(jù)調(diào)查顯示,占比最高且有 44% 的開發(fā)者并沒有參加過開源,但是愿意嘗試。20% 的受訪者稱,僅貢獻過幾次。這意味著開源的普及與推進并非一朝可以實現(xiàn),它也需要更多的開發(fā)者參與其中。
最后想要進一步查閱 JetBrains 發(fā)布的《2020 開發(fā)者生態(tài)系統(tǒng)現(xiàn)狀》報告完整內(nèi)容,可點擊以下鏈接直達: