近些年的技術(shù)圈,單以計算機語言界來說,穩(wěn)坐第一把太師椅的 Java “或?qū)⒈蝗〈薄⒂愚D(zhuǎn)折點、Java
項目工程師風光不再等言論不絕于耳。在焦慮的大環(huán)境下,所有人好像都看起來很焦慮不安。
針對這類“唱衰論”,也不難理解。不僅,基于 Java 技術(shù)自身來講,Oracle 為此前版本三番五次地“晚到”,最后下決心會以六個月為期限加速
Java
的上架頻率,可是針對開發(fā)人員來講,做為開發(fā)環(huán)境更新速率太快,不利生產(chǎn)環(huán)境,也會為開發(fā)設(shè)計造成許多的兼容問題,無形之中平白被增多了勞動量,沒有開發(fā)人員會高興。
同時,新版本 OracleJDK 的不能免費商用問題也讓 Java 失去原來的許多支持用戶。據(jù)此,許多開發(fā)人員甚至用“作死”一詞來描述 Oracle
的獨裁。除開內(nèi)部要素,從外界來說,2018 年隨之人工智能技術(shù)大火的 Python、2017 年 谷歌 發(fā)表聲明將做為 Android 開發(fā)一級語言的
Kotlin 、2016 年因前端開發(fā)而變成最火爆語言的 Javascript 等等均向傳統(tǒng)式計算機語言 Java
參與了挑戰(zhàn)。但與其說語言遭受了挑戰(zhàn),說到底還是不同語言所應(yīng)用的領(lǐng)域吸引的人才互相碰撞。
說到底的唱衰論,援引一名網(wǎng)友的見解來道破其本質(zhì),「當今世界只有倆種計算機語言,一種是每天挨訓(xùn)的,一種是沒有人用的。」那么,在該觀點后邊真實的 Java
應(yīng)用現(xiàn)況究竟怎樣?仿徨于 Java 圍城之外的開發(fā)者們該怎樣盡快把握 Java 有關(guān)的技術(shù)?下一步,我們將從 Java
開發(fā)者最廣泛的調(diào)查報告中一窺究竟,期望對大家有所裨益。參與該調(diào)查報告的有來自全球 10500 名的 Java 開發(fā)者。
一、Java 開發(fā)者常會運用的 JDK?
截至現(xiàn)階段,Java 中 JDK 最大的贏家眾所周知指的是 Oracle JDK 和 OpenJDK。不過隨之 JDK 8 和 JDK 11
中許可和支持的變化,下一次的 Java 調(diào)研統(tǒng)計數(shù)據(jù)或者會產(chǎn)生很大變動。
二、開發(fā)者使用的 JDK 占比
不過依據(jù)該匯報的數(shù)據(jù)調(diào)查報告,其中,令人費解的是,很難搞清楚 1% 的 Java 開發(fā)者是怎樣在“無 JDK”的情況下進行 Java 編程的。
三、首要采用的 Java EE 版本是啥?
按照數(shù)據(jù)調(diào)查報告,有 38% 的 Java 開發(fā)人員根本不運用 Java EE。估計不少都使用了 Spring framework。不過或者也有一些
Swing 和 JavaFX 開發(fā)人員。
四、首要采用什么 JVM 語言?
雖然如文章伊始提到的,2017 年,谷歌 將 Kotlin 當做 Android 官方網(wǎng)編程語言,“Java
將被取代”觀點也隨之而來。但是依據(jù)調(diào)查研究報告結(jié)果顯示,在這一問題中,Java 依然占主導(dǎo)地位。而 Kotlin 只是 2.42%
的受訪者表達當今將其當做工程項目開發(fā)設(shè)計的首要語言。除此之外,它雖說超出了 Scala 的利用率,但仍然落后于 Clojure。
五、哪幾個 IDE Java 開發(fā)人員常用?
針對這一問題,一名網(wǎng)名為 program9 的軟件工程師表示:“IntelliJ IDEA 是我采用過最好的 IDE。以前我用過 Eclipse 和
NetBeans,可是自從我嘗試了 IntelliJ,我再也不會回過頭來。這樣的話我覺得代表,我不喜歡 vi / vim
編輯器。實際上,我喜歡用他們來迅速編寫文件或撰寫 bash 腳本。我覺得所有開發(fā)者都應(yīng)當具有運用 vim 和 bash 腳本的一些基礎(chǔ)知識?!?/p>
按照報告顯示,有 45% 的開發(fā)人員以 IntelliJ IDEA 為開發(fā) Java 項目的 IDE。次之各自有 38% 的開發(fā)者采用全免費的
Eclipse 和 11% 的受訪者使用 NetBeans。
六、首要采用哪幾種構(gòu)建工具?
許多開發(fā)人員在他們的項目中使用不同的構(gòu)建工具,因此值得注意的是,調(diào)查中的問題是要求開發(fā)者選擇使用的主要構(gòu)建工具。而絕大部分工程項目全部都是采用
maven 構(gòu)建的。
七、Java 開發(fā)人員采用哪幾種 CI 工具?
如同大部分開發(fā)者所期待的那般,Jenkins 以高達 57% 的市場占有率獲得 CI 服務(wù)器工具。此外,也有 21% 的開發(fā)人員尚未采用所有別的的
CI 工具。
八、開發(fā)設(shè)計團隊首要采用哪些源代碼管理工具?
針對有 74% 的受訪者選用 Git,合乎情理也屬于情理之中。但令人驚訝的是,竟有 16% 的開發(fā)人員仍在采用 Subversion(a.k.a
SVN)。
九、首要應(yīng)用哪幾個測試技術(shù)?
知名軟件工程大師 Robert C. Martin
在他關(guān)于軟件開發(fā)專業(yè)化的探討中曾表達道:“我們(軟件工程師)對企業(yè)系統(tǒng)相等于醫(yī)生對人的心臟手術(shù)。我們都是企業(yè)掙錢或虧錢的根本原因......我們都是把握企業(yè)命運線的人“。
殊不知,10% 的開發(fā)者回應(yīng)說他們都沒有采用其他測試技術(shù)。嗯,在此祝愿歲月靜好!
老實說,期望這些在平時開發(fā)設(shè)計中都沒有測試代碼習(xí)慣的 10% 的參與者僅僅自學(xué)的開發(fā)人員或是仍未加入工作的大學(xué)生。
十、Java 程序員會采用哪幾個非 JVM 語言?
如今有許多的 Java 應(yīng)用程序前端全部都是用 Javascript 編輯。按照調(diào)查研究報告結(jié)果顯示,57% 的受訪者表達采用 Javascript
語言,但并不清楚他們最后采用的是純 Javascript 還是別的其他相近 Typescript 的語法超集。次之,有 56% 的程序員選用 SQL,也有 8%
的受訪者表達尚未工程項目中使用任何別的非 JVM 語言。
十一、哪幾個 Web 框架是 Java 開發(fā)人員的最喜歡?
有 40% 的受訪者挑選了 Spring Boot 架構(gòu),有 36% 的開發(fā)人員選取了 Spring MVC,兩者之間利用率差距不大。
十二、開發(fā)者采用哪幾個 ORM 架構(gòu)?
注:該選項為多選,因而總量不等于 100%。
按照匯報顯示,有高于一半的開發(fā)者運用了 Hibernate。次之有 23% 的受訪者選取了 JDBC。但嚴格意義上而言,JDBC 并非 ORM
框架,因此說選取 None 這一選項的開發(fā)者也有將會采用 JDBC。
十三、Java 開發(fā)者采用哪種數(shù)據(jù)庫?
Oracle 占有率 27%,穩(wěn)居榜首,隨后是 MySQL 和 PostgreSQL。只有 9% 的 Java 開發(fā)人員采用了 Microsoft
SQL,這并不奇怪,是因為這是 C# 的利基。
MongoDB 是 NoSQL 數(shù)據(jù)庫產(chǎn)品中最熱門的一種,使用的人數(shù)是 IBM Db2 數(shù)據(jù)庫的 5 倍。
十四、哪幾個應(yīng)用服務(wù)器開發(fā)者最常使用?
毫無疑問,Tomcat 以 41% 的占比穩(wěn)居第一。
十五、Java 開發(fā)者多久發(fā)布一次新版本的代碼?
令人驚嘆的是,7% 的開發(fā)者表示每天多次發(fā)布項目更新代碼。
十六、Java 開發(fā)者的地理位置分布?
根據(jù)調(diào)查顯示,大多數(shù)的開發(fā)者位于歐洲。
十七、使用 Java 的開發(fā)者年齡分布?
最為已有二十幾年歷史的 Java,其使用者大多是伴隨其發(fā)展成長起來的人,根據(jù)報告顯示,有 38% 的軟件開發(fā)人員年齡為 30-40 歲。
十八、程序員如何獲得及學(xué)習(xí)有關(guān) Java 技術(shù)?
對于這個問題,這里的最大贏家應(yīng)該是 Google,很多程序員都會通過 Google 去搜索相關(guān)信息。而碰巧大多數(shù)答案都可以在 Stack
Overflow 中找到。
十九、Java 開發(fā)者為開源貢獻了多少?
不論是國內(nèi)還是海外的一些開發(fā)人員在空余時間都會自己構(gòu)建小項目,但是整體而言,想要找到更多的時間去維護開源項目其實并不容易,按照前文的數(shù)據(jù)結(jié)果顯示,38%
的 Java 開發(fā)者年齡處于 30-40 歲之間,此時,日常工作以及家庭占據(jù)了他們大多數(shù)時間,很難再抽出空閑時間。這也是為什么有 55%
的人從未開源過項目。