除了為Java取得GPL許可,Sun公司的Swing團隊在Java 6中,還在力圖使Linux桌面的外觀看上去更美觀。關於這樣做的效果,我們不妨比較兩幅截圖。一幅取自真正的Linux GNOME桌面,另一幅則是利用Swing制作的。事實上,你將看難看出這兩者的區別。Swing現在大量采用了GNOME正在應用的色彩和設計風格。雖然Swing還不是Linux平台上開發者的首選,但它確實沒有其他Linux上的Java工具的弱點。
Java基於GPL的開源確實來得不是時候,但幸好微軟在這時發布了他們的Vista。當Windows桌面的開發者面對著難用而且安全性存在缺陷C 或C++,他們紛紛轉向了Visual Basic。但在Vista上,微軟傾向於所有的桌面應用利用.Net管理代碼,這一策略收到了奇效。但在Linux桌面上,開發者仍在延用C或C++語言,這樣開發者就不得不面對令人棘手的安全問題和復雜的內存分配問題。很顯然,Linux桌面的開發者也需要一場類似的轉變,並且我們不得不說,這已是一場遲到的轉變。而當Linux桌面的開發者著手類似於Windows平台的轉變時,他們會發現,他們面臨的只有兩個選擇;其中之一是由Novell所支持的Mono,另一個就是Java。
對我來說,更傾向於選擇Java出於以下幾方面的原因。首先,Java的發展時間比Mono長得多。盡管Mono成長迅速,但Java早在此之前已成為了一個穩定、成熟的平台。其次,Java包含了許多大量的開源工具和庫文件。再次,Java擁有許多大型開發社區,並且在SourceForge上的開源項目大多數采用了Java做為開發語言。在FreshMeat.net的情況也大致此,采用Java開發的項目達到了5383個,而采用C#的只有 284個。此外,Mono還存在一個發展瓶頸,這就是它的更新必須要滯後於.Net平台。而Java則是基於GPL發布的,隨時可以保持更新。在協議方面,Mono同樣存在一個陷阱,因為它的類庫是基於MIT協議發布的,因此軟件的開發者或所有者不能名正言順地為利用到庫的修正申請專利。
如果你對我的觀點持有異議,就還是請你原諒我對Java語言的偏愛吧。但我還是認為以上的觀點還是有客觀依據的,並且說明了Java將成為Linux桌面應用開發首選語言的主要原因。在開源平台上利用Java卻有點名不正言不順的日子再也不會來了。
還有一點,Java與Linux將是一種互相促進的關系。桌面Linux希望在整個桌面市場上占有更大的市場份額,而Java能提高一個更高效、更安全、更容易排錯的開發平台,並且利用這一平台,開發出的應用同樣能跑在Windows上面。這不僅會促進Linux達成它的目標,還會最大可能地保護開發者的利益。從這個角度看,Java與桌面Linux可以說是天生的一對,地造的一雙。