Oracle近日宣布,他們將Java的發布頻率改為每六個月一次。
JCP執行委員會在八月份的會議上提到了這一說法,隨后,Oracle發言人Donald Smith在他的博客中確認了這一消息。該決定將在Java 9正式發布之后開始實行,也就是說,Java的下一個發布日期是2018年初。
除了發布周期,Oracle還宣布了在Java的構建和發布方式方面所發生的主要變化。Oracle將把OpenJDK的二進制包作為面向開發者的主要版本,取代之前的Oracle JDK。
OpenJDK將采用GPLv2許可(包括“類路徑例外”)免費發行,移除了之前在Oracle JDK上存在的一些限制。Oracle JDK仍然會繼續存在,但需要與Oracle簽訂協議才能獲得Oracle提供的長期支持。
Java首席架構師Mark Reinhold說,為了避免出現像Java 8和Java 9那樣的延期情況,所有決定實行新的發布周期。
Java當前的發布周期為兩年一次,Java 9因為模塊化系統(Jigsaw)問題一再延期,已經比預期晚了18個月。之前,Java 8也因為安全問題延期了8個月左右。Java 9的GA版本將在9月21號發布。
新的發布周期嚴格遵循時間點,將在每年的3月份和9月份發布,相應的版本號為18.3、18.9、19.3等。與現在的發布周期不同,新的發布計劃不會為了等待某個主要特性完成而延期。如果一個特性還沒有完成,它就不會被合并到發布用的代碼倉庫里。如果錯過了一個版本,就要等待下一次發布。
新的發布周期旨在避免未完成的里程碑特性(比如Java 8的Lambda或Java 9的模塊化系統)造成發布延期,讓其他一些有用的特性也無法與開發者見面。
除了新的發布周期,Oracle將會繼續每個季度發布更新版本,時間分別為1月份、4月份、7月份和10月份。也就是說,在下一個大版本發布之前,當前版本都會有兩個更新版本。更新版本只包含安全問題修復或回歸錯誤的修復。
Reinhold說:
開發者希望加快速度,這樣他們就能夠盡快地在生產環境中使用新的特性。
對于沒有必要快速升級Java版本的企業和組織來說,Oracle建議他們簽訂每三年一次的長期支持(Long Term Support,LTS)協議。他們因此可以獲得由Oracle提供的至少三年的支持,還有可能更長時間,這要取決于市場的反應。
Oracle建議第一個LTS版本為“18.9”,不過這需要與其他的OpenJDK貢獻者討論過后才能最終確定。Java 8被作為一個特別的LTS版本,支持日期截止到2025年。
Smith說:
OpenJDK是開發者了解和使用Java SE平臺最主要的渠道,而Oracle JDK繼續作為Oracle收費用戶的LTS版本。
倫敦Java社區的負責人Martijn Verburg也發表了他對新發布周期的看法:
新的Java發布周期對于Java生態系統來說是一件好事情。Java 9的Jigsaw和孵化模塊問題促成了這一局面的發生。
Oracle確實面臨著發布方面的巨大挑戰,不過OpenJDK社區擁有足夠的知識來幫助一起解決挑戰。
我希望看到中間會有所突破,不過對常規的發布周期仍然很期待。其他實現者可以更早地訪問到規范的草案,這樣他們就可以更早、更經常地發布版本。
Oracle的Java發布速度經常受到詬病,Java被廣大的企業組織所采用,并已成為大量開源平臺和語言的基礎,而這樣的發布速度讓Java處于很尷尬的境地。新的Java發布周期恰好滿足了廣大用戶的期望,不過這仍然需要等待Java開發者和Oracle用戶的反饋。
查看英文原文:Java to Move to 6-Monthly Release Cadence