Java平台模块化系统(JSR 376)通过公开测评复议投票
Java平臺模塊化系統(JPMS,Java Platform Module System)亦稱為Jigsaw項目或JSR 376。盡管在兩個月前JPMS未通過最初的公開評測投票(Public Review Ballot),但是這次Java標準制定組織(JCP,Java Community Process)執行委員會(EC,Executive Committee)以壓倒性多數通過了復議投票。InfoQ在前期曾報道過,有一系列的原因導致EC成員IBM和RedHat在首次公開評測投票前就公開宣稱將會投反對票,并在報道中推測Twitter和Java倫敦社區最終也將會投反對票。
\\在復議投票中,除Red Hat以外的所有EC成員都投了贊成票。Red Hat在投票中棄權。Red hat對自己的投票原因做出了如下解釋:
\\\Red Hat此次投了棄權票,盡管我們認為自上次投票以來為在EG內達成一致已經取得了積極的進展,我們也相信那些影響當前建議被社區更廣泛采納的條目是可以在發布的30日擴展期內得以解決的。雖然如此,我們并非想要拖延Java 9的發布,并很高興看到有規范牽頭人和EG對隨后的Java版本提出了更積極的規劃建議,因為理解未來更改是否需要并將會在哪里發生,關鍵是獲得在模塊化系統上的真實世界反饋。我們希望項目領導者和EG會繼續對來自于更廣泛Java社區的輸入保持開放態度,就像過去30天中所做的那樣,并期待由來自于OpenJDK之外的用戶和社區數據所驅動的Java演化。
\\\Twitter在首輪投票中投了反對票,但在復議投票中改投了贊成票。Twitter的JVM/GC工程師Tony Printezis在博客中給出了如下解釋:
\\\JSR 376專家組(EG,Expert Group)已經努力澄清了一些模糊之處(#RestrictedKeywords、#CompilationWithConcealedPackages和#ResolutionAtCompileTime),并在修訂的JSR 376規范中做了一些重要改進(#ModuleNameInManifest)及放松了強封裝。
\\考慮到上述工作,我們決定對JSR 376公開測評復議投票投贊成票。
\\通過去除了一個重要的障礙,放松的強封裝默認會有助于JDK 9的采納,至少在短期內會是如此。考慮到這些改進,當前在EG內基本一致地認為,JPMS已準備好在JDK 9中發布。
\\\倫敦Java社區在首輪投票中也投了反對票,并在復議投票中改為贊成。就這一最新投票結果,Java倫敦社區的聯合創始人及jClarity的CEO?Martijn Verburg,以及IBM資深技術人員Tim Ellison接受了InfoQ的采訪。
\\InfoQ:你們如何看待Red Hat選擇投棄權票?
\\\Verburg:?首先要聲明,這是我個人的看法和猜測。我認為Red Hat之所以這樣投票,是因為它認為投贊成票將會讓它的客戶產生錯覺,認為當前形式的Jigsaw已準備好提供所有用戶的全部用例使用。Red Hat清楚地表明了自己的態度,即雖然當前形式的Jigsaw是一個可接受的基礎,但是尚未對所有用戶和用例準備好。
\\Red Hat正尋求解決的一些Jigsaw條目,已經推遲到稍后的日期。我們當前仍不確定對這些問題的解決是否將會出現在Java 9的更新版發布或是Java 10中。
\\\InfoQ:自5月8日投票后,還做了哪些更改?
\\\Verburg:?非常多!詳細技術細節記錄于如下會議記錄中:
\\- 2017年5月18日專家組會議記錄;\\t
- 2017年5月22日專家組會議記錄;\\t
- 2017年5月23日專家組會議記錄。\
其中需要特別強調指出的是:
\\- 在版本命名格式上取得了一致。\\t
- 在自動模塊命名(Automatic Module Naming)規則上取得了一致,并給出了最佳使用指南(這對Maven生態系統非常重要)。\\t
- 同一模塊的多版本處理問題將會延期解決。\\t
- 在將放寬強封裝作為默認上取得了一致(這意味著更少的應用將會打破常規,而是給出告警)。\\t
- 整理了部分關鍵字的使用方法(支持Eclipse編譯器工作)。T\
InfoQ:為使JSR-376投票通過,是否還實現了一些其它的改進和貢獻因素?
\\\Verburg:事實上,規范牽頭人和EG間通過電話會議聯系,并為改進相互之間的通信和協作而做了大量的工作,這是尤其至關重要的。
\\\\Ellison:在5月8日投票關閉后,還完成了一系列的改進【1】。其中部分改進是一些相對較小的API改進,這些改進早就應該完成,即便規范那時已經進展到建議最終草案(Proposed Final Draft)狀態。其它的一些改進是提供了新的功能,包括支持已有代碼更容易的遷移,以及支持Java 9概念在已有軟件庫和應用中更寬泛的采納。作為專家組,我們聚在一起(虛擬的)并探討了一些突出的問題,決定了哪些問題應在最初版本中“必須解決”,哪些問題可以推遲到稍后的Java SE版本中,以及哪些問題應該在當前階段被拋棄。
\\對于通過增加平臺發布節奏而確保提升Java SE技術的生命力和步伐的做法,在JCP中存在著一些討論。這必須實現于多年來一直對Java工作良好的標準化過程中,并且具有一個能為商業利益提供富有成效協作的論壇。
\\綜合這兩個方面的因素,我希望有JSR維護版本專家組能盡快重新考慮一些被推遲的JPMS條目。而且通過提交一個最初版本,任何更進一步的提升將會受益于一些真實世界經歷。
\\對于這個話題,我在一篇博客文章【2】中做了詳解介紹。其中的突出問題列出于文檔【3】中。
\\[1]?https://www.jcp.org/en/jsr/results?id=5959
\\[2]?https://developer.ibm.com/javasdk/2017/05/26/building-consensus-jsr-376-java-platform-module-system/
\\[3]?http://openjdk.java.net/projects/jigsaw/spec/issues/
\\\InfoQ:你們希望在JSR-376中能看到哪些更進一步的改進?
\\\Verburg:我希望能有更多的工作圍繞著版本控制和版本支持開展。當前,挑出問題的責任依然落在構建工具上,但我們希望Jigsaw能對此提供強大的引導作用。
\\\\Ellison:模塊化并非一次性設計。我們認為它將隨人們的使用而不斷進化,給出我們以前從未看到過的問題,我們從來沒有預先考慮到的用例,并不斷地采納業界的改進(例如云、微服務、無服務器等)。我一直關注著如何與社區共同工作,如何了解我們客戶的利益,意在確保當前代碼并未落后于Java SE的演化,并且很好地支持新的框架和編程模型。
\\\查看英文原文:?Java Module Platform System (JSR 376) Passes the Public Review Reconsideration Ballot
總結
以上是生活随笔為你收集整理的Java平台模块化系统(JSR 376)通过公开测评复议投票的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Django框架的整合
- 下一篇: 【项目管理】老板与客户意见冲突怎么办?