search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

IBM和Red Hat將會對Java模塊系統(Jigsaw)投反對票

InfoQ 之前曾經報道過 JSR 376(Java 平台模塊系統)的開發現狀,它通常被稱為「Jigsaw 項目」。現在,有一件不太尋常事情,IBM 和 Red Hat 都公開表示,將會對 Jigsaw 目前的狀態投反對票。

這個項目試圖為 Java 提供一個標準化的模塊系統,它最初的計劃是在 Java 7 中實現,在 Mark Reinhold 宣布 B 計劃之後,轉移到了 Java 8 中。2012 年 7 月,Oracle 再一次推遲了這個項目,將其轉移到了 Java 9 中。即便如此,這個項目依然再次延期,這主要是因為 Jigsaw 的複雜性而且它需要進行廣泛的測試。

Jigsaw 的範圍是非常廣泛的,它不僅想要模塊化龐大的 Java 運行時,還想強制進行強封裝,這樣的話 Java 代碼只能通過公開的介面去訪問平台庫。模塊化的代碼不能隨心所欲地進入另外一個模塊的內部。

不僅如此,Oracle 希望模塊系統不僅用在 JDK 本身中,還要用在應用程序的代碼中。為了實現這一點,JSR 376 專家組(Expert Group,EG)曾經討論過應用級別模塊化與 JDK 模塊化的各個方面。

除了標準流程之外,目前已經有兩個主要的模塊實現,它們與 Jigsaw 的範圍有些重疊,這兩個方案就是 JBoss Modules 和 OSGi,前者來自 Red Hat,而後者由一個廠商所組成的聯盟來管理,這些廠商中包含 IBM。

Red Hat 和 IBM 都是 Java Community Process 執行委員會的成員,這個委員會有 25 個成員,它們要負責批准所有的 Java 新標準,包括「平台釋放版本」要包含哪些的內容,比如 Java 的主版本。這樣的釋放版本必須要取得三分之二席位的支持。

來自 IBM 的 Tim Ellison 在 OpenJDK 郵件列表中宣布了他們的決定,他這樣評論到:

IBM 也會投反對票,這反應了我們對這個 JSR 的態度,我們認為眼下它還沒有超出 Public Review 階段的要求,並不適合繼續推進到 Proposed Final Draft 階段。

JSR 376 專家組和公眾已經針對規範當前的 public review 草案提出了很多合理的問題和關切,這些問題應該進行進一步的討論並得到妥善解決。我們倡導專家組的所有成員繼續協同工作,解決郵件列表中所記錄的問題。

在將規範推至下一階段之前,IBM 希望在整個專家組中形成更緊密的共識。

Ellison 的表態似乎是對一個私下交流的回應,這個交流是在 Ellison、Mark Reinhold 和 Scott Stark(Red Hat)之間進行的,Stark 是這樣評論的:

目前,Red Hat 將不會投票批准 JPMS 的 public review 草案,因為它並不能實現 Java 社區的最佳利益。

有個問題在於 IBM 和 Red Hat 所提供的已有的模塊系統很難與 Jigsaw 便捷地進行互操作。不過,這兩個系統都沒有在市場上佔據支配性的地位,儘管被影響者會比較痛苦,但是大多數的 Java 項目並不會受到這種不兼容性的影響。

但是,Jigsaw 的問題並不局限於 OSGi 和 JBoss modules。在 Java 世界中,主流的代碼打包和分發系統是 Maven,Jigsaw 並沒有為基於 Maven 的項目提供一個清晰的升級路徑,Maven 會將代碼打包到 JAR 文件中,Jigsaw 並沒有提供將其打包到模塊中的升級途徑。

這種關切在一篇聯合文檔中進行了詳細描述,這篇文檔是由 Red Hat 和外部的 Maven 專家共同編寫的。Maven 的核心關注點是所謂的「自動化模塊(Automatic Modules)」,對社區中的很多人來說,Maven 所關注的情況要比與各廠商的模塊系統間的兼容性問題要嚴重得多。

Martijn Verburg 是倫敦 Java 社區的領導者(同時也是 JCP 執行委員的投票成員),他這樣告訴 InfoQ:

作為 EC 成員,這麼早就闡明其投票立場並且採用如此公開的方式,實在有些不同尋常。這表明,在 Java 生態系統中,主要的參與者對 JPMS 和 Jigsaw 這一實際實現有著很嚴重的擔憂。儘管目前的模塊規範和實現為 Java 帶來了許多重要的安全和簡潔(compact)運行時提升,但是它(還)沒有彌合與其他通用模塊系統的鴻溝,也沒有處理好它們所依賴的構建工具,無論正確與否,Java 平台恐怕會經歷 Python2/3 這樣的分裂。

在 Java 新版本的開發周期中,臨近結束時,出現如此明顯的分歧甚至敵視是前所未有的。儘管這只是一個 Public Review 投票,而不是最終批准投票,但這是一個明確的警告信號。

如果考慮到其他廠商和社區的觀點,Oracle 對 Java 9 的交付時間點似乎會出現衝突。到底 Oracle 會改變方向(這樣的話,有可能會造成 Java 9 的再次延期)還是堅持自己的觀點(即便主要的廠商和社區參與者有反對意見),尚有待繼續觀察。

企業的應用架構到底該怎麼演變才能合了 CEO 的願?

今年,架構師關注的技術點有何不同?從雲計算、大數據、微服務、容器,到現在的人工智慧,架構師應該怎麼做?這裡推薦一場會議,為你總結了 100+ 國內外技術專家現階段的架構實踐,8 折即將截止,點擊「閱讀原文」,看看對你有何啟發。



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