大數(shù)據(jù)分析Java未來(lái)5年發(fā)展趨勢(shì)
近些年的技術(shù)圈,單以計(jì)算機(jī)語(yǔ)言界來(lái)說(shuō),穩(wěn)坐太師椅的 Java “或?qū)⒈蝗〈?rdquo;、迎接轉(zhuǎn)折點(diǎn)、Java 項(xiàng)目工程師風(fēng)光不再等言論不絕于耳。在焦慮的大環(huán)境下,所有人好像都看起來(lái)很焦慮不安。
我覺(jué)得針對(duì)這類(lèi)“唱衰論”,也不難理解。不僅,基于 Java 技術(shù)自身來(lái)講,Oracle 為此前版本三番五次地“晚到”,下決心會(huì)以六個(gè)月為期限加速 Java 的上架頻率,可是針對(duì)開(kāi)發(fā)人員來(lái)講,做為開(kāi)發(fā)環(huán)境更新速率太快,不利生產(chǎn)環(huán)境,也會(huì)為開(kāi)發(fā)設(shè)計(jì)造成許多的兼容問(wèn)題,無(wú)形之中平白被增多了勞動(dòng)量,沒(méi)有開(kāi)發(fā)人員會(huì)高興。同時(shí),新版本 OracleJDK 的不能免費(fèi)商用問(wèn)題也讓 Java 失去原來(lái)的許多支持用戶。據(jù)此,許多開(kāi)發(fā)人員甚至用“作死”一詞來(lái)描述 Oracle 的獨(dú)裁。除開(kāi)內(nèi)部要素,從外界來(lái)說(shuō),2018 年隨之人工智能技術(shù)大火的 Python、2017 年 谷歌 發(fā)表聲明將做為 Android 開(kāi)發(fā)一級(jí)語(yǔ)言的 Kotlin 、2016 年因前端開(kāi)發(fā)而變成最火爆語(yǔ)言的 JavaScript 等等均向傳統(tǒng)式計(jì)算機(jī)語(yǔ)言 Java 參與了挑戰(zhàn)。但與其說(shuō)語(yǔ)言遭受了挑戰(zhàn),說(shuō)到底還是不同語(yǔ)言所應(yīng)用的領(lǐng)域吸引的人才互相碰撞。
說(shuō)到底的唱衰論,援引一名網(wǎng)友的見(jiàn)解來(lái)道破其本質(zhì),「當(dāng)今世界只有倆種計(jì)算機(jī)語(yǔ)言,一種是每天挨訓(xùn)的,一種是沒(méi)有人用的。」那么,在該觀點(diǎn)后邊真實(shí)的 Java 應(yīng)用現(xiàn)況究竟怎樣?仿徨于 Java 圍城之外的開(kāi)發(fā)者們?cè)撛鯓颖M快把握 Java 有關(guān)的技術(shù)?下一步,我們將從 Java 開(kāi)發(fā)者最廣泛的調(diào)查報(bào)告中一窺究竟,期望對(duì)大家有所裨益。參與該調(diào)查報(bào)告的有來(lái)自全球 10500 名的 Java 開(kāi)發(fā)者。
Java 開(kāi)發(fā)者常會(huì)運(yùn)用的 JDK?

截至現(xiàn)階段,Java 中 JDK 贏家眾所周知指的是 Oracle JDK 和 OpenJDK。不過(guò)隨之 JDK 8 和 JDK 11 中許可和支持的變化,下一次的 Java 調(diào)研統(tǒng)計(jì)數(shù)據(jù)或者會(huì)產(chǎn)生很大變動(dòng)。
開(kāi)發(fā)者使用的 JDK 占比

不過(guò)依據(jù)該匯報(bào)的數(shù)據(jù)調(diào)查報(bào)告,其中,令人費(fèi)解的是,很難搞清楚 1% 的 Java 開(kāi)發(fā)者是怎樣在“無(wú) JDK”的情況下進(jìn)行 Java 編程的。
Java 開(kāi)發(fā)者首要采用的 Java EE 版本是啥?

