事件回顧
2007 年 10 月,Apple 發布 Mac OS X 10.5 Leopard,宣稱擁有 300 項新功能。然而,Leopard 發布版預設不支援 Java 1.6(Java SE 6),雖然 Windows、Linux 平台早已正式釋出。
開發者痛點
「我的工作需要 Java 1.6 運行開發工具,鑑於現況,我可能得退回 Tiger (10.4)。」—— 受影響 Java 開發者
- Java 1.6 正式版已釋出近一年,Tiger 甚至可運行 Beta 版
- 非所有用戶需要 Java 6,但對專業開發者是硬性需求
- Apple 官方當時未公開回應時間表
深層原因探討
- Apple 獨家掌控 JVM 移植:不同於 Windows/Linux 由 Oracle(當時 Sun)直接維護,Mac JVM 由 Apple 自行移植維護,釋出節奏綁定 OS 釋出週期
- Leopard 開發週期壓縮:300 項新功能、底層架構大幅重構(64 位全面支援、Objective-C 2.0、Core Animation 等),JVM 移植測試時間被擠壓
- 戰略優先級差異:Apple 聚焦消費級體驗與自家生態,Java 屬企業級/跨平台技術,非核心競爭力
後續發展(歷史補完)
- 2008 年 4 月:Apple 釋出 Java for Mac OS X 10.5 Update 1,終於支援 Java SE 6(僅 64 位 Intel 機型)
- 2010 年:Apple 宣布不再自行開發 JVM,移交 OpenJDK 社區(後由 Oracle 領導 Mac OpenJDK 移植)
- 現今:Mac 開發者直接從 Oracle/Eclipse Adoptium 下載 JDK,不再依賴系統預裝
給當下的啟示
- 工具鏈與平台解耦:使用 SDKMAN、jEnv 管理多版本 JDK,不依賴 OS 預裝
- 容器化開發:Docker 統一運行環境,消除「在我機器上能跑」問題
- 關注供應鏈風險:關鍵基礎設施(JDK、Python、Node.js)由單一廠商控制時,需評估斷供風險
結語
Leopard 的 Java 1.6 缺席,是平台廠商與開發者生態優先級錯位的經典案例。它倒逼 Apple 開放 JVM 維護權,也讓開發者學會掌握工具鏈主動權。今天回看,這段插曲見證了 Java 生態從「平台綁定」走向「開發者自主」的關鍵轉折。