Java二十周年:輝煌、低谷與未來
譯文甲骨文公司Java副總裁回顧J2EE、OpenJDK、安全問題以及Java 7面世的種種曲折。
盡管Java語言是由Sun Microsystems公司所締造,但自2010年收購Sun之后、甲骨文公司就成了這套平臺的監(jiān)護者。在此期間,甲骨文方面先后推出了Java 7與Java 8,而其版本9也將于明年與廣大開發(fā)者見面。當下正值Java誕生二十周年,我們就借此機會與甲骨文公司Java平臺部門軟件開發(fā)副總裁Georges Saab進行直接交流,共同回顧過去、評說現(xiàn)在、展望未來。
記者: 甲骨文公司接掌Java至今還不到五年半。那么Java誕生二十周年對于甲骨文來說有著怎樣的意義?
Georges Saab
Georges Saab,甲骨文公司Java平臺部門軟件開發(fā)副總裁
Saab: 我們一直在努力打理一切,確保Java社區(qū)繼續(xù)保持活力、充滿干勁并推動該項技術不斷發(fā)展。當然,甲骨文公司本身也是 Java的一大用戶,因此我們也以振奮而愉悅的心情慶祝著二十周年這一里程碑的到來。二十歲對于人類來說僅僅算是步入青年,我們期待著Java能夠繼續(xù)充 滿生機地迎來下一個二十年。
Java的各主要里程碑
記者: 您認為在過去二十年中,Java迎來了哪些主要里程碑?
Saab: 我們可以回顧過去、審視陸續(xù)出現(xiàn)的各個Java主要版本。很明顯,Java在最初發(fā)布時的版本以及既定目標與我們?nèi)缃竦挠∠笙嗳ド踹h。事實上,Java的初始設計思路是運行在機頂盒等各類嵌入式設備之上。
在當初的起步階段,Java的類庫等機制可謂體積小巧但同時又***擴展能力,因此其迅速在Web領域積累起旺盛的人氣、并開始以全新的使用方式——例如在瀏覽器中——全面崛起。
從當初庫的不斷成熟與拓展一直到如今的樣貌,真正讓Java改頭換面的變化是從1.2版本開始的。而在此之后,我想要談談EE(即Enterprise Edition),這也是Java發(fā)展歷程中的一大里程碑。
Java將走向何處
記者: 未來Java會走向何處?我們已經(jīng)在Java 8當中獲得了函數(shù)編程能力,而Java 9則將帶來模塊化機制。是否存在著什么我們尚不知曉的Java發(fā)展路線圖?
Saab: 你可以去看看OpenJDK JEP(即JDK Enhancement Proposal,JDK增強方案)的進程頁面,其中列出了全部正處于討論當中的方案思路。
一部分已經(jīng)提出的JEP旨在為Java對象在內(nèi)存中提供更理想的布局機制?;旧?,我們建立起一個名為Valhalla的有趣項目,它的作用是為Java審查值類型。從本質(zhì)上講,該項目的著眼點位于Java主體與Java對象之間。
記者: 在未來幾年內(nèi),Java還會帶來哪些值得期待的變化?
Saab: 另一套看起來頗具前途的方案是Java Native Interface的新版本,它能夠在Java與本機代碼(例如C或者C++)之間實現(xiàn)數(shù)據(jù)結(jié)構(gòu)共享,從而顯著簡化不同語言之間的調(diào)用流程。
記者: 您認為Java在未來五年、十年甚至是二十年會發(fā)生怎樣的變化?
Saab: 我們對于物聯(lián)網(wǎng)概念所帶來的各種前景充滿期待。Java在這一領域擁有諸多優(yōu)勢,它不僅有能力應對這些相當分散的碎片化設 備、同時也讓開發(fā)人員得以利用自己所熟知的語言更輕松地介入其中。而且從多個角度來看,目前Java所面臨的挑戰(zhàn)以及環(huán)境與Java當初誕生并逐步發(fā)展時 非常類似。
我們在端到端系統(tǒng)領域面臨著更多挑戰(zhàn),因為在這里我們需要利用設備、網(wǎng)關以及某種后端云服務來應對一切可能出現(xiàn)的狀況。有鑒于此,Java正是少數(shù)幾種能夠在此類環(huán)境下順利應對一切問題、并承諾通過單一解決方案讓人們輕松上手的技術成果之一。
Java發(fā)展中的***低谷
記者: 在過去二十年當中,Java最令您失望的狀況是什么?
Saab: JDK 6那個時期相當具有挑戰(zhàn)性,我們在此階段耗費了很長一段時間,而且情況直到Java 7的出現(xiàn)才得到改觀。在某種程度上,我們可以將其歸咎于當時公司所面臨的一些經(jīng)濟問題,但當時投入的時間與精力并沒有白費。經(jīng)過艱難的探索,我們最終打造 出了JDK 6的代碼庫,并于隨后將其開放——這就是后來的OpenJDK。
在這種意義上,我們又用了很長時間才推出Java的下一個主要版本,這確實教人有些失望。不過歸根結(jié)底,這一切都成了OpenJDK社區(qū)的誕生歷程,而也正是因為如此、我們才有了如今的Java 7與Java 8。
記者: 甲骨文公司在Java當中遭遇到大量安全問題。那么甲骨文已經(jīng)取得了主動權(quán),還是說目前安全性仍是困擾Java發(fā)展的一大阻礙?
Saab: 我們一直都在認真對待安全問題,而且這也是個要求我們永遠保持警惕的老對手。我認為考慮到自身能力以及問題嚴重性這兩大因 素,我們的工作成果已經(jīng)算是不錯了。而且我們也一直在以主動方式解決問題,希望借此確保Java項目擁有良好的安全改善進程,從而使得我們開發(fā)出的新功能 擁有理想的安全立足點、并最終以盡可能出色的狀態(tài)與用戶見面。
我們也在努力確保為利用Java語言開發(fā)軟件的用戶們提供必要的API,只要確切使用、這些API將切實幫助他們的應用程序獲得更理想的安全水平。
如果大家關注我們每季度按時公布的關鍵性補丁更新追蹤記錄,就會發(fā)現(xiàn)其中所包含的漏洞修復數(shù)量相當驚人。而且在最近幾次發(fā)布當中,得到修復的漏洞數(shù)量開始有所下降——這并不是因為我們玩忽職守,而是因為我們確實已經(jīng)解決掉了大部分安全問題。
Java如何應對來自其它語言的挑戰(zhàn)
記者: Java要如何應對來自其它新型編程語言的挑戰(zhàn)——例如JavaScript、谷歌Go、谷歌Dart或者其它時髦方案?JVM本身能夠承載多種語言類型。既然有這么多編程語言備選方案,Java要如何才能牢牢抓住開發(fā)人員的心?
Saab: 我們樂于看到目前這種編程語言百花齊放的態(tài)勢。需要著重強調(diào)的一點是,作為Java語言的監(jiān)管者,我們同時也是該語言*** 的使用者之一,我們的內(nèi)部環(huán)境中擁有大量由Java編寫而成的活躍應用程序。因此,我們對于Java的光明未來負有雙重責任。我們不可能實驗或者推出那些 無法帶來良好收效的開發(fā)成果。對Java來說,它根本沒有必要去嘗試一大堆不同類型的新功能、從而標榜自己始終站在時代的前沿。
相反,我們勾勒出的規(guī)劃在于確保自己拿出的新進展以及新技術能夠***程度適用于更多用戶,而且這些成果必須經(jīng)過嚴格的檢驗,從而保證其精巧可行、易于理解、易于使用并能夠在某種程度上具備可擴展能力。我們已經(jīng)擁有類似的實例,比如Java 8當中的lambda。
當然,我們很高興看到有這么多語言能夠運行在JVM之上,而且我認為使用這些語言的用戶之間會擁有良好的意見交流——這種多元而又健康的態(tài)勢令我們非常振奮。
原文標題:Java at 20: Its successes, failures, and future