Tuesday, November 21, 2006

Java平台將在2009年自行毀滅

這兩星期Java平台的新聞焦點是: Java決定以GPL方式開放原始碼。如此一來,所有的Linux系統都可以自行在出廠時安裝JVM,不需要讓每個用戶自己上網去下載。消息一出,各方面的佳評如潮,可以說是前途一片大好。興奮的我跑進去看了原始碼,才發現JVM是用C語言寫的,看起來如同天書,有點失望,可真是C到用時方恨少啊。

然而在另一方面,Java社群其實正面臨一個全面崩潰的危機。這個危機來自OSGi組織與Java Community Process之間的衝突。Java開發者都知道,編譯好的程式可以包裝成*.jar檔案,然後就可以透過classpath把程式庫載入JVM執行。jar說穿了就是一個zip檔案,只不過裡面的目錄要按照規定排好位置罷了。因為程式庫都是在執行時期才會載入,所以從JVM的classloader結構上來看,只要有個起動程式把classloader發動起來,剩下的程式庫要用的時候再去網路上下載就行了。從這個想法來看,Java平台其實理論上不需要很大的硬碟空間,可能比Flash player稍大一點點就夠了。

Java 7 考慮採用這種模式來減低下載大小。其實同時間早已有很多人在進行同樣的計畫。OSGi希望能在嵌入式系統裡採用同樣的架構,而且已經進行了五年。另一方面,Apache Maven也已有類似的想法來解決jar dependency。這兩個計畫之外,又有兩群人很瞎的寫了兩個重疊的提案,還有某公司很瞎的兩個案子都參加了。恕我無知,但真的這幾個案子好像很多地方可以合在一起。更慘的是,有人寫信去告訴他們這個情況,但兩造都假裝聽不到。大概是在占地盤吧。

如果這樣搞下去,加上開放源碼,那麼Java 7就會步上C++與CORBA的後塵: 出現一大堆類似但不相容的產品。如果是這樣,那麼Java 7就會是最後一個讓人記得的版本了。

No comments: