來源 | JetBrains官博
譯者&責編 | 夕顏
出品 | CSDN(ID:CSDNnews)
今年,Java已經25歲「高齡」了,再次創下輝煌的裡程碑。最近,JetBrains深入研究數據,全面透徹地分析了Java開發現狀,並嘗試解答一些關於Java最常見的疑問。調查結果有些在意料之中,但也有一些結果讓人感到意外。
上周Java 15發布,本調查結合了Java的最新發布,並根據不同來源的數據創建,包括來自JetBrains的開發倡導者Trisha Gee的專業評論。
Java用戶主要來自亞洲
根據市場研究和分析團隊開發人員的估計模型數據顯示,目前全球有大約520萬專業Java開發人員將Java作為主要語言。但是,如果把主要使用其他程式語言,但同時也使用Java的專業開發者囊括進去,那麼這個數字可能接近680萬。
另外,來自亞洲的Java開發者數量最多,大約有250萬開發者把Java作為主要語言。北美和歐洲的Java用戶遠不及亞洲。你可能會問,為什麼?
Java開發者地域分布:中國排名第一
我們更深入地研究了Java開發人員最多的國家分布,並調查了為什麼這些國家在專業開發方面偏愛Java而不是其他語言。
下圖展示了每個國家將Java作為主要語言的開發者的百分比(調查對象在問卷中最多可以選擇3種主要語言)。中國和韓國的比例最高,分別為51%和50%。
專家分析
Java在佔比前6的國家中如此受歡迎的原因包括Java免費使用、政府支持和開源,尤其是在中國、西班牙和巴西。在中國和印度,Java是進行Android移動開發的基礎語言,且僱用國外員工用Java開發電話類應用程式非常普遍,這可能是印度使用Java較多的原因。德國開發者將Java作為主要語言的比例也很高,這可以歸因於Java是德國軟體工程師最喜歡的語言,並大規模用於眾多工業應用開發。大多數企業服務都依靠Java來支持日常業務運行的應用程式,如工資單、庫存管理、報告等。德國還有一個龐大的金融部門,Java大量用於本土科技產業,如交易機器人、零售銀行系統,以及金融業為了保持競爭力而需要的其他應用程式。
我們可能會認為美國的Java用戶比例很高,但是從很多方面講,事實並非如此。美國有大量的技術堆棧可供選擇,而且很多技術公司通常掌握堆棧的最前沿技術,因此那裡的開發人員可能並不需要Java的功能或穩定性,而是用可以讓他們快速進行開發和測試的語言。
行業洞見:三分之一專業開發者將Java用作主要語言
根據2020年開發人員生態系統狀況調查顯示,超過三分之一的專業開發人員將Java用作主要語言,且Java仍然是僅次於JavaScript的專業開發人員使用的第二大語言。
專家分析
JavaScript和Java並肩而立並不奇怪。使用Java的開發人員經常使用JavaScript編寫前端和快速開發腳本。由於機器學習的普及,Python可能排名第三。總的來說,預計Web將成為開發人員生態系統的重要組成部分,因此JavaScript、HTML和CSS和PHP的地位會一直很穩定。SQL的排名也會比較穩定,因為從一定程度上來說幾乎沒有什麼是不需要資料庫的。C ++也是一種可靠的語言,因為被用於許多嵌入式應用程式中,因此不會很快消失在排名表中。儘管C#似乎正在逐漸衰落,但我認為Java的排名越高,C#排名就會降低,因為兩者在功能上非常相似。關於Java在專業開發領域排名靠前的原因,其實與上述Java在德國的處境相似。大多數企業業務服務都依賴Java,不僅是IT部門,幾乎每個公司,無論是在分銷、製造還是銀行業,都將IT服務作為其基礎結構的一部分,而這些服務(例如薪資或庫存管理)通常都是在後端使用Java開發的。因此,這些公司的專業開發人員經常使用Java。
用Java開發的軟體類型:Web服務中Java最受歡迎
快速查看一下使用Java開發的軟體類型,就可以大致了解其使用情況。根據《2020年開發者生態系統狀況》的結果,Web服務是Java最受歡迎的領域,佔比52%。
專家分析
令人驚訝的是,Java在商業智能/數據科學/機器學習中如此流行,因為你可能認為這些領域應該是Python的「地盤」。在其他領域的結論並不稀奇,因為Web服務的後端通常是Java,為了與後端和資料庫協調一致,用Java編寫業務應用程式也順其自然。
使用Java的熱門行業:IT服務、金融與金融科技
現在我們知道了為什麼許多專業開發人員都使用Java,下面來研究一下Java的使用行業。
根據2020年開發者生態系統調查,Java程式設計師主要在IT服務(42%)和金融與金融科技(44%)中工作,但這並不是說Java不用於其他行業。
專家分析
金融和金融科技領域主要涉及金融交易、零售銀行系統,程式設計師需要開發計算引擎和本地定製工具和服務,讓公司在市場上具有競爭力。金融和金融科技系統幾乎都是用Java開發的,因此這並不奇怪。IT服務也是如此,因為許多針對非IT公司的薪資系統和庫存管理服務都是基於Java開發的。Java在其他行業的處境也很有趣。因為Android,移動開發使用Java的比例可能很高。大數據和數據分析領域非常有趣,因為這個行業由Python主導,但是後端可能會使用Java和JVM語言。軟體開發工具當然也很偏愛Java。JetBrains IDE當前就是使用Java開發的。
Java工具
Java版本
Java 8仍然是最受歡迎的版本。使用Java作為主要語言的專業開發人員中有75%使用這個版本。
專家分析
有幾個因素導致Java 8如此受歡迎。首先,它具有典型Java開發人員從該語言中所需的一切,它具有lambda和流,總體來說是一個易於使用的版本。另一方面,開發者真的不願意用Java9。Java9引入了一些重大的體系結構更改,人們擔心這些更改會破壞他們用Java 8開發的應用程式。最重要的是,Oracle推出了每兩年發行一次的版本,並非所有版本都可以得到長期支持,Java 9、Java 10、Java 12和Java 13僅受6個月支持,這可能就是為什麼這些版本用戶少的原因。Java 13的排名之所以高,是因為當本調查結束時這是最新的版本,預計Java 13的排名會在幾個月後下降。
Java 11於2018年問世,是具有長期支持的最新版本。許多企業仍未遷移到這個版本,因為他們擔心跳過Java 9(體系結構更改)會帶來一些麻煩,並且Java 11引入了新的許可和新的註冊規則,開發者擔心如果用了錯誤的版本,或者使用的方式不對會被Oracle罰款。許多開發人員不升級到Java 11的最後一個主要因素是,這個版本並沒有什麼令人興奮的新功能,風險大於新功能,遷移到Java 11不划算。Java 17將是具有長期支持的下一個版本,並帶有許多新功能,但是從Java 8直接跳到Java 17,可能會引起新的問題。
我的預測是,下一個長期版本Java 17將比上一個長期支持版本Java 11更受歡迎。不過,我真的不能施加太大壓力,建議先將代碼庫更新為Java 11,再逐步更新至Java 17,以避免出現大問題。
流行的應用伺服器
在過去的三年中,Apache Tomcat仍然是最受歡迎的應用伺服器,而JBoss EAP和WildFly的使用卻減少了一半。
專家分析
Jetty排名第二,但佔比出奇地低。可能是某些正在使用Spring Boot和其他微服務框架的開發者可能沒有意識到他們在幕後使用的東西——他們可能正在使用Tomcat或Jetty,但不了解它們。
排名前五的Web框架
2018年,Spring Boot和Spring MVC的受歡迎程度旗鼓相當,但前者在2020年變得更加流行。
專家分析
這證明了Spring確實擁有市場。仍然有人在使用Struts 1,但幾乎可以肯定只在舊版應用程式中使用。
排名前五的JVM探查器
報告顯示,24%的開發者使用VisualVM,但一半開發者並未使用。數據來源於所有把Java作為主要語言的開發者。
排名前五的IDE /編輯器
報告顯示,IntelliJ IDEA的佔比從2018年的55%增加至2020年的72%,而其他四個的使用佔比降低。
專家分析
儘管我們對調查結果進行了加權,也無法保證數據沒有偏差,因為數據是從JetBrains開發者生態系統狀況調查得出的,JetBrains的主要產品之一就是IntelliJ IDEA。但這並不意味著數據不合理,就像我們在其他調查中看到的一樣,IntelliJ IDEA是最常用的IDE之一,一般用戶佔比在55-60%左右。VS Code的佔比正在增長,從實際情況出發,而非從競爭的角度來看,實際上VS Code會造成用戶對IDE理解上的空缺。VS Code是一個代碼編輯器,具備一些IDE功能和可以提供附加功能的擴展。因此,如果轉向VS Code進行開發,可能意味著開發者無法了解一個功能齊全的IDE可以帶給他們的東西。在網絡空間中,使用編輯器是可以理解的,因為網絡開發人員通常使用動態語言,而且通常會使用瀏覽器插件來獲取需要的東西。但是在Java中,特別是在專業Java中,你確實可以從與應用程式伺服器集成的好工具中受益匪淺,並可以使用分析,重構和所有功能。
討論最多的Java工具與其他語言
Java在IT社區中經常被討論,比如Stack Overflow。我們對Q&A部分進行統計分析,找出了與Java關聯性最大的標籤。縱軸表示Java提及的內容,橫軸表示標籤出現的總數。
專家分析
該圖表可能對想要確保使用正確技術或為尋找工具的用戶很有用。
Java社區中的熱門話題
我們分析了有關「 java」 subreddit的帖子, 發掘Java用戶在Reddit上討論最多的話題。
專家分析
這些話題與我的預期基本相符。例如,用Java寫代碼的人總是會對這種語言是否仍然有需求感興趣,畢竟,這種語言還在發展之中。Java已經25歲「高齡」,人們擔心它是否已經過時,還是仍然生機勃勃。尤其是剛畢業的學生,他們更關心自己所學的語言能不能讓他們找到一份好工作。
在容器中部署Java也是一個非常熱門的話題,包括我在內,每個人都關心這個話題,但是信息很少。
我對性能優化這個話題並不感到驚訝,儘管我認為這個主題有點多餘,因為大多數應用程式實際上並不需要開發者進行優化,但許多開發人員認為這是一項重要的職業技能。讓後端和前端協同工作也可能非常複雜,關於這個話題也有很多討論空間。
https://blog.jetbrains.com/idea/2020/09/a-picture-of-java-in-2020/