如果Java 失寵於Oracle,那麼未來會怎麼樣?

【編者按】對於前不久Oracle裁掉了一部分Java布道師,最近一位Oracle前高管稱其為該機構對Java的「計劃報廢」。如果這個計劃是屬實的,那麼對於尋常的開發者、已經採用了 Java 的公司、預備選擇Java作為基礎的創業者,究竟又會產生什麼樣的影響?最近,Jason Whaley在Dzone上進行了詳細的分析,由OneAPM工程師翻譯。

以下為譯文:

幾個月前,Oracle 裁減了部分 Java 布道師。不久之後,一位 Oracle 前高管在發送給Infoworld 的郵件中稱此舉為「計劃中的報廢(planned obsolescence)」。

一位負責 Java 的 Oracle 前高管在周二發給 InfoWorld 的這封郵件中聲稱了解 Oracle 公司內部信息。郵件稱 Oracle 正在轉型為雲公司,以期與 Salesforce 競爭。而且,”Java 已經完全失寵」,主題欄的原文為「Java——計劃中的報廢」。

郵件還說,Oracle 不想給競爭對手更多資源,不想分享創新成果。Oracle 正在縮減對 Java EE (企業版)的投入,同時它也不希望別的公司接手 Java 或 Java EE,而且它正逐步將 JCP (Java Community Process) 打入冷宮。郵件稱:「它們抱著贏者通吃的想法,不再熱衷於合作」。「WebLogic 的專利申請將會逐步完成,同時,也會推出一個專利的微服務平台。」WebLogic 是 Oracle 在2008年收購 BEA Systems 時得到的 Java 應用服務器。

如果以上陳述有一半屬實,那 Oracle 的想法和計劃真是相當嚇人。現在,將上面的陳述與下面的事實一起考慮。事實上,Oracle 掌握了 Java 大部分的所有權。

  • Java 語言、Java 虛擬機以及標準的 API 都是遵循 GPL 許可的開源資源。

  • 在收購了 Sun Microsystems 之後,Oracle 成為該知識產權的所有者。

  • Oracle 勇於通過代價高昂的法律訴訟維護其知識產權——它與 Google 圍繞 Android 的官司就是證明。

  • 那次官司的結果是法律不支持 Java API 被復制或分支(copy/fork),也不支持通過封裝或重命名的方式移為他用。

  • Java Community Process 是目前唯一可以改變該語言核心或標準 API 的方式。

  • 第三方供應商若想開發 Java 工具並大量發售,必須獲得(大多是以購買)Oracle 的許可。

最後,將以上所有事實與 Oracle—— Java 唯一擁有者的未來計劃一起考慮。

  • 不打算對 Java 進行有意義的更新

  • 不覺得有必要布道其產品以提高採用量或鼓勵創新應用

  • 只因為 Java 是其他專利產品的開發基礎才覺得它有用

是不是覺得有點誇大其實?可能是吧。但如果 Oracle 真打算將 Java 平台投入維護模式,以上想法並非無稽之談。那麼,對於每天依賴 Java 或 JVM 工作的尋常開發者而言,這冷酷的前景意味著什麼呢?對於那些以 Java 技術為軟體基礎架構支撐的公司而言,又意味著什麼呢?對那些正準備用 Java 編寫產品原型或 MVP(最小化可行產品)的初創者,又如何呢?前面所有問題的答案是:「沒有任何影響。至少現在是這樣。」

對於尋常的開發者

Java 仍舊是當下部署最廣泛、使用最普遍的平台語言。我掌握的一手資料顯示,今年的 JavaOne 大會依舊充滿生機。現今主流的基礎架構還是以 Java 為基礎構建。在 TIOBE(編程語言排行榜)上,Java 還是跟 C 一起,交替處於榜首。

圍繞 Oracle 裁減布道師的陰雲與猜測並不會對雇主們的 Java 或 JVM 技能需求產生任何影響,今天不會,明天不會,明年也不會——恐怕要有好一陣才有影響。即便 Java 語言和標準 API 的普及率下降了,越來越多的新語言正以更快的速度基於 Java 平台進行開發,那些(更普遍的情況)自帶 API 的語言,往往也是基於標準 API 的。

以上所有開發都依賴於該家喻戶曉的熱點 JVM,那 Oracle 對其知識產權的控制又如何呢?即便 Java 不再流行,仍有 Azul 之類的公司願意向 Oracle 購買證書從而通過其兼容的 JVM 賺錢,比如他們的商業產品 Zing 以及免費的 Zulu。

