歡迎光臨
每天分享高質量文章

Oracle 承認:Java 9 確實破壞了一些東西,開發者仍舊堅持用 Java 8

(給ImportNew加星標,提高Java技能)

 

編譯:唐尤華,

鏈接:www.theregister.co.uk/2019/03/07/java_developers_version_8/

 

Java 有個問題:Java 語言和平臺的開發速度比以往任何時候都要快,但許多開發人員仍舊堅持使用已經發佈了五年的 Java 8。

 

本周在倫敦舉行的 QCon 會議上,Trisha Gee,一位 JetBrains 的開發者,在發表演講前在 Twitter 上進行了調查。78%的人表示,他們正在使用 Java 8。考慮她的粉絲大多傾向於使用最前沿的技術,實際的比例可能會更高。

 

譯註文章發佈於2019年3月7日

 

你正在使用哪個版本的 #Java ?

 

— Trisha Gee (@trisha_gee) 2019-2-18

 

這讓人感到非常遺憾。Java 8 的後續版本中加入了許多功能強大的新特性:JLink 可以為 Docker image 創建更小的 Java 可執行檔案,用 var 可以代替型別宣告,JShell 為 Java 提供了交互式功能。此外還改進了 collection、optional 實現、改進了垃圾回收、引入了模塊化機制等等。

 

那麼,為什麼開發人員沒有升級?一句話,Java 9 進行了重大變更,包括內部重組、新的模塊化機制(Jigsaw 專案)並移除了一些很少使用的 API。這些改變破壞了代碼,甚至那些願意升級的開發者會顧慮依賴性問題。一位參會者說:“我們使用的開發庫還沒有支持最新 Java 版本”。

 

“我想解釋為什麼升級是必要的”,來自 Oracle 的 Ron Pressler 說道。他是 Java 平臺語言開發小組中的一員,也是 Loom 專案的負責人。

 

“Java 有數十億行代碼,而 Java 9 確實破壞了一些東西。這是因為 Java 已經20多歲了,在接下來的20年裡,它會繼續大受歡迎。我們必須考慮20年後的情況。Java 9 之前的 JDK 結構是不可維護的。如果不做出這樣的改變,就無法保持 Java 的競爭力。因此,改變是絕對必要的”。

 

JClarity 的 CEO Martijn Verburg 表示,目前已經取得了一些進展:“在最受歡迎的1000個 Maven 庫中,目前大約65%兼容了 Java 9+。6個月前,這一比例大約是42%,可能還需要一年時間才會完全兼容“。JClarity 是一家專註解決 Java 性能問題的公司。

 

然而,開源專案和企業私有庫的升級之路會很漫長。Java 8 現在仍然支持得很好,沒有強烈的升級衝動。“未來將會出現兩個世界”,一位與會者表示,“一個 Java 8 的世界,一個 Java 11+ 的世界”。

 

在一個 QCon Java 座談會上,Pressler 看起來有點沮喪:“在 Java 9+ 上無法運行代碼沒有特別的原因,可能只需要修改一些過時的 API 呼叫或者類似的工作。Java 9+ 並不是一門別的什麼語言”。

 

與此同時,他也承認目前每六個月給 Java 一個新版本號的做法的確給人造成了不好的印象。

 

 

“我們做過的最讓人感到困惑的事情之一,就是用整數版本編號給每六個月發佈的新版本命名。從 Java 9 到 Java 10,你會認為這是 Java 一個新的主要發佈版本,但事實並非如此。Java 10 並不是一個主要發佈版本,而是一個小版本。最近的一個 Java 主要發佈版本是 Java 9。在可預見的未來,不會再有這種情況發生了”。

 

Oracle 修改了 Java 11 的授權策略——必須獲得商業許可。除非你願意跟上開源 OpenJDK 的步伐,這會不會也是一個問題?

 

“Java 實際上變得更自由了”,Verburg 說道。原因在於 Oracle 已經正式支持 OpenJDK 並與 OpenJDK 提供者共享安全補丁。“但如果訪問 Oracle 的網站下載 Java,你必須做出決定。是要商業版 Java、Oracle 的 OpenJDK,還是其他 OpenJDK?你不得不做出自己的選擇。這就是市場中的困惑”。

 

Oracle Java SE 產品經理 Donald Smith 對此表示贊同,但他補充道:“不幸的是,Register 雜誌無法刊登題為‘現在 Java 比以往任何時候都更自由’的文章,人們是不會看的”。

    已同步到看一看
    赞(0)

    分享創造快樂