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