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