盡管 Java 被稱為程式設計語言的“老馬”,但它仍在不斷發展。
在 Tiobe 排行榜中,它仍然是的第一名,在 PYPL 和 RedMonk 排行榜上則在與 Javascript 和 Python 争奪第二名的位置,按照 GitHub 上庫貢獻者的資料來看,它是第三大最受歡迎的語言(根據 GitHub 的 10 年資料)。
時光在變,Java 一直沒變,過去企業在談 Java,現在還是在談 Java,這一點可以在财富 500 強企業的技術棧中得到驗證。
為什麼 Java 能夠一直流行呢?其中的原因有很多,例如企業最看重的是向後相容性,衆所周知,向後相容性對重大的更新和更新非常敏感,而 20 年前用 Java 5 編寫的系統還是能夠在 Java 8 下編譯和運作。
那麼,2019 年 Java 的發展如何呢?Baeldung 調查了 6707 名開發經驗豐富的技術人員,并從中獲得了一些結論。
使用版本:Java 8 仍然最受歡迎
從 Java 8 之後,Java 的釋出周期明顯快了很多,現在已經快要到 Java 14 了。你可能會認為大多數人已經切換了更新版本的 Java 了,但實際情況并非如此,根據調查顯示,80% 的受訪者仍然在使用 Java 8。
為什麼即使有了新版本,Java 8 仍然最受歡迎呢?這其中有很多原因:
首先,Java 8 開創性的語言特性(參見我的閉包和Lambdas 書評)仍然在被程式設計社群吸收。即使到了2019 年,關于Steam 和Optional 的相關問題仍在網上被熱烈讨論,Baeldung 自己也釋出了 Java 8 Optional 指南。
其次,Java 9 首先支援的新子產品系統使人們感到困惑,而不是使他們感覺更輕松。
第三,在後來的 Java 版本中引入的特性似乎沒有足夠的說服力讓大家下決心切換。
最後,還存在一個大問題,在 2019 年 1 月份之後,Java SE 8 的公共更新需要商業許可。這就是 Oracle JDK 與 OpenJDK 之争的開始,正如我們在之前的文章中所說的:
随着 Oracle JDK 發行和支援的變化,是使用 Oracle JDK,還是 Oracle 的 OpenJDK,或者是其他供應商的 OpenJDK,這中間在權限上存在着相當大的不确定性。此外,在不同的供應商那裡是否可以得到免費更新的相關計劃,以及 (新的和現有的) 付費的支援模型,這些都要予以考慮。
架構:Spring 占據主導地位
在架構的采用方面,Spring 占據了主導地位。與傳統且臃腫的 Java EE 相比,Spring 是現代化的、基于 Java 的企業應用程式的輕量級架構。Spring Boot 的采用率也很高。
建構工具:Maven 斷層式第一
在 Java 建構工具的調查中,Maven 以相當大的優勢排在了第一位,這表明排在第二位的 Gradle 仍然是 Android 的代名詞,之後需要做更多的努力來擺脫這些限制,以便被認為是 Java 建構通用實踐的一個可行的選擇。
IDE:IntelliJ 大比例占據一位,Eclipse 份額持續下降
在 IDE 的調查中,IntelliJ 以将近 60% 的份額占據了第一的位置,為什麼 IntelliJ 如此受歡迎呢?Andrey Cheptsov 曾在一篇部落格中這樣寫道:“在你編寫代碼時,IntelliJ IDEA 也忙着在建構它的文法樹,在類、變量、字段、方法和它們的用法之間建立引用,分析執行流,利用這些資訊,它可以提供補全功能,幫助你快速浏覽代碼,提供錯誤分析和友善的快速修複。”
而傳統的 Eclipse 則有點不妙,其占比從去年的 38% 下降到 32.8%
Web/ 應用伺服器:Tomcat 占據第一
早在 2011 年,Forrester 的首席分析師 Mike Gualtieri 副總裁就寫過一篇既有預見性又不受時間限制的文章,名為《停止在 WebLogic、WebSphere 和 JBoss 應用伺服器上浪費金錢》
他開頭寫道:
“使用 Apache Tomcat 吧,它是免費的。
我不明白為什麼有些公司要在 Oracle Weblogic 或 IBM WebSphere Application Server 這樣的 Java 應用伺服器上花費數百萬美元。我明白為什麼有些公司要在 Red Hat JBoss 上花錢,因為他們想要節省在應用伺服器上的開銷。但是,為什麼要花錢呢?Apache Tomcat 将滿足大多數 Java web 應用程式的部署需求。”
該表反映了這種說法:Tomcat 一直保持着輕量級的資源消耗,毫無争議地擊敗 Jetty 奪得冠軍。那些重量級産品的位次反映了它們那個年代已經過時的需求。
其他 JVM 語言:Java 的使用率未發生變化
首先,讓人感到有些驚訝和有趣的是,有 62.6% 的開發人員隻使用 Java,這與去年不相上下 (62.8%)。考慮到大家對 Kotlin 的大量采用,我的預期是這個數字肯定會下降,但現在看來并沒有下降。不過,Kotlin 仍然從去年的 13% 增長到了現在的 16.5%。和 Gradle 一樣,Kotlin 完全可以作為一種通用語言來用,尤其是在後端環境中,但在安卓之外它仍然未被接受得到普遍應用。
資料庫:關系型資料庫比 NoSQL 更受歡迎
MySQL 和 PostgreSQL 是前兩名,Oracle 是第三名,MongoDB 和 MS SQL 是第四和第五名。這裡有兩個值得注意的趨勢。與 Percona 的資料庫管理系統流行度調查結果一緻,關系型資料庫管理系統勝過 NoSQL,而開源資料庫管理系統則比大型商業資料庫管理系統做得更好。就像前文中的 Web 伺服器一樣,人們尋求的也是更輕量級的等價物,尤其是 PostgreSQL。
總結
總而言之,根據調查結果顯示,Java 不會被取代,在未來幾年也将在繼續保持 Top 3 的位置。不妥,盡管人們仍然堅持使用該語言及其圍繞它的生态系統,但他們也在試圖遠離 Oracle 及其産品,如 IDE(JDeveloper)、伺服器 (WebLogic)、JDK 及其旗艦資料庫。MySQL 是個特例,因為它基本上不受甲骨文所有權的影響。大多數 Java 使用者正在尋找更輕量級、更高效、更便宜、對開發人員和許可更友好的等價物,這些等價物完全比得上 Oracle 的同類産品,甚至更好。
本文轉自infoQ
原文連結:
https://www.infoq.cn/article/aiKteLpiwAPlyKL5Ef6p