Java 即將迎來轉折點?
嵌入式 Java
我並沒有看到這個領域有什麼變化。Oracle 完全放棄了在該領域的開發,已經不再提供支援非常流行的 ARM 架構的嵌入式應用程式的二進位制檔案了。
但是,我預測今年嵌入式應用程式中的 Java 應用將會增長。主要原因有三個:
Java ME
我覺得已經可以說,Java ME 已經死了。雖然去年 Java ME 工作組還做過一些工作將其移植到 JCP 下,但這項工作會在三月份停止。似乎 V2COM 是唯一一家對這個方向有興趣的公司,他們應該是在與 Eclipse 基金會合作這個專案。
我對於今年的預測是,Java ME 不會再有任何開發,也不會有任何真正的應用再使用它。我都懷疑我在 2020 年的預測中是否還會提及它了。
Java EE(現在是 Jakarta EE)
2018 年是企業級 Java 統合的一年,必要的智慧財產權、程式碼和測試都從 Oracle 移交給了 Eclipse 基金會。
Eclipse 基金會現在在努力制定標準流程的細節方面,從而替代一直使用至今的 JCP 的流程。因此,這個領域我認為不會有任何重要的開發。一個可能的例外就是微服務和 MicroProfile。考慮到這種架構方式的流行,我認為 Java 在這個領域會出現很多進展。
Java SE(Core Java)
我認為,去年年初我們本應有兩個 Java 的主要版本。考慮到 OpenJDK 專案的釋出預定版,我甚至都不需要水晶球就能預測!好訊息是,這個流程非常順利。Java SE 10 和 11 都如期釋出了,必要的 JSR 也同時被建立、審查並得到了通過。伴隨這一點,JCP 已經完成了 JSR 過程(通過 JSR 387),因此整個流程變得更簡單。
今年,我預言會有至少兩個主要版本,JDK 12 和 JDK 13。同樣,這並不意味著我有諾斯特拉達姆士(法國預言家)那種能力。JDK 12 已經蓄勢待發,我也被邀請加入 Java SE 13 的專家小組,其他方面的工作也都在進行。
從技術的角度來看,我認為兩個釋出都是發展性的,而不是革命性的。JDK 12 帶有一個全新的語言預覽功能,即 switch 表示式。Raw string literals 也被計劃加到 JDK 12 中,但由於最佳實現方式還需要進一步討論,因此被撤下了。同樣,這也證明了新的釋出流程很有效。這個流程不會加入尚未完成的功能,而是將其延後到下一個版本。我的預測是,這個功能即使在 JDK 13 中也無法做好。JDK 13 中我能看到的大多數改變都是幕後工作,因為該版本計劃了更流行的功能,如 Valhalla 和 Loom。
Java Community Process(Java 社群過程,JCP)
我認為今年應該是 JCP 確立的一年。我代表 Azul 參加了大部分的 JCP 執行委員會(EC),所以我覺得我在這方面很有發言權。現在 Java ME 已經不存在,企業級 Java 已經移動到了 Eclipse 基金會,因此 JCP 中剩下的唯一重要的就是 Java SE 了。還有幾個其他的 JSR 過程,但從 Java 平臺整體來說這些過程並不重要。而且,在 Java SE 中,大部分本來由專家小組負責但工作都以 JDK 增強提案(JDK Enhancement Proposal,JEP)的形式移交給了 OpenJDK 社群。
不幸的是,這並沒有留給 JCP 多少工作。執行委員會已經將面對面會議的次數從每年三次減少到了兩次。我認為,在 JavaOne(或Oracle Code One或其他任何名字)開始之前,會議的次數會減少為一次。
JCP 對於 Java SE 依然至關重要,因為它提供了核心 Java 平臺的正式規則——TCK,從而人們能夠驗證 Java 二進位制檔案是否遵循標準,而且更為重要的是,能給予那些提供替代版 Java 二進位制釋出的公司(如 Azul)以合適的智慧財產權。
我認為,我們會在 JCP 中看到更多變化,更多的公司會直接參與進來。
JDK 二進位制
說完 Java 的技術方面,接下來討論今年最大的變動——Java 的分發方式,以及更為重要的更新方式。本月晚些時候我們將釋出 JDK 8 和 JDK 11 的最後一個公開更新。儘管 JDK 11 是個長期支援釋出(LTS),但這只是你使用 Oracle JDK 的情況,因為它已經採用了不同的授權方式。這意味著,你依然可以在開發和測試中免費使用 Oracle JDK,但無法在產品中免費試用。如果你想從 Oracle 獲得免費的、能用於產品的二進位制,就要獲得 Oracle OpenJDK 二進位制(從 jdk.java.net)。所有這些釋出都不提供長期支援。
我的預測是,到今年年底,絕大部分 Java 使用者都會放棄使用 Oracle JDK。一些組織(顯然,Azul 也在其中)會提供 OpenJDK 的構建,同時提供多種形式的支援,包括從當前釋出移植布丁等。
如果你還沒有考慮今年該用哪個 Java 版本,那現在就該下決定了。從下個月開始,如果安全布丁對你來說很重要(它們的確很重要),你就得決定怎樣獲取它們了。
為了讓學習變得輕鬆、高效,今天給大家免費分享一套Java教學資源。幫助大家在成為Java架構師的道路上披荊斬棘。需要資料的歡迎加入學習交流群:9285,05736