JavaRush /Java Blog /Random-TW /JDK新版本頻繁發表會帶來什麼影響?

JDK新版本頻繁發表會帶來什麼影響?

在 Random-TW 群組發布
這是 Java 變革的時代。JDK 版本現在將按計劃發布,而不是在新功能可用時發布。這種方法有其優點和缺點,但這些變化將如何影響 JDK 8?Simon Ritter 是著名的 Java 佈道者、Java Champion 和 Azul Systems 的副首席技術官,他解釋了為什麼「新 Java 按計劃推出」是穩定性、安全性和成本之間的權衡。
JDK新版本頻繁發布會導致什麼 - 1
2018 年,Java 世界將發生重大變化。正如去年宣布的那樣,我們將按計劃發布 JDK 版本,而不是在新功能可用時發布版本。這是個好消息,因為現在新功能將包含在準備就緒的版本中,並且開發人員可以更快地存取它們。JDK 10 計劃於 3 月發布,我們已經進入錯誤修復的第二階段,所以一切都按計劃進行。Java 規範請求 (JSR) 已在積極開發中並可供公眾評議。甚至還有針對JDK 11 的JDK 增強提案 (JEP) 。看起來 Java 做得很好。

時代變遷

然而,與此發布計劃相關的許多其他變化將在今年顯現出來,並且可能不那麼令人愉快。在超過 22 年半的時間裡,我們已經習慣了一個事實:Java 作為一個平台,具有三個與其支援方式直接相關的基本屬性。
  1. 穩定。以前,新版本的 JDK 新增的功能雖然經過了全面測試,但仍需要在生產中進行測試。這有助於發現需要糾正的缺陷。為了確保使用者可以在測試新版本的同時繼續使用穩定的版本,更新總是在時間上部分重疊。

    如果我們查看從 JDK 6 開始的最後幾個版本,我們會發現 JDK 5 的更新又持續發布了近 3 年(準確地說是 2 年 11 個月)。隨著 JDK 7 的推出,JDK 6 的公開更新發布了一年 9 個月。JDK 7 的更新是在 JDK 8 發布後 13 個月內發布的。


  2. 安全。OpenJDK 開發和支援團隊、Oracle 以及先前的 Sun Microsystems(創建 Java 的公司,編者註)始終將平台安全性放在首位。您還記得,Java 最初是為行動裝置(特別是 Star7 PDA)設計的。



    關鍵的開發目標之一是確保程式碼可以透過網路傳輸並安全執行。JDK 會定期發布更新,其中包含已發現的安全性問題的修補程式。如果您在這些更新發布後立即安裝它們,那麼您將是完全安全的。


  3. 零成本。Java 的一大優點是它一直是一個免費平台,甚至在 2006 年作為開源軟體發布之前也是如此。對於可以免版稅使用 Java 的地方存在某些限制,但這始終適用於行動和嵌入式應用程式;對於桌面用戶端和企業伺服器,當前版本的 Java 始終免費。JDK 已經發生的變化之一是在 GPLv2 許可證下發布 OpenJDK 可執行文件,但「類別路徑」例外。該許可證不會對如何部署 Java 執行環境施加任何限制。

然而,JDK 開發和發布方式的變化需要仔細考慮將應用程式遷移到新版本 Java 的計劃。根據這個新的發布計劃,確保多個先前版本的更新可用的努力可能不可行。為了滿足兩個不同的使用者群體(快速需要新功能的使用者和重視長期穩定性的使用者)的需求,Oracle 決定轉向長期支援 (LTS) 模型。JDK 的特定版本將被視為 LTS 版本,這意味著它們將收到三年更新。所有其他中間版本都稱為功能版本,並且僅接收 6 個月的更新。為了與這個新系統保持同步,JDK 8 被歸類為 LTS 版本。下一個版本將是 JDK 11,計劃於 2018 年 9 月發布。這個新模型帶來的最大變化是版本之間的更新將不再在時間上重疊。我特意用粗斜體字表示,因為這是絕對清楚的。下圖顯示了 JDK 19 之前版本的更新的可用性。
JDK-2新版本的頻繁發表會帶來什麼影響?
圖中: Java SE 生命週期 – 5 年以上時間表 公開更新零重疊(「支援懸崖」) Oracle 商業支援 Oracle 擴展商業支持
Java SE 生命週期 - 5 年以上計畫公開更新 Oracle 的零時間重疊公共可執行檔(無支援) Oracle 商業支援 Oracle 擴充商業支持
這些變化的直接後果是,Java 平台仍然穩定、安全且免費,但現在您必須在這三個功能中選擇兩個。在未來的 Java 部署中,這三個屬性將不會同時可用。

讓我再解釋一下

假設您擔心安全(這是您應該關心的),但您不想花錢。在這種情況下,您需要在新的 JDK 版本發布後立即遷移到它們。如果支援時間不重疊(功能和 LTS 版本),您將必須這樣做才能收到新的安全修復。不幸的是,如果沒有時間重疊,您將不得不立即轉移到尚未在生產中測試的 JDK 版本,因此您將失去先前的穩定性。另一個選擇是選擇零成本的穩定性。同樣,這是可能的:您所要做的就是在新版本發布後繼續使用先前的 LTS 版本。您可以獲得熟悉的穩定性,無需支付任何費用,但您不會獲得任何安全補丁,因為此版本不再提供這些補丁。最後,如果你想要穩定和安全,你必須付費。您可以繼續使用以前的 LTS 版本,但只能透過商業支援合約才能獲得安全性和錯誤修復。

還有作者的一個小廣告區塊:)

Azul(我的公司)在Zulu Enterprise 品牌下創建了一組OpenJDK 可執行文件,從原始程式碼構建,使用TCK/JCK 基準進行測試,甚至使用我們開發的實用程式進行分析,以確保不會因錯誤的頭檔而導致開源程式碼損壞。我們提供免費下載當前版本的機會,並為有興趣的人提供商業支援。我們最近開始為 Zulu 提供一套新的支援選項,旨在為客戶提供最大的靈活性。我們希望為用戶提供遷移到適合其業務和客戶需求的新版本 JDK 的能力。為此,我們提供三種支援選項:
  1. 短期支持(STS)。STS 使用戶能夠以最快的速度存取新的 Java 功能,並為平滑過渡到新的 JDK 版本提供足夠的支援。Zulu Enterprise 為 STS 版本提供為期 12 個月的錯誤修復、安全更新和其他所需修復(「生產支援」),以及 6 個月的額外支持,重點是諮詢支援和幫助用戶遷移到較新版本的 JDK (“擴展支援”)。這相當於 18 個月的生命週期。

  2. 中期支援(MTS)。MTS 版本可讓您在生產中使用功能版本中提供的新功能,而無需等待新的 LTS 版本。Azul 計劃在 LTS 版本之間每年發布一個 MTS 版本,並在下一個正式發布 LTS 發布日期後的 18 個月內提供生產支援。這確保了生產部署期間的時間重疊和「平滑」過渡。生產支援結束後,將提供額外 12 個月的擴展支援。

  3. 長期支持(LTS)。它是為 OpenJDK 社區視為 LTS 的版本提供的,並提供 8 年的生產支援以及額外的兩年擴展支援。
這是另一張圖,讓它更清楚。
JDK-3新版本的頻繁發表會帶來什麼影響?
圖中: Java SE 生命週期 – 5 年以上時間表 Oracle 公開可用的二進位檔案(不受支援) Oracle 商業支援 Oracle 擴展商業支援 Azul Zulu 生產商業支援 Azul Zulu 擴展(被動)商業支持
Java SE 生命週期 - 5 年以上計劃 Oracle 的公共可執行文件(無支援) Oracle 商業支援 Oracle 擴展商業支援 Azul Zulu 的商業生產支援 Azul Zulu 的擴展(被動)商業支持
如果您目前在沒有商業支援合約的情況下使用 JDK 8,並透過公共更新保持系統穩定和安全,您可能需要考慮從 9 月開始要做什麼。Azul 致力於為您提供協助,因此如果您需要支持,請隨時與我們聯繫。

結論

今年,Java 平台的多個方面都發生了變化,其中大部分都變得更好了。更快地存取新功能,開放發布飛行記錄器和任務控制等實用程序,在 GPLv2 許可證下發布 OpenJDK 可執行檔(「類路徑」例外)。然而,令人悲傷的事實是,通常對 Java 平台慷慨的免費支援正在成為過去。Java 仍然穩定、安全且免費。這三個特質中哪兩個對您和您的用戶最重要?
JDK-4新版本的頻繁發表會帶來什麼影響?

關於作者

Simon Ritter 是 Azul Systems 的副技術總監。Simon 自 1984 年以來一直從事 IT 行業,並擁有英國布魯內爾大學物理學學士學位。

Simon 於 1996 年加入 Sun Microsystems,從事 Java 開發和諮詢工作。自 1999 年以來,他一直向開發人員展示 Java 技術,專注於核心 Java 平台以及客戶端和嵌入式應用程式。現在,他在 Azul Systems 繼續幫助人們更了解 Java 和 Azul 的 JVM 產品。您可以在 Twitter 上關注他:@speakjava

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION