受困安全問題Java8發(fā)布推至2017年
166 2017-04-25
Oracle的Java平臺組首席架構師MarkReinhhold在其博客上宣布,Oracle決定將Java8的發(fā)布時間推遲4-6個月。
Reinhold提到,Oracle正在全力解決近來引發(fā)公眾關注的這一波安全漏洞問題,Java8項目組不可避免地被抽調(diào)走了很多工程師。他說,“維護Java平臺的安全性,其優(yōu)先級總是比開發(fā)新功能要高,所以這些工作不免會抽調(diào)一些正在進行Java8開發(fā)的工程師。”此外他還強調(diào),為改進代碼質(zhì)量并減少缺陷,Oracle“升級”了開發(fā)流程。
Reinhold還提到,最主要的延誤在JSR335中,也就是負責向Java中加入閉包(亦稱“Lambda表達式”)的Lambda項目。他認為,“如果放棄Lambda,剩下的特性盡管也比較有趣,但總體上看就沒那么吸引力了。假如今年發(fā)布一個沒有Lambda的版本,得到廣泛應用的可能性很小,那又何故如此呢?”
當面臨推遲發(fā)布或減少特性的選擇時,Reinhold拒絕了第三種選擇:“如果為了保證按時發(fā)布而犧牲質(zhì)量,那幾乎可以肯定,我們會重復過去總犯的錯誤,將不完整的語言變更和API設計構建在虛擬的基石之上,會致使無數(shù)開發(fā)者在未來數(shù)年內(nèi)將圍繞其缺陷工作,直到這些特性——甚至整個平臺——被新事物替代為止?!?/p>
看起來Java8GA(GeneralAvailability)版本的發(fā)布時間會從原計劃的2013年9月推遲到2014年第一季度。這已經(jīng)是該版本的第二次跳票了。Java8最初計劃于2012年底發(fā)布,后來受Java7開發(fā)延期的影響,被推遲到了2013年9月,并且放棄了Jigsaw項目。目前這次延期也會波及到JDK9,我們預計JDK8將于2014年第一季度發(fā)布,而JDK9則從2015年推遲到2016年初。InfoQ去年7月曾報道過,Java8放棄了Jigsaw項目,而且Reinhold否定了該項目再次進入Java8的可能性。
看一下Java8保留特性的集合,顯而易見,Java8就是通過Lambda項目定義的。
Lambda項目也需要和其他大型模塊進行很多協(xié)調(diào),尤其是并發(fā)框架和泛型框架。這也印證了Oracle騰出開發(fā)力量去解決安全問題的解釋。
Lambda表達式的引入是在2004年Java5引入泛型之后最大的語法增強。
閉包是越來越流行的“函數(shù)式編程”范型的基矗(縱然術語“閉包”和“Lambda表達式”在理論上有所差別,但在Java語境中它們經(jīng)常交替使用。)為使閉包的價值最大化,Java還將修改相關的庫。其中包括新的流API,它提供了一種將指令操作流水線化的機制,這對函數(shù)式編程是至關重要的。再就是Option類,它包裝了可能出現(xiàn)的空值,消除了某些情況下測試空引用的必要性,以便簡化閉包開發(fā)。
包括Scala和Clojure在內(nèi)的大多數(shù)流行的JVM語言,Ruby,以及像C#和F#(一種基于.Net的函數(shù)式語言)等流行的.Net語言都已經(jīng)支持閉包,所以很多開發(fā)者希望Java也加入該特性。
咨詢QQ:!
咨詢熱線:400-6677-656!
掃一掃
獲取更多福利
獵學網(wǎng)企業(yè)微信
獵學網(wǎng)訂閱號
獵學網(wǎng)服務號