在 Python、JavaScript 等一眾編程語言崛起風靡之際,一代霸主 Java 風采雖不及當年,但仍橫掃了各大編程語言排行榜,也依舊是各大企業級應用開發語言中的 NO.1。
TIOBE 2019 年 4 月編程語言 Top 5
不過,有不少網友發現,即使如此,Java 之于其母公司 Oracle,地位似乎日趨愈下。而這也并非空穴來風,種種現實表明,Oracle 正在從其內部逐步削弱 Java 品牌的存在。
紅帽接管 OpenJDK 8 和 OpenJDK 11
追溯到 2014 年 3 月和 2018 年 9 月,Oracle 分別推出了 Java 的兩個長期支持版本 JDK 8 和 JDK 11。
經歷了多年的發展之后,Java 8 已成為開發者最常使用的 Java 版本。不過作為 Java 的掌控者 Oracle 也在此不久后,改變了使用 Java 的“游戲規則”:
JDK 8:自 2019 年 1 月起,Java SE 8 公開更新將不向沒有商用許可證的業務、商用或生產用途提供;
JDK 11:新版 Oracle JDK 不可以用在數據處理、商業、產品、或者內部商業用途(需要購買 License),僅可免費用于開發、測試、原型、演示。
簡而言之,開發者或企業想要使用 Java 8/11 中的 OracleJDK,要么付費,要么另選它法。在此情況之下,不少人被迫選擇了開源且免費的 OpenJDK 版本,同時如阿里的 Dragonwell、亞馬遜的 Corretto 等 OpenJDK 發行版也紛涌而至。
不過,使用 OpenJDK 也有一定的缺點,如它的源碼并不完整、開發者需要經常升級等等,此外,Oracle 對 OpenJDK 的服務支持時長也有一定的期限,即維護時長到期后,Oracle 會直接放棄老版 OpenJDK 的 Bug 修復和安全更新。
近日,對于使用 OpenJDK 8 和 OpenJDK 11 的開發者和企業來說,有一件值得慶賀的事情。日前,全球知名的開源解決方案提供商紅帽(Red Hat)于官網正式宣布,“在 Oracle 轉型后,Red Hat 將成為 OpenJDK 8 和 OpenJDK 11 兩個項目的管理者。隨著這種角色轉變,Red Hat 也將遵循曾領導 OpenJDK 6 和 OpenJDK 7 項目的道路,繼續對 Java 社區進行支持。”
事實上,于 2014 年發布的 OpenJDK 8,Oracle 為其提供的五年支持已于今年初終止。紅帽在此時能將 OpenJDK 8 和 OpenJDK 11 的項目接手過來,這意味著開發者可以繼續免費使用該 OpenJDK 的支持服務直到 2023 年 6 月和 2024 年 10 月。此外,紅帽也解釋道,之所以不會維護 OpenJDK 9 或 OpenJDK 10,是因為這兩個是短期支撐版本,只有半年的支持時間。
Oracle 要放棄 Java?
那么,Oracle 將 OpenJDK 的管理權轉讓,到底為哪般?
或許 Oracle 不僅是想放手 OpenJDK,更想放棄的應該是 Java。其實,早在 2015 年,就有媒體報道,Oracle 內部似乎正在針對 Java 實施“計劃中的報廢”戰略:
一位負責 Java 的 Oracle 前高管發給 InfoWorld 的郵件中聲稱了解 Oracle 公司內部信息。其表示,Oracle 正在成為一家與 Salesforce 競爭的云公司。其不再對 Java 感興趣,且 Oracle 不想給競爭對手更多資源,不想分享創新成果。Oracle 正在縮減對 Java EE (企業版)的投入,同時它也不希望別的公司接手 Java 或 Java EE,而且它正逐步將 JCP (Java Community Process) 打入冷宮。“WebLogic 的專利申請將會逐步完成,同時,也會推出一個專利的微服務平臺。”WebLogic 是 Oracle 在2008年收購 BEA Systems 時得到的 Java 應用服務器。
雖然彼時的報道,聽起來非常不可思議,但是兩年后 Oracle 的舉措進一步證實了這篇“計劃中的報廢”言論。
2017 年 9 月,Oracle 突然宣布將 Java EE 的支持和維護移交給 Eclipse Foundation,其中包括參考實現、技術兼容性工具包和“相關的項目說明文檔”等等。隨后,Eclipse 基金會更是為 Java EE 改名為 Jakarta EE。最終,這一事件的落地也標志著 Oracle 已決心減少對 Java 的控制。
再到如今主流的 OpenJDK 8 和 OpenJDK 11 的管理權已正式被交到了紅帽手上,為此,來自 Ovum 基礎設施解決方案的杰出分析師 Michael Azoff 也表示道:
當前領導和控制管理 Java 的是 Java SE 的所有者 Oracle。顯然,Oracle 希望改變,雖然它擁有 Java SE ,但它已將 Java EE 交給 Eclipse Foundation,后者已將其重命名為 Jakarta EE。
Red Hat 是 OpenJDK 的重要貢獻者,已經加強了 OpenJDK 8 和 OpenJDK 11 的管理,它將于 Oracle JDK 融合。我猜測的是,我們可以期待在未來幾年內有關 Java 管理權移交的更多新聞,我相信 Red Hat 擁有一雙安全的手來承擔這一角色,它也更適合 Java 作為開源軟件,Red Hat 是開源軟件社區的領導者。
這樣看來,如果說 Oracle 對 Java EE 管理權的移交是放棄 Java 的第一步,那么這次對 OpenJDK 8 和 OpenJDK 11 的放手,也僅會是 Oracle 從內部削弱 Java 品牌的第二步。
至于 Oracle 為何要這么做?
其實,站在 Oracle 的商業立場,也不難理解其做法。畢竟如今是 AI 云的互聯網時代,想要在新的環境中走的更快更遠,必須減負前行。
此前,在今年 3 月,Oracle 也再次開啟了全球范圍內的新一輪的裁員,彼時 Oracle 執行副總裁 Don Johnson 也向全員發送了一封標題為“組織重組”的電子郵件。該郵件告知工作人員:將來公司的一切工作都將圍繞 Oracle 云基礎設施(Oracle Cloud Infrastructure,簡稱OCI)運營展開。
而且不僅 Oracle,如微軟也將曾經中流砥柱的業務 Windows 進行了拆解與平衡、Apple 也為 iPhone、iPad 等硬件設備推出了系列軟件服務、Google 也正在秘密研發支持全新計算平臺的 Fuchsia 操作系統…
在新浪潮來臨之際,所有的科技公司均是「同一個世界同一個夢想」。
OpenJDK 8 和 OpenJDK 11 的接任管理者,為什么是紅帽?
不過作為開發者,當看到 Oracle 對 JavaEE 以及 OpenJDK 停止服務以及放手時,或多或少會對自己基于此平臺及技術所開發的項目產生一定的擔憂。
但從另一個角度上來看,紅帽此時可以接管 OpenJDK,整體來說利大于弊。對此,Red Hat 中間件副總裁兼總經理 Mike Piech 也在發布的聲明中直言,“Java 處于文藝復興時期。它不斷發展,成為新興架構的關鍵組成部分。開發者渴望將 Java 帶入下一代開發,而 Red Hat 通過參與 OpenJDK 項目,正在幫助引領 JDK 用戶在現有環境中獲得支持和創新的努力。Red Hat 仍然致力于 Java,并很高興有機會幫助管理 OpenJDK 社區。”
其實,紅帽和 OpenJDK 也早有淵源。自 2007 年起,紅帽就一直活躍在 OpenJDK 社區中;2013 年,紅帽擔任 OpenJDK 6 社區的領導者;2015 年,紅帽再次獲得 OpenJDK 7 的管理權。
除此之外,紅帽此次獲得 OpenJDK 8 和 OpenJDK 11 的管理權也算實現了 Java 之父 James Gosling 的一點愿望了。
9 年前,Oracle 收購了大名鼎鼎的 Sun 公司,由此編程界的一哥 Java 也成為 Oracle 諸多重要業務中的一層。不過,彼時令人驚訝的是,Java 創始人 James Gosling 在 Sun 公司被 Oracle 收購之后不久便離職了,而其中緣由,James Gosling 曾在接受《eWeek》專訪時道了不少,包括了薪酬不平等、Sun 高管職權被架空、權力結構問題等等,其中還有一點是,最初時候,他本人其實比較傾向于 IBM 將 Sun 公司收購而不是極具獨裁性的 Oracle。如今 OpenJDK 8/11 被 IBM 以 340 億美元收購的紅帽接管 ,想必 James Gosling 也是樂意看到的。
紅帽掌管了 OpenJDK,對開發者而言意味著什么?
事實上,對于 Red Hat 接管 OpenJDK 8 和 OpenJDK 11 項目,從新技術角度來看,并不能為 Java 社區帶來根本性的改變。畢竟對于 Oracle 而言,想要添加新的或實驗性的功能應該僅會針對 Java 的最新版本來,而不是回過頭在舊版本上動刀。
基于此,Red Hat Java 平臺團隊的首席工程師 Andrew Haley 也曾表示過,在沒有 Oracle 工程師支持的情況下,保持 Java 的更新對 Java 社區來說將是一個挑戰,但同時這也是一個機遇。一個真正開放和透明的 OpenJDK 更新項目,將吸引更多開發者參與進來,讓所有 Java 用戶受益。
那么 Red Hat 在接管 OpenJDK 8 和 OpenJDK 11 項目維護之后,對開發者意味著什么?
根據官方報道,這意味開發者可以繼續使用兩個舊版本繼續開發應用。
且去年 12 月份,紅帽宣布為微軟 Windows 環境提供 OpenJDK 的長期商用支持服務。此外,紅帽對于 Java 的計劃還包括在未來幾周內在 Microsoft 安裝程序中啟動 OpenJDK 并分發 IcedTea-Web,這是 Java Web Start 工具的免費軟件實現,用于從 Web 運行 Java 應用程序。IcedTea Web 將成為 Windows OpenJDK 發行版的一部分。與此同時,紅帽還領導著 Shenandoah 的開發。作為一個高性能垃圾收集器,Shenandoah 現在已經是 OpenJDK 12 的一部分。
如今針對這一事件,Reddit 上的開發者也展開了激烈的討論:
@rifeid:
這并不奇怪,Red Hat 已經是 OpenJDK 6(自 2013 年起)和 OpenJDK 7(自 2015 年起)的維護者。
然而,更有趣的是,有些人認為 Java 在一個大型企業的手中要比在那些并沒有足夠的資源去維護 OpenJDK 的中小型企業手中要好得多,此外,也有不少網友對此猜測,更多的 Java 版本維護將被移出 Oracle,可能轉移到 Red Hat 或其他組織下。
@existentialwalri:與其說接管 OpenJDK 8 和 OpenJDK 11 項目的是 Red Hat,倒不如直接挑明說是 IBM。
@shevy-ruby:希望當前主流的編程語言不要掌握在幾個大型私有企業的手中,但目前除了少數幾種語言之外,趨勢有很大的不同。