分析Java在2018年的形勢

weixin_34116110發表於2019-01-10

2018年已經過去了,在這一年中,Java開發者熱衷於什麼?什麼版本和框架是受眾比較高的?這裡用一系列資料和圖表來讓大家瞭解下在2018年整個Java平臺的趨勢。

1. Java版本的採用率

毫無意外,Java8依然在開發社群中佔主要地位:

15535205-1e280b3117f85741.png

Java9和Java10的採用率依然非常低,分別都只有低於5%的佔比。

作為參考,在2017年採用佔比為24.4%的Java7在現在也只佔了10.6%,可想而知,整個生態差不多都升級為Java8了。

2. Spring的採用率

現在讓我們來看看spring的資料:

15535205-1dac1c451e96f835.png

在這裡可以看出,Spring5的推進步伐相當明顯,在整個Spring體系佔比中,最新版本的Spring5佔據了24%,比上一年增長了差不多2.2%。

而且理所當然的是,在今年依然有不少人是使用非Spring的JavaEE框架進行開發,所以得出,Spring並不是每個人的必然選擇。

3. SpringBoot的採用率

在Spring搭建的工程中,大部分在生產中都是基於SpringBoot進行的:

15535205-3204fb2916ab4c7f.png

令人感到震驚的是,在GA(正式版本)剛出來不到兩個月,SpringBoot 2的採用趨勢竟然如此之快,已經達到了30%這樣巨大的數額。

1.4及更低的版本,和上一年相比已經下降了將近30%,變成現在的6.8%,這種趨勢表明Boot在升級速度上,比起廣大生態上說快得多。

關於SpringBoot最後說一點,在上一年中基於Spring的程式大約有30.2%使用非Boot的core framework進行開發,但現在只剩16.7%。簡而言之,大多數Spring程式現在都是使用Boot的。

4. 構建工具的採用率

Maven哪兒都不去,上一年它的指數穩定在75.7%,並且現在保持在74.2%

15535205-93cbc888319be7ee.png

對於Gradle,今年的數值為21.3%,比起上年有所上升;而對於Ant,只佔剩下比例的五分之一。

5. IDE的採用率

IDE的資料上,今年並沒有什麼區別

15535205-e9ad41efa283164e.png

IntelliJ明顯贏得了這次較量,從上年的45.8%躍升到今年的55.4%。

NetBeans今年的佔比比起上年的12.4%下降到一半的5.1%,這使得它的追隨者們大失所望。

Eclipse在今年情況有所緩和,僅僅下降了2%,目前是38%的佔有率。

有趣的一點是,IntelliJ獲得的大部分份額是來自於NetBeans而非Eclipse。

6. Web應用伺服器的佔有率

這是這年伺服器的佔有情況:

15535205-fe4ce160d4206da7.png

實際上,調查上出現一個問題那就是並沒有2017年的資料作為比較,但是這並不影響結論並且也不令人感到驚訝。

簡單來說,佔據大約62.5%主要比例的tomcat掌控了整個場面,其他伺服器都大約佔用5%的比例。

7. 其他JVM語言

在最後一個延伸話題,除了Java外,還有其他在使用的JVM語言嗎?

第一點是,62.8%的專案是單語言的,它們只是用Java。

這裡是生態中相關的資料:


15535205-544ec5afd4008de0.png

這裡是針對一些使用其他語種的“前瞻性專案”的比例資料:


15535205-4989da1656a4eb84.png

這裡得出的主要結論是,Kotlin經歷了瘋狂的一年,使用率從上一年的11.4%上升到今年的28.8%。Scala卻從上年的28.4%下跌到今年的21.6%。

8. 結論

在2018年裡,Java生態變得越來越受人關注了,它證實了一些廣為人知的趨勢,也挖掘了一些新的趨勢。

在大多數Spring專案上,SpringBoot佔了主導。這並不讓人感到意外,並且因為整個SpringBoot的生態過程時間並不長,所以這是一個巨大的成就。

在IDE這裡面,IntelliJ依然在強勢地增長。並且,Kotlin也許是今年最大的“贏家”,因為它完全改變了當前JVM語言的前景。

總的來說,Java社群中前景還是非常cool的,並且對參與到這次調查的大家表示感謝。

可以看出,未來的日子裡,Kotlin作為安卓開發的主力軍,肯定會有一個高趨勢的增長。並且雖然Java的版本進行了一個快速的迭代,但是Java8依然保持著雷打不動的地位,不知道在之後的將來,會不會有一個改變。

在這裡小編推薦下面分享Java程式設計師的學習線路圖。對於想要提升自己,對自己未來迷茫的Java工程師們,如需要這些架構路線圖,以及我們整理的一些架構師精講資料,可以加群程式設計師交流群:810589193獲取哦,涉及的知識點(Dubbo、Redis、設計模式、Netty、zookeeper、Spring cloud、分散式、高併發等架構技術)。

一、開源框架解析:

閱讀、分析原始碼是程式設計師最基本的碼程式碼能力也是碼農的根本所在,學習經典原始碼中所用到的經典設計思想及常用設計模式,能夠幫你瞭解大牛是如何寫程式碼的,從而吸收大牛的程式碼功力。在阿里面試中,MyBatis,Spring等框架的底層原理是經常會被問到的。


二、架構師築基:

百丈高樓平地起,基礎也是非常重要的,基礎不牢,自然不用談架構。


三、高效能架構

效能一直是讓程式設計師比較頭疼的問題。當系統架構變得複雜而龐大之後,效能方面就會下降,特別是阿里巴巴這樣的一線網際網路公司最為注重,因此想進入阿里,效能優化一定是要去深入學習與理解的一環


四、微服務架構

關於微服務架構的取捨

微服務是現在網際網路架構技術中最火熱的話題之一,也是我目前正在學習研究的方向。在面試過程中,面試官很少會問到關於微服務相關的問題。但作為一名開發者,一名有技術夢想的程式設計師微服務架構是現在必須要去了解的主流技術:


五、團隊協作:

開發工具工程化

通過一小段描述資訊來管理專案的構建,報告和文件的軟體專案管理工具。程式設計師的戰鬥,往往不是一個人的戰鬥,我們如何在一個平臺下高效的去重,進行程式碼review,對功能進行調整,debug,做到在統一的規劃下步步為營,混亂的堆程式碼的過程中找到自己的記錄。這一切都依賴於有效的工具。

六、B2C專案實戰

專案實戰

要想立足於網際網路公司,且能在網際網路浪潮中不被淹沒,對於專案的開發實戰演練是不必可少的技能,也是對自身能力的一個衡量,有多少的量對等於獲得多少的回報。看似簡單的一個專案需求圖譜,其中的底層原理,實現原理又能知道多少?你搭建一個完整的B2C專案平臺到底需要多少知識?這一切都是需要我們考量的。

工作一到五年的程式設計師朋友面對目前的技術無從下手,感到很迷茫可以加群:810589193,點選連結加入群聊【Java架構學習交流群】:https://jq.qq.com/?_wv=1027&k=5deQUBl裡面有阿里Java高階大牛直播講解知識點,分享知識,課程內容都是各位老師多年工作經驗的梳理和總結,帶著大家全面、科學地建立自己的技術體系和技術認知!

相關文章