近Java JSR經核準通過,但Apache全部投了反對票。Google與Tim Peierls則對Java SE 7與Java SE 8 JSR投了反對票,以此在鬧得沸沸揚揚的TCK許可與使用限制這個問題上發出了自己的聲音。
Project Coin,JSR 334,13票通過,1票反對,1票棄權
Project Lambda,JSR 335,13票通過,1票反對,1票棄權
Java SE 7,JSR 336,12票通過,3票反對
Java SE 8,JSR 337,12票通過,3票反對
相關的評論很有趣:Steven Colebourne在一個網頁上總結了相關公司的評論。雖說大多數都對TCK投了贊成票,但相關的評論卻對其許可問題提出了批評:
Google:投了反對票,因為其許可條款
SAP AG:雖然我們相信Java 7的繼續發展很重要,但我們想對Oracle就Apache TCK的決定表達自己的不同觀點
Eclipse:對圍繞著Java許可的紛紛擾擾感到非常失望
RedHat:對許可條款感到極度失望,規范領導并沒有采取更加開放的許可
Credit Suisse:目前,圍繞著許可條款的明爭暗斗揭示出Java始終沒有形成一個開放的標準
眾多的評論還表明只要JSR能讓Java平臺從現在停滯的狀態向前邁進,那么這些公司就會投JSR的贊成票。此外,模塊化在Java SE 7與Java SE 8的討論中也被多次提到,Java SE 8 JSR還特別提到了OSGi的互操作性。
這也是各大公司通過投票表決的方式來核準Java SE JSR。同時,近Project Coin與Project Lambda上的工作取得了很大的進展,Java SE 7中的其他內容(比如JDBC 4.1)也深受人們歡迎,Java SE 8 JSR還包含了大量處于襁褓中的JSR。或許當Java SE 8發布時,Oracle會說這是大多數人的意愿,即便Java SE 8的內容與之前的版本有很大差別。
然而,由于許可問題并未得到解決,因此一些人稱JCP“僅僅是一些客戶而已”——Oracle不再認真對待JCP了。這場爭斗的結果就是Apache宣布離開JCP,將繼續追尋自己的腳步。這也許是Apache軟件基金會一次對JSR投票了:
Apache軟件基金會必須對JSR投反對票。雖然我們支持JSR的技術內容,也認為Java平臺需要向前發展,但憑良心說,我們得對這個JSR投反對票,原因在于:
雖然我們理解Oracle初的意圖是不管EC的決定是什么都要推進Java不斷前進,但我們還是奉勸Oracle盡快解決上面提到的那些問題,然后在JCP的體系下繼續與JCP成員并肩作戰讓Java活力重現。
- 該JSR的TCK許可包含了一個“使用限制”,限制了獨立實現的正常使用,這個許可元素不僅被JSPA所禁止,還被JCP EC的大多數成員所拒絕——包括Oracle。我們只能推測Oracle包含這一限制的原因,但我們認為開放的規范生態系統必須要獨立于任何組織的商業利益。
- 該JSR與自己的TCK許可自相矛盾。JSR顯式聲明Java SE以嵌入式部署作為目標。但TCK許可則特別明確地禁止了經過測試的獨立實現的使用(比如說上網本)。我們認為這會對潛在的實現者造成誤導,通過TCK的任何獨立實現都應該可以使用并且根據實現者所提供的條款進行分發。
- 規范領導忽視了多個EC成員的再三請求
- 規范領導——Oracle——違背了身處JSPA的義務——為Apache Harmony提供TCK許可,讓Apache根據自己的選擇分發其獨立實現。我們認為故意不履行JSPA義務的任何人都沒資格成為JCP的成員。這個原則適用于所有人。
由于Oracle并不遵守協議,因此Apache軟件基金會也發表了自己的聲明。