按照數(shù)據(jù)調(diào)查報(bào)告,有 38% 的 Java 開(kāi)發(fā)人員根本不運(yùn)用 Java EE。估計(jì)不少都使用了 Spring Framework。不過(guò)或者也有一些 Swing 和 JavaFX 開(kāi)發(fā)人員。
Java 軟件工程師首要采用什么 JVM 語(yǔ)言?

雖然如文章伊始提到的,2017 年,谷歌 將 Kotlin 當(dāng)做 Android 官方網(wǎng)編程語(yǔ)言,“Java 將被取代”觀點(diǎn)也隨之而來(lái)。但是依據(jù)調(diào)查研究報(bào)告結(jié)果顯示,在這一問(wèn)題中,Java 依然占主導(dǎo)地位。而 Kotlin 只是 2.42% 的受訪者表達(dá)當(dāng)今將其當(dāng)做工程項(xiàng)目開(kāi)發(fā)設(shè)計(jì)的首要語(yǔ)言。除此之外,它雖說(shuō)超出了 Scala 的利用率,但仍然落后于 Clojure。
哪幾個(gè) IDE Java 開(kāi)發(fā)人員常用?

針對(duì)這一問(wèn)題,一名軟件工程師表示:“IntelliJ IDEA 是我采用過(guò)比較好的 IDE。以前我用過(guò) Eclipse 和 NetBeans,可是自從我嘗試了 IntelliJ,我再也不會(huì)回過(guò)頭來(lái)。這樣的話我覺(jué)得代表,我不喜歡 vi / vim 編輯器。實(shí)際上,我喜歡用他們來(lái)迅速編寫(xiě)文件或撰寫(xiě) bash 腳本。我覺(jué)得所有開(kāi)發(fā)者都應(yīng)當(dāng)具有運(yùn)用 vim 和 bash 腳本的一些基礎(chǔ)知識(shí)。”
按照?qǐng)?bào)告顯示,有 45% 的開(kāi)發(fā)人員以 IntelliJ IDEA 為開(kāi)發(fā) Java 項(xiàng)目的 IDE。次之各自有 38% 的開(kāi)發(fā)者采用全免費(fèi)的 Eclipse 和 11% 的受訪者使用 NetBeans。
Java 開(kāi)發(fā)者首要采用哪幾種構(gòu)建工具?

許多開(kāi)發(fā)人員在他們的項(xiàng)目中使用不同的構(gòu)建工具,因此值得注意的是,調(diào)查中的問(wèn)題是要求開(kāi)發(fā)者選擇使用的主要構(gòu)建工具。而絕大部分工程項(xiàng)目全部都是采用 maven 構(gòu)建的。
Java 開(kāi)發(fā)人員采用哪幾種 CI 工具?

如同大部分開(kāi)發(fā)者所期待的那般,Jenkins 以高達(dá) 57% 的市場(chǎng)占有率獲得 CI 服務(wù)器工具。此外,也有 21% 的開(kāi)發(fā)人員尚未采用所有別的的 CI 工具。
哪幾個(gè)源代碼管理工具是開(kāi)發(fā)設(shè)計(jì)團(tuán)隊(duì)首要采用的?

針對(duì)有 74% 的受訪者選用 Git,合乎情理也屬于情理之中。但令人驚訝的是,竟有 16% 的開(kāi)發(fā)人員仍在采用 Subversion(a.k.a SVN)。
Java 開(kāi)發(fā)人員首要應(yīng)用哪幾個(gè)測(cè)試技術(shù)?

知名軟件工程大師 Robert C. Martin 在他關(guān)于軟件開(kāi)發(fā)專業(yè)化的探討中曾表達(dá)道:“我們(軟件工程師)對(duì)企業(yè)系統(tǒng)相等于醫(yī)生對(duì)人的心臟手術(shù)。我們都是企業(yè)掙錢(qián)或虧錢(qián)的根本原因......我們都是把握企業(yè)命運(yùn)線的人“。
殊不知,10% 的開(kāi)發(fā)者回應(yīng)說(shuō)他們都沒(méi)有采用其他測(cè)試技術(shù)。嗯,在此祝愿歲月靜好!
老實(shí)說(shuō),期望這些在平時(shí)開(kāi)發(fā)設(shè)計(jì)中都沒(méi)有測(cè)試代碼習(xí)慣的 10% 的參與者僅僅自學(xué)的開(kāi)發(fā)人員或是仍未加入工作的大學(xué)生。
Java 程序員在應(yīng)用程序中會(huì)采用哪幾個(gè)非 JVM 語(yǔ)言?

