Java 即将迎来转折点?
嵌入式 Java
我并沒(méi)有看到這個(gè)領(lǐng)域有什么變化。Oracle 完全放棄了在該領(lǐng)域的開(kāi)發(fā),已經(jīng)不再提供支持非常流行的 ARM 架構(gòu)的嵌入式應(yīng)用程序的二進(jìn)制文件了。
但是,我預(yù)測(cè)今年嵌入式應(yīng)用程序中的 Java 應(yīng)用將會(huì)增長(zhǎng)。主要原因有三個(gè):
Java ME
我覺(jué)得已經(jīng)可以說(shuō),Java ME 已經(jīng)死了。雖然去年 Java ME 工作組還做過(guò)一些工作將其移植到 JCP 下,但這項(xiàng)工作會(huì)在三月份停止。似乎 V2COM 是唯一一家對(duì)這個(gè)方向有興趣的公司,他們應(yīng)該是在與 Eclipse 基金會(huì)合作這個(gè)項(xiàng)目。
我對(duì)于今年的預(yù)測(cè)是,Java ME 不會(huì)再有任何開(kāi)發(fā),也不會(huì)有任何真正的應(yīng)用再使用它。我都懷疑我在 2020 年的預(yù)測(cè)中是否還會(huì)提及它了。
Java EE(現(xiàn)在是 Jakarta EE)
2018 年是企業(yè)級(jí) Java 統(tǒng)合的一年,必要的知識(shí)產(chǎn)權(quán)、代碼和測(cè)試都從 Oracle 移交給了 Eclipse 基金會(huì)。
Eclipse 基金會(huì)現(xiàn)在在努力制定標(biāo)準(zhǔn)流程的細(xì)節(jié)方面,從而替代一直使用至今的 JCP 的流程。因此,這個(gè)領(lǐng)域我認(rèn)為不會(huì)有任何重要的開(kāi)發(fā)。一個(gè)可能的例外就是微服務(wù)和 MicroProfile。考慮到這種架構(gòu)方式的流行,我認(rèn)為 Java 在這個(gè)領(lǐng)域會(huì)出現(xiàn)很多進(jìn)展。
Java SE(Core Java)
我認(rèn)為,去年年初我們本應(yīng)有兩個(gè) Java 的主要版本。考慮到 OpenJDK 項(xiàng)目的發(fā)布預(yù)定版,我甚至都不需要水晶球就能預(yù)測(cè)!好消息是,這個(gè)流程非常順利。Java SE 10 和 11 都如期發(fā)布了,必要的 JSR 也同時(shí)被創(chuàng)建、審查并得到了通過(guò)。伴隨這一點(diǎn),JCP 已經(jīng)完成了 JSR 過(guò)程(通過(guò) JSR 387),因此整個(gè)流程變得更簡(jiǎn)單。
今年,我預(yù)言會(huì)有至少兩個(gè)主要版本,JDK 12 和 JDK 13。同樣,這并不意味著我有諾斯特拉達(dá)姆士(法國(guó)預(yù)言家)那種能力。JDK 12 已經(jīng)蓄勢(shì)待發(fā),我也被邀請(qǐng)加入 Java SE 13 的專家小組,其他方面的工作也都在進(jìn)行。
從技術(shù)的角度來(lái)看,我認(rèn)為兩個(gè)發(fā)布都是發(fā)展性的,而不是革命性的。JDK 12 帶有一個(gè)全新的語(yǔ)言預(yù)覽功能,即 switch 表達(dá)式。Raw string literals 也被計(jì)劃加到 JDK 12 中,但由于最佳實(shí)現(xiàn)方式還需要進(jìn)一步討論,因此被撤下了。同樣,這也證明了新的發(fā)布流程很有效。這個(gè)流程不會(huì)加入尚未完成的功能,而是將其延后到下一個(gè)版本。我的預(yù)測(cè)是,這個(gè)功能即使在 JDK 13 中也無(wú)法做好。JDK 13 中我能看到的大多數(shù)改變都是幕后工作,因?yàn)樵摪姹居?jì)劃了更流行的功能,如 Valhalla 和 Loom。
Java Community Process(Java 社區(qū)過(guò)程,JCP)
我認(rèn)為今年應(yīng)該是 JCP 確立的一年。我代表 Azul 參加了大部分的 JCP 執(zhí)行委員會(huì)(EC),所以我覺(jué)得我在這方面很有發(fā)言權(quán)。現(xiàn)在 Java ME 已經(jīng)不存在,企業(yè)級(jí) Java 已經(jīng)移動(dòng)到了 Eclipse 基金會(huì),因此 JCP 中剩下的唯一重要的就是 Java SE 了。還有幾個(gè)其他的 JSR 過(guò)程,但從 Java 平臺(tái)整體來(lái)說(shuō)這些過(guò)程并不重要。而且,在 Java SE 中,大部分本來(lái)由專家小組負(fù)責(zé)但工作都以 JDK 增強(qiáng)提案(JDK Enhancement Proposal,JEP)的形式移交給了 OpenJDK 社區(qū)。
不幸的是,這并沒(méi)有留給 JCP 多少工作。執(zhí)行委員會(huì)已經(jīng)將面對(duì)面會(huì)議的次數(shù)從每年三次減少到了兩次。我認(rèn)為,在 JavaOne(或Oracle Code One或其他任何名字)開(kāi)始之前,會(huì)議的次數(shù)會(huì)減少為一次。
JCP 對(duì)于 Java SE 依然至關(guān)重要,因?yàn)樗峁┝撕诵?Java 平臺(tái)的正式規(guī)則——TCK,從而人們能夠驗(yàn)證 Java 二進(jìn)制文件是否遵循標(biāo)準(zhǔn),而且更為重要的是,能給予那些提供替代版 Java 二進(jìn)制發(fā)布的公司(如 Azul)以合適的知識(shí)產(chǎn)權(quán)。
我認(rèn)為,我們會(huì)在 JCP 中看到更多變化,更多的公司會(huì)直接參與進(jìn)來(lái)。
JDK 二進(jìn)制
說(shuō)完 Java 的技術(shù)方面,接下來(lái)討論今年最大的變動(dòng)——Java 的分發(fā)方式,以及更為重要的更新方式。本月晚些時(shí)候我們將發(fā)布 JDK 8 和 JDK 11 的最后一個(gè)公開(kāi)更新。盡管 JDK 11 是個(gè)長(zhǎng)期支持發(fā)布(LTS),但這只是你使用 Oracle JDK 的情況,因?yàn)樗呀?jīng)采用了不同的授權(quán)方式。這意味著,你依然可以在開(kāi)發(fā)和測(cè)試中免費(fèi)使用 Oracle JDK,但無(wú)法在產(chǎn)品中免費(fèi)試用。如果你想從 Oracle 獲得免費(fèi)的、能用于產(chǎn)品的二進(jìn)制,就要獲得 Oracle OpenJDK 二進(jìn)制(從 jdk.java.net)。所有這些發(fā)布都不提供長(zhǎng)期支持。
我的預(yù)測(cè)是,到今年年底,絕大部分 Java 用戶都會(huì)放棄使用 Oracle JDK。一些組織(顯然,Azul 也在其中)會(huì)提供 OpenJDK 的構(gòu)建,同時(shí)提供多種形式的支持,包括從當(dāng)前發(fā)布移植布丁等。
如果你還沒(méi)有考慮今年該用哪個(gè) Java 版本,那現(xiàn)在就該下決定了。從下個(gè)月開(kāi)始,如果安全布丁對(duì)你來(lái)說(shuō)很重要(它們的確很重要),你就得決定怎樣獲取它們了。
?為了讓學(xué)習(xí)變得輕松、高效,今天給大家免費(fèi)分享一套Java教學(xué)資源。幫助大家在成為Java架構(gòu)師的道路上披荊斬棘。需要資料的歡迎加入學(xué)習(xí)交流群:9285,05736
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的Java 即将迎来转折点?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Java设计模式之迭代器模式
- 下一篇: Java程序员该如何学习才能成长为一名优