2020年了Java還有前途嗎?
今年,Java達到了一個令人難以置信的里程碑,并達到了25歲的高齡。
這讓我們開始思考并決定深入研究數(shù)據(jù),以一勞永逸地發(fā)現(xiàn)Java的普遍狀態(tài),并幫助回答您的一些迫切問題。我們發(fā)現(xiàn)的某些內(nèi)容可能不足為奇,但也有一些非常出乎意料的見解。
開發(fā)者分布在哪里
第一個問題是:“大多數(shù)Java開發(fā)人員都在哪里,我們中有多少人呢?” 我們通過結(jié)合可以獲取的最準確的信息來進行回答,然后進行推斷以得出我們認為是很好的猜測。
市場研究和分析團隊對開發(fā)人員估計模型的最佳估計表明,當今世界上有大約520萬專業(yè)Java開發(fā)人員將Java作為主要語言。但是,如果我們包括主要使用其他編程語言,但同時也使用Java的專業(yè)開發(fā)人員,那么這個數(shù)字可能接近680萬。
關(guān)于這些Java開發(fā)人員的集中地,亞洲居住的Java開發(fā)人員數(shù)量最多,大約有250萬開發(fā)人員使用Java作為主要語言。北美和歐洲的數(shù)字遠不及亞洲。您可能會問,“但是為什么?” 好吧,起初我們有完全相同的想法,所以我們對這些區(qū)域進行了更深入的研究,以確切地了解數(shù)字的來源。

具體在哪里
更深入地講,我們研究了Java開發(fā)人員最多的各個國家,然后調(diào)查了為什么這些國家在專業(yè)開發(fā)方面特別喜歡Java而不是其他語言。
下圖顯示了每個國家/地區(qū)使用Java作為主要語言的開發(fā)人員所占的百分比(用于收集此數(shù)據(jù)的調(diào)查受訪者最多可以選擇3種主要語言)。中國和韓國的數(shù)值最高,分別約為51%和50%。數(shù)據(jù)取自《?2020年開發(fā)商生態(tài)系統(tǒng)狀況調(diào)查》。
專家分析Java在前6個國家中如此受歡迎的原因包括Java的免費使用,政府支持和開源。對于中國,西班牙和巴西尤其如此。它是在中國和印度進行Android移動開發(fā)的基礎,并且雇用離岸員工以Java構(gòu)建手機應用程序非常普遍,這可能是印度使用高峰的原因。德國也很高,這可以歸因于Java是德國軟件工程師最流行的語言,因為它被用于為許多行業(yè)構(gòu)建高度可伸縮的應用程序。大多數(shù)企業(yè)服務都依靠Java來驅(qū)動支持日常業(yè)務運行的應用程序,例如工資單,庫存管理,報告等。德國還有一個龐大的金融部門,其Java大量用于其自身的技術(shù),例如交易機器人,零售銀行系統(tǒng)以及金融業(yè)為了保持競爭力而需要的其他應用程序。
我們可能曾期望美國的Java用戶比例很高,但是從很多方面講,他們沒有。有大量的技術(shù)堆棧可供選擇,而且很多技術(shù)公司通常處于該堆棧的最前沿,因此可能是那里的開發(fā)人員不需要Java的功能或穩(wěn)定性,而是使用允許他們執(zhí)行以下操作的語言:快速建立并測試。

行業(yè)見解
根據(jù)?2020年開發(fā)人員生態(tài)系統(tǒng)狀況調(diào)查,超過三分之一的專業(yè)開發(fā)人員將Java用作主要語言,而Java仍然是僅次于JavaScript的專業(yè)開發(fā)人員中的第二主要語言。
專家分析看到JavaScript和Java處于配對狀態(tài),這是不足為奇的。使用Java的開發(fā)人員經(jīng)常使用JavaScript編寫前端和任何快速腳本。由于機器學習的普及,Python可能排名第三??偟膩碚f,我們希望Web成為開發(fā)人員生態(tài)系統(tǒng)的重要組成部分,因此JavaScript,HTML和CSS以及PHP將始終保持穩(wěn)定的地位。SQL也將一直存在,因為并不需要太多容量的數(shù)據(jù)庫。C ++也是一種可靠的語言,因為它用于許多嵌入式應用程序,因此它不會很快消失在圖表中。盡管C#似乎正在逐漸衰落,但我想如果Java高,那么C#就會低,因為它們在功能方面都非常相似。關(guān)于我為什么認為Java在專業(yè)發(fā)展領(lǐng)域如此之高的原因–與關(guān)于德國提到的內(nèi)容相似。大多數(shù)企業(yè)業(yè)務服務都依賴Java使它們順其自然。不僅是IT部門-幾乎每個公司,無論是在分銷,制造還是銀行業(yè),都將IT服務作為其基礎結(jié)構(gòu)的一部分,而這些服務(例如薪資或庫存管理)通常都是在后端使用Java構(gòu)建的。因此,為這些公司工作的專業(yè)開發(fā)人員經(jīng)常使用Java。

用Java開發(fā)的軟件類型
快速瀏覽使用Java開發(fā)的軟件類型應該可以了解其使用情況統(tǒng)計信息。根據(jù)《?2020年開發(fā)者生態(tài)系統(tǒng)狀況》的結(jié)果,Web服務是Java最受歡迎的領(lǐng)域,占52%。
專家分析令人驚訝的是,Java在商業(yè)智能/數(shù)據(jù)科學/機器學習中如此流行,因為您認為這將是Python的領(lǐng)域。其他Web服務的后端通常是Java,因此并不令人驚訝,因為使用Java編寫業(yè)務應用程序也很有意義,因為它們也需要與后端和數(shù)據(jù)庫一起工作。

使用Java的熱門行業(yè)
現(xiàn)在我們知道了為什么許多專業(yè)開發(fā)人員都使用Java,下面讓我們專門研究一下Java的使用行業(yè)。
根據(jù)?2020年開發(fā)者生態(tài)系統(tǒng)調(diào)查,Java程序員主要在IT服務(42%)和金融與金融科技(44%)中工作,但這并不是說Java不用于其他行業(yè)。
專家分析金融和金融科技領(lǐng)域主要涉及金融交易所,零售銀行系統(tǒng),創(chuàng)建計算引擎以及開發(fā)本地定制工具和服務,以使公司在市場上具有競爭力。Finance和FinTech幾乎都是用Java建立的,因此這里并不奇怪。IT服務也是如此,因為許多針對非IT公司的薪資系統(tǒng)和庫存管理服務都是基于Java構(gòu)建的。其他行業(yè)雖然很有趣。由于Android,移動開發(fā)的速度可能很高,因此以這種方式使用Java。大數(shù)據(jù)和數(shù)據(jù)分析非常有趣,因為該行業(yè)由Python領(lǐng)導,但是后端可能會使用Java和JVM語言。軟件開發(fā)工具,當然可以。JetBrains IDE當前使用Java構(gòu)建。

Java工具
Java版本
Java 8仍然是最受歡迎的版本。使用Java作為主要語言的專業(yè)開發(fā)人員中有75%使用了它。下圖顯示了Java版本的分布情況,假設開發(fā)人員在?2020開發(fā)者生態(tài)系統(tǒng)調(diào)查中選擇了其中的幾個版本。
專家分析有幾個因素導致Java 8如此受歡迎的原因。首先,它具有典型Java開發(fā)人員從該語言中所需的一切,它具有l(wèi)ambda和流,并且通常是一個易于使用的好版本。而且,人們真的不愿意使用Java9。Java9引入了一些重大的體系結(jié)構(gòu)更改,人們擔心這些更改會破壞他們用Java 8構(gòu)建的應用程序。最重要的是,Oracle推出了每兩年發(fā)行一次的版本,并且因此并非所有版本都長期受支持,因此Java 9,Java 10,Java 12和Java 13僅受6個月支持,這可能就是為什么它們都只有這么少用戶的原因。Java 13之所以如此之高,是因為當本調(diào)查結(jié)束時,它是最新版本,因此您可以預期Java 13會在幾個月后下降。Java 11于2018年問世,它是具有長期支持的最新版本。許多企業(yè)仍未遷移到它,因為他們擔心超越Java 9(隨著體系結(jié)構(gòu)的更改)會破壞一切,并且?Java 11引入了新的許可和新的訂閱,因此它更加擔心如果您使用錯誤的版本,以錯誤的方式,Oracle會罰款您。許多開發(fā)人員不升級到Java 11的最后一個主要因素是,它沒有許多令人興奮的新功能,因此語言的功能并未降低升級的風險。Java 17將是具有長期支持的下一個版本,并帶有許多新功能,但是從Java 8到Java 17的直接更新將有其自身的問題。我的預測是,我認為下一個長期版本Java 17將比上一個LTS(長期支持版本)Java 11更受歡迎。不過,作為Java 17的準備,我真的不能對此施加太大壓力,建議您先將代碼庫更新為Java 11,然后再更新為Java 17,以避免出現(xiàn)大問題。