如今有許多的 Java 應(yīng)用程序前端全部都是用 JavaScript 編輯。按照調(diào)查研究報(bào)告結(jié)果顯示,57% 的受訪者表達(dá)采用 JavaScript 語(yǔ)言,但并不清楚他們采用的是純 JavaScript 還是別的其他相近 TypeScript 的語(yǔ)法超集。次之,有 56% 的程序員選用 SQL,也有 8% 的受訪者表達(dá)尚未工程項(xiàng)目中使用任何別的非 JVM 語(yǔ)言。
哪幾個(gè) Web 框架是 Java 開(kāi)發(fā)人員的最喜歡?

有 40% 的受訪者挑選了 Spring Boot 架構(gòu),有 36% 的開(kāi)發(fā)人員選取了 Spring MVC,兩者之間利用率差距不大。
開(kāi)發(fā)者采用哪幾個(gè) ORM 架構(gòu)?

注:該選項(xiàng)為多選,因而總量不等于 100%。
按照匯報(bào)顯示,有高于一半的開(kāi)發(fā)者運(yùn)用了 Hibernate。次之有 23% 的受訪者選取了 JDBC。但嚴(yán)格意義上而言,JDBC 并非 ORM 框架,因此說(shuō)選取 None 這一選項(xiàng)的開(kāi)發(fā)者也有將會(huì)采用 JDBC。
Java 開(kāi)發(fā)者采用哪種數(shù)據(jù)庫(kù)?

Oracle 占有率 27%,穩(wěn)居榜首,隨后是 MySQL 和 PostgreSQL。只有 9% 的 Java 開(kāi)發(fā)人員采用了 Microsoft SQL,這并不奇怪,是因?yàn)檫@是 C# 的利基。
MongoDB 是 NoSQL 數(shù)據(jù)庫(kù)產(chǎn)品中最熱門(mén)的一種,使用的人數(shù)是 IBM Db2 數(shù)據(jù)庫(kù)的 5 倍。
哪幾個(gè)應(yīng)用服務(wù)器開(kāi)發(fā)者最常使用?

毫無(wú)疑問(wèn),Tomcat 以 41% 的占比穩(wěn)居頭名。
Java 開(kāi)發(fā)者多久發(fā)布一次新版本的代碼?

令人驚嘆的是,7% 的開(kāi)發(fā)者表示每天多次發(fā)布項(xiàng)目更新代碼。
Java 開(kāi)發(fā)者的地理位置分布?

根據(jù)調(diào)查顯示,大多數(shù)的開(kāi)發(fā)者位于歐洲。
使用 Java 的開(kāi)發(fā)者年齡分布?

最為已有二十幾年歷史的 Java,其使用者大多是伴隨其發(fā)展成長(zhǎng)起來(lái)的人,根據(jù)報(bào)告顯示,有 38% 的軟件開(kāi)發(fā)人員年齡為 30-40 歲。
程序員如何獲得及學(xué)習(xí)有關(guān) Java 技術(shù)?

對(duì)于這個(gè)問(wèn)題,這里的贏家應(yīng)該是 Google,很多程序員都會(huì)通過(guò) Google 去搜索相關(guān)信息。而碰巧大多數(shù)答案都可以在 Stack Overflow 中找到。
Java 開(kāi)發(fā)者為開(kāi)源貢獻(xiàn)了多少?

不論是國(guó)內(nèi)還是海外的一些開(kāi)發(fā)人員在空余時(shí)間都會(huì)自己構(gòu)建小項(xiàng)目,但是整體而言,想要找到更多的時(shí)間去維護(hù)開(kāi)源項(xiàng)目其實(shí)并不容易,按照前文的數(shù)據(jù)結(jié)果顯示,38% 的 Java 開(kāi)發(fā)者年齡處于 30-40 歲之間,此時(shí),日常工作以及家庭占據(jù)了他們大多數(shù)時(shí)間,很難再抽出空閑時(shí)間。這也是為什么有 55% 的人從未開(kāi)源過(guò)項(xiàng)目。