The Decline and Fall of Java on the Desktop
從 1995 年問世至今的 Java,儘管知名度高,發展也算活躍,並且有著跨平台的優勢,卻似乎未曾在 PC 應用程式的開發上佔據很重要的份額。 直到 Android 以 Java 作為首選的程式語言,才終於找到另外一片天地。然而 Java 起初既為桌面系統而生,何以在桌面系統上走得不是那麼順遂?關於此議題,jDeploy 工具的開發者 Steve Hannah,撰寫了多篇幅的專題文章《The Decline and Fall of Java on the Desktop》,分別為 Part 1 及 Part 2。
在該專題裡,Steve Hannah 分享自己從學生時期開始,及至工作環境,與 Java 相關的經歷和見聞。雖然 DR 自身不是 Java 開發者,不過文章中所涉及的幾個面向,跟自己對 Java 的印象卻還是蠻一致的。首先 Java 自外於作業系統原生設計的特立獨行,既同時是優勢也是劣勢。優勢即是它擁有跨不同作業系統執行的能力;而劣勢則是在作業系統中表現得像是個異類。使用者經常能夠從安裝或者執行過程裡,感受到 Java 應用程式跟其它程式不太一樣,有一種格格不入甚至是怪咖的感覺。
在 PC 上主要的三種作業系統(Windows、macOS、Linux)裡,儘管 Java 可能蠻常運用於商務軟體的客製化開發,但一般消費性的應用程式卻很少見到有使用 Java 開發的。不過 Java 也曾經有一個能夠發揮其長處的機會,是以 applet 或者 Web Start 的形式,來填補早期網頁瀏覽器在技術能力上的不足。然而這項機會先是在某些層面上受到 Adobe Flash 的挑戰;然後接著 Java 和 Flash 又一同被 HTML5 取而代之。
以 DR 自身的工作經歷來說,在伺服器主機及雲端主機的管理上,是最容易能夠感受到前述的變革。因為主機硬體或者雲端主機商,倘若有提供遠端的本機控制介面,以前蠻多是要依賴 Java 才能執行,在配置上有時會覺得繁瑣。但後來接觸到的機器或平台,比較多都改用 HTML5 了。單純透過網頁瀏覽器,不用另外裝任何東西就可以跑,確實是便利許多。
從 Java 過去及現今的發展景況來看,或許可以歸結出,倘若要成功擴大一門程式語言的影響力,除了語言本身自然要有具吸引力的特性外,不外乎得透過以下兩種條件:其一是非私有的營運方式,以社群、基金會或者標準化機構的形式進行維護。如此一來,對大家都有好處,可以自由參與及採用。其二則是要有具影響力的系統平台,大力擁護這門語言,並提供原生的支援。
比較之下,Java 的許多競爭者,基本上都有具備前述的一或兩種條件,至於 Java 則是在若干年後才真正具備其中的第二項條件,也就是 Google 在 Android 裡採用 Java 作為主要的應用程式開發語言。雖然事實上 Java 在更早期就有進入到行動平台裡,但這些平台的影響力都不及 Android 那般巨大。然而卻也是因為 Android 的緣故,讓擁有 Java 產權的 Oracle 跟 Google 打了一場舉世矚目的官司。而最終在 2021 年的裁定,是判決 Google 仿製 Java API 係合理使用的範圍。