由于Java已基于GPL开放了源代码,因为就算是最严格遵守纯正自由软件协议的软件也可以把Java打包进去。而事实上,确实有相当多的人已在这么做了。以前在开发中竭力避开Java语言的GPL的忠实拥趸,现在则开始把Java做为开源世界的优秀技术,努力让它融入进去。
除了为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可以说是天生的一对,地造的一双。
(责任编辑:A6)