Oracle已經宣布了Java 9的時間表,其目标是在2016年9年正式發布該版本。該時間表遵循Oracle每兩年發布一(yī)個新的主版本的計劃,雖然與先前的版本相比,目前提出的最後期限可能存在一(yī)定的延期風險。
截至目前,所有必要的JSR都還沒有提交;相比之下(xià),與定義Java 8内容的“總括JSR(Umbrella JSR)”相關的工(gōng)作在2010年底就已經開(kāi)始,距離(lí)最初計劃的正式發布時間大(dà)約有三年。Java 9中(zhōng)一(yī)些最有代表性的項目也是如此:Kulla項目(創建Java REPL)、Valhalla項目(改進Java類型)和Jigswa項目(增加模塊化功能);同樣,相比之下(xià),Java 8中(zhōng)一(yī)些最有代表性的項目(Lambdas及新的Data/Time API)也是在距離(lí)計劃日期還有幾年時就提交了。
以前,在面對此類情況時,爲了嚴格按照計劃進行,Oracle會縮小(xiǎo)範圍。Mark Reinhold是Oracle Java平台組的首席架構師,他先前曾說:
最好是将Java開(kāi)發過程構造成一(yī)個持續創新的管道。該管道與定期的、有節奏的發布過程隻是松耦合的關系。如果一(yī)個主要特性錯過了預期的“發布列車(chē)(release train)”,那雖然遺憾,但卻也并不是世界末日:它将搭上下(xià)一(yī)趟列車(chē),這一(yī)趟也會在一(yī)個可預見的時間發出。
對于長期使用Java的開(kāi)發者而言,這樣兩年一(yī)個周期并不令人意外(wài)。如表1所示,Java的早期版本也是按這種節奏發布的。時間表管理的主要不同在于不同Java版本的發布間隔縮短:Oracle的目标是每個Java版本有三年的公共使用壽命,這大(dà)約隻有Java早期版本的一(yī)半。這項計劃意味着,用戶隻有一(yī)年的時間從一(yī)個主要版本遷移到下(xià)一(yī)個版本,除非他購買了商(shāng)業支持。
版本 | 正式發布日期 | 停用日期 | 使用壽命 | 距離(lí)上個版本 | 與上個版本共存 |
3(1.3) | 2000.5 | 2006 | 6 | 2 | -- |
4(1.4) | 2002.2 | 2008.10 | 6 | 2 | 4 |
5 | 2004.5 | 2009.12 | 5 | 2 | 4 |
6 | 2006.12 | 2013.2 | 6 | 2 | 3 |
7 | 2011.7 | 2015.4 | 4 | 5 | 1.5 |
8 | 2014.3 | 2017.5* | 3 | 3 | 1 |
9 | 2016.9* | 待定 | 待定 | 2 | 1 |
表1.不同Java版本的正式發布及停用日期,“*”表示計劃日期。(數據來源)
由于隻有一(yī)年的時間從一(yī)個Java版本升級到下(xià)一(yī)個版本,所以建議Java社區中(zhōng)的開(kāi)發者盡早使用新版本測試他們的工(gōng)具和庫。Mani Sarkar是Adopt OpenJDK項目的負責人,他說:
爲了将測試流程帶給社區,實現早測試早反饋,由@LJCJug和OpenJDK(也就是Oracle)支持的“Java測試”項目已經啓動。借助該項目,開(kāi)發者可以修複任何問題,或者改變他們的工(gōng)具在Java 9上的工(gōng)作方式,或者相反,找出并修複JDK本身的問題。