Linux逐漸興起,而Java本來就是軟體技術的主流,Linux負責下面的作業系統,Java負責上面的應用,兩者的結合是絕佳的互補。甚至有人將Linux + Java喚做Lava(岩漿)。
對於一個新推出的作業系統來說,會遭遇到兩大問題:第一個問題是驅動程式不足,第二個問題是應用程式不足,而Java的存在,可以解決第二個問題。只要該作業系統上具備Java虛擬機器,就可以執行所有的Java應用程式;只要Java的應用程式夠多、夠豐富,就可以解決新作業系統其應用程式不足的窘境。
我記得BeOS的CEO曾說過:新的作業系統如果能夠利用Java的力量,將可以有崛起的機會(雖然在2001年時BeOS還沒等到此機會就因資本耗盡而關門,後來技術被Palm買走)。但是我認為,倘若新的作業系統真的利用Java而站穩腳步了,恐怕又會想把Java一腳踢開。「狡兔死,走狗烹」,不正是同樣的道理。新的作業系統一旦崛起,一定會希望應用程式只能在自己的作業系統上執行,而不能在其他作業系統上執行。
回溯到約六年前,當時IBM和Sun合作開發了一套新的作業系統,稱為JavaOS,正是要結合作業系統與Java虛擬機器。只可惜,後來他們發現這樣的設計並未取得太多速度上的優勢(因為那一陣子JIT編譯器的技術進展很快),而且也會造成驅動程式不足的困擾(這是新的作業系統一定要面對的問題),所以該計畫在1998下半年時停擺。不久之後,另一個Open Source的類似計畫JOS也停擺了。
現在Sun即將推出一個名為Java Desktop的產品,它正是整合了Linux和Java。Java Desktop不會有以前JavaOS的問題,因為現在Linux的驅動程式已經很普遍,連Linux原生的程式都很齊備。Java Desktop整合Linux和Java,並預先安裝了許多軟體(包括了Java的應用軟體和Linux原生的應用軟體),例如StarSuite。如同大家所預料的一樣,Java Desktop的外觀與操作方式和Windows很類似。
許多Linux陣營的人都在質疑,在這個稱為Java Desktop產品中,Java佔的比例太小,Linux佔的比例太大,似乎不太適合稱為Java Desktop,而應該稱為Linux Desktop。不只是Linux陣營有此疑義,連Java陣營(例如www.JavaLobby.org)也充斥著這樣的看法。我建議Java Desktop另取名字,以正視聽。否則,剛剛買下Ximian的Novell萬一以後打算推出Linux + Mono,是不是可以如法炮製,稱為.NET Desktop,乖地隆咚!
Linux + Java會不會成功?我認為,在伺服器上的Linux + Java機會頗大(事實上,可以算是已經成功了),但是在PC上,Linux + Java短期內是沒有贏面的。而Java Desktop似乎是PC等級的軟體,這使得我相當懷疑Java Desktop的前景。
就作業系統和虛擬機器的整合來說,恐怕Linux + Java的整合程度會比不上Windows + .NET。Windows已經漸漸地將許多核心技術改用.NET相關技術來取代,例如Windows核心的COM/DCOM/COM+,在進入.NET時代之後都會有適當的替代技術出現。甚至下一個版本的Windows(代號Longhorn)可能就是一個完全整合進.NET的嶄新作業系統。從Java和.NET在這幾年的發展狀況來說,Java如果不能解決自身的許多問題,並加快步伐,恐怕龜兔賽跑的情節會再度上演。
競爭帶來進步,對於Linux + Java,我抱著期待,也希望屆時看到一個耳目一新的產品。至少,到時候我是一定會去買一套來玩玩的。


1.陳隆川 於 2003/11/16 15:07 回應
讓各位看看熔岩(LAVA)結構吧 - 熔岩結構的動態表現連結
"熔岩結構的動態表現"
PC: Windows + Intel = Wintel
IA: (Embedded) Linux + Java = Lava
也歡迎來 JUG-LAVA! 看看
連結