對於尋常的開發者,這個新聞無須掛懷。即便是那些將全部職業生涯都賭在 Java 這一種平台的開發者,這麼做雖然比較不明智,但也不用擔心。圍繞 Java 生態系統的技能與知識需求不會在短時間內消失。

對已經採用了 Java 的公司

與日常開發者差不多,變化也不大。之前就在基礎機構中採用了 Java 的公司早就賭定 Java 能幫助其完成既定的商業目標——即使該平台的背後支持是傳說中「邪惡」的 Oracle,或更早之前,一直都窮困潦倒的 Sun Microsystems。 這些全面展開的系統既然能做到商業目標,就不能因為它們建立在 Oracle 發布的平台之上,而淪為拋棄對象。

一般而言,在短時間內重寫或替代重要基礎架構中的 Java 組件的成本與風險遠遠大於回報。此處的回報是在未來,你新採用的平台變得非常普遍從而最終降低成本、提高業務敏捷性。重寫並替換工作系統是非常危險的冒險——只要看看 Netscape 的例子就知道了。即便一個公司順利地完成了遷移,回報也只能在多年以後得以做到。

若不管替換工作系統的問題,為了避免未來陷入遺留系統的困境,已經採用 Java 的公司組織可以將基礎架構遷移至微服務模型(microservices model)以降低風險。微服務策略也是一把雙刃劍,該話題在軟體開發領域還處於熱烈的討論階段,包括何時、何處、如何部署微服務架構。但若是擔心與 Oracle 停止開發的平台綁定的潛在風險,機警的公司至少可以通過微服務,逐步地,替換或孤立以 Java 為基礎的服務組件。

新的項目該何去何從呢?

如果你正在籌備新的科技公司或啟動內部新項目,並且覺得 Java 是合適的技術選擇,就需要討論一下該不該以 Java 生態系統為基礎。討論的焦點還是集中在可能產生的技術債務(technical debt)。在選擇平台時這類技術債務完全無法避免——區別在於這些債務的回報如何。

選擇 Java 平台意味著獲得健康廣闊的生態系統,以及豐富的知識、勞力力與相關產品。作為交換,由此帶來的技術債務在於,該平台也許無法適應未來的技術演進,因為其所有者不打算繼續開發它。現在,你或許可以開發出健康的產品,盡管未來會的開發成本會越來越高,甚至犧牲未來的業務敏捷度。

其他的平台選擇都有各自的技術債務。但簡而言之,各有各的不同。比如:

  • 選擇 Node.js 平台意味著缺少豐富的穩定生態系統。但該平台非常活躍,欣欣向榮,可能會持續發展很長時間,而且 Node.js 人才也越來越多。

  • 選擇 Ruby(很可能與 Rails 一起)平台意味著能以合算的成本快速建立起工作系統的基礎架構,但壞處是擴展性不佳。

  • 你也可以選擇 Microsoft/.NET 生態系統,該系統擁有一些與 Java 平台相似的優點,但缺點是你的公司命運會與另一個企業軟體巨頭的選擇綁定。

……還有許多其他選擇,每個選擇都是利弊權衡的問題。

簡而言之,是否選用 Java 平台作為新項目的基礎平台很大程度上是個人決策。Oracle 可能厭倦了 Java,但這是否應該影響這個決策呢?當然應該。但是,這不該是唯一的考慮因素。尤其是借助 Java 生態系統建立項目,能可觀地提高項目成功的機會。

如果Java 失寵於Oracle,那麼未來會怎麼樣?
第九屆中國大數據技術大會(http://bdtc2015.hadooper.cn/)將於2015年12月10-12日在北京隆重舉辦。在主會之外,會議還設立了16大分論壇,包含數據庫、深度學習、推薦系統、安全等6大技術論壇,金融、製造業、交通旅遊、互聯網、醫療健康、教育等7大應用論壇和3大熱點議題論壇

本文為CSDN原創,請點擊
閱讀原文
查看完整文章參與討論
如果您喜歡這篇文章,請點擊右上角
將本文分享給你的朋友

閱讀原文


關於作者:
CSDN精彩內容每日推薦。我們關注IT產品研發背後的那些人、技術和故事。

微信號:CSDNnews