流行的應用服務器
在過去的三年中,Apache Tomcat仍然是最受歡迎的應用服務器,而JBoss EAP和WildFly的使用卻減少了一半。所提供的數(shù)據(jù)來自所有使用Java作為主要語言的開發(fā)人員 ,這些人員參加了?2018年和?2020年的Developer Ecosystem Survey。
專家分析Jetty位居第二,但確實令人驚訝地低??赡苁悄承┱谑褂肧pring Boot和其他微服務框架的開發(fā)人員可能沒有意識到他們在幕后使用的東西–他們可能正在使用Tomcat或Jetty而不了解它們。

前五名Web框架
Spring Boot在2018年已經(jīng)和Spring MVC同樣流行了 ,現(xiàn)在(2020年)已經(jīng)更加流行了。給出的數(shù)據(jù)來自所有使用Java作為主要語言的開發(fā)人員。
專家分析這基本上只是在確認Spring擁有市場。仍然有人在使用Struts 1幾乎可以肯定只在舊版應用程序中使用。

前五名JVM探查器
該?開發(fā)者的生態(tài)系統(tǒng)國家調(diào)查2020顯示,VisualVM的使用由用戶的24%,而一半使用沒有。給出的數(shù)據(jù)來自所有使用Java作為主要語言的開發(fā)人員。

前5名IDE /編輯器
根據(jù)開發(fā)者生態(tài)系統(tǒng)調(diào)查 ?2018和?2020的報告,IntelliJ IDEA的份額從2018年的55%增加到2020年的72%,而其他四個的使用減少了。
專家分析不過,即使我們對調(diào)查結(jié)果進行了加權(quán),我們也不否認信息可能會偏斜,因為這是從?JetBrains開發(fā)者生態(tài)系統(tǒng)狀況調(diào)查得出的,JetBrains的主要產(chǎn)品之一是IntelliJ IDEA。但是,這并不是說這并非完全不合理,就好像我們在其他調(diào)查中看到的一樣,IntelliJ IDEA通常是最常用的IDE之一,通常擁有約55-60%的用戶份額。VS Code正在增長,這不是從競爭的角度來看,實際上是從對IDE給您的理解上缺乏了解的角度出發(fā)。VS Code是一個代碼編輯器,具有一些您可以在IDE中找到的功能以及可以提供附加功能的擴展-因此,如果人們轉(zhuǎn)向VS Code進行開發(fā),則可能意味著開發(fā)人員不知道什么是功能齊全的功能。IDE可以給他們。在網(wǎng)絡空間中,使用編輯器是可以理解的,因為網(wǎng)絡開發(fā)人員通常使用動態(tài)語言,

討論最多的Java工具和其他語言
Java在IT社區(qū)中經(jīng)常被討論,其中之一就是Stack Overflow。我們從“ ?問題與解答”章節(jié)中獲取了數(shù)據(jù),以找出哪些標簽最常出現(xiàn)“java”??v軸表示Java提及的內(nèi)容,橫軸表示標簽出現(xiàn)的總數(shù)。
專家分析該圖表可能對想要確保使用正確技術(shù)或為他們尋找工具的用戶很有用。這些語言很有意思,但這可能是因為人們正在尋找Java與其他語言之間的比較。正則表達式是人們苦苦掙扎的一種利基市場,但他們躋身榜單并不奇怪。

Java社區(qū)中的熱門話題
Java討論
我們分析了有關(guān)?“ java” subreddit的帖子, 并發(fā)現(xiàn)Java用戶在Reddit上討論最多的主題。
專家分析這些正是我期望看到的主題。例如,用Java編寫代碼的人總是會對這種語言是否仍然有需求感興趣,畢竟,這種語言還在發(fā)展。我們剛剛慶祝了Java誕生25周年,因此人們希望檢查它是否過時和遺留,并且仍然有效。特別是,如果他們剛剛大學畢業(yè),卻不知道他們所學的語言是否會為他們提供工作機會。在容器中部署Java是一個非常熱門的話題,包括我在內(nèi),這是每個人都想知道的東西,但幾乎找不到任何信息。我對性能優(yōu)化這個主題并不感到驚訝,盡管我認為這個主題有點多余,因為大多數(shù)應用程序?qū)嶋H上并不需要開發(fā)人員進行優(yōu)化,盡管許多開發(fā)人員認為這是一項重要的職業(yè)技能。使后端和前端協(xié)同工作也可能非常復雜,我可以想象對此存在很多問題。

