調查顯示新發布的Java9不太受歡迎
你有遷移到 JDK 9 的計劃嗎,是怎么樣的?你已經在生產環境中使用 JDK 9 了嗎,或者只是在觀望中?這篇文章將介紹幾個 JDK 9 在生產環境中很少被采用的關鍵原因。
距離 JDK 9 的發布已過去了幾個月,“將應用程序遷移到 JDK 9”這個話題相信在很長一段時間內都會備受開發者的關注和討論。事實證明,即使不使用任何內部 API(比如“臭名昭著”的 sun.misc.Unsafe 類),也可能會導致應用程序不能在 JDK 9 上啟動。
針對這些有關“遷移”的問題,下面介紹一個以“你遷移到 JDK 9 的計劃是什么”為主題的民意調查結果,以了解開發者將應用程序移植到 JDK 9 過程中所處的階段。調查有兩次,分別是面向 EMEA 和美洲的開發者。
對于“你遷移到 JDK 9 的計劃是什么”主題的調查包含了以下的選擇:
- 已在生產環境中使用 JDK 9
- 正在遷移到 JDK 9
- 正在觀望中
- 等待下一個長期支持版的發布
- 還在使用 JDK 6
具體的調查數據如下:
來自 EMEA (歐洲、中東、非洲三地區的合稱)開發者的調查結果
來自美洲開發者的調查結果
綜合結果
可以看到,“正在觀望中”的開發者占了大多數,而使用舊版本的朋友仍有不少,但意外的是,使用 JDK 9 的用戶居然一個都沒有。雖然這次調查的樣本量可能不夠大,但我們相信這確實是比較貼近現實的。
下面說說 JDK 9 很少在生產環境中被采用的原因:
應用程序從 JDK 8 或更早版本遷移至 JDK 9 出現的不兼容變更情況的數量。盡管已經從標準 API 中移除的六種方法不會影響很多人,但是像停止 JVM 啟動的命令行選項的數量將是一個障礙。
內部 JDK API 封裝的影響。同樣,直接受此影響的開發者數量也不會很大,但間接受到影響的開發者數量則很多。因為大多數開發者在開發應用程序時使用了第三方庫和框架,有很多這樣的庫和框架使用封裝的 API。雖然大部分已經過測試并提供專門針對 JDK 9 的版本,但仍然有很多還沒這樣做。對于沒有得到積極維護的庫或框架來說,這無疑是一個會阻礙遷移至 JDK 9 的問題。
受支持的壽命周期。甲骨文最近宣布將加快 JDK 的發布頻率,改為每六個月發布一次。按照改進的發布計劃,JDK 9 不是長期支持版本。在這個新方案下,JDK 9 將是以 JDK 8 為基礎的***個“功能”版本。而且由于公共的更新,開發者在決定要部署的 Java 版本時,需要記住一些東西。長期支持版本的更新將至少提供三年,而 JDK 8 的受支持周期更像是四年半。這些版本適用于喜歡穩定的企業,使其能夠在單個版本上運行大型的應用程序。
大多數開發者都表示,他們將繼續在生產環境中使用 JDK 8,至少直到下一個 LTS 版發布。
根據甲骨文展示的計劃,在 LTS 版本之間進行轉換對開發者來說頗具挑戰性。當 JDK 11 發布時,它將包含可能影響應用程序兼容性的新功能,而且由于 JDK 8 將不再有公共更新,用戶面臨的只有兩種選擇,要么選擇支付以獲得商業支持,要么直接遷移到新的 LTS 版本,并祈求他們的應用程序不會有所破壞并需要進行實質性變更才能正常運行。