技术开发 频道

Java与Linux 一对开源运动的婚姻

  【IT168 分析评论】在2004年开源运动的积极倡导者Eric Raymond就给Sun 当时的CEO Scott McNealy写了一封信要求Sun对Java进行开源,允许开发人员自由修改。与此同时开源运动的另外一位积极倡导者、GNU计划的创始人Richard Stallman大声疾呼开发人员不要安装封闭源代码的Java,痛批Sun的不开源行为。

  两年后Sun终于发布了开源的OPENJDK,同时发布了基于开源协定GNU GPLv2的用于桌面西系统的Java 标准版(Java SE),以及用于移动设备的Java 移动版(Java ME),Sun希望GPLv2能够为Java带来更多的用户,并且宣称Java会继续保持“一次编写、到处运行”。

  另外Sun还就如何简单容易地发布OpenJDK到Linux广泛征求意见,意图能够把Java推向新的平台、新的市场。Richard Stallman改变了他的态度,对于Sun的这一举措给与了积极评价。

  两年后,Sun的这一举措达到他的 初衷了吗?要求Java开源的呼声停止了吗?Sun的CEO Simon Phipps称至少达到了设定的目标,Sun做的不错。那这项举措对于日常使用Java开发的程序员来说,生产效率得到改善了吗?Phipps说如果你是一个基于Windows平台的开发人员可能感觉不到这一变化,但是如果你是一个工具提供商的话,你得产品的应用范围会扩大很多,你的产品也会在Linux上顺利运行,换句话说你的市场也会在瞬间增大。。

  Java也在与时俱进

  Java的市场显然扩大了很多,OpenJDK现在已经被包含在四个最著名的开源Linux产品中,Fedora 10、Ubuntu 8.10后的所有版本、OpenSUSE 11以及Debian的最新版本。另外Red Hat Enterprise Linux 5.0和CentOS 5也包含了OpenJDK。Sun同时宣称其Glassfish计划也获得了成功,截止目前为止已经有8百万份的下载,另外在过去的一年中有25万份的产品进行了注册。

  但是还有一个难题在等待着Sun,Java并没有一个特定的版本或者API库百分百与Linux兼容。这就使得在Linux上安装以及维护Java变成一件头痛的工作,他要求Java开发人员为不同的Linux版本编写差异化的代码。

  怎么办?锁定一个Java的发布包,如果用户需要使用新的API的时候才去下载更新的版本。但是注意到在不同的Linux平台上安装以及使用Java都是不同的,并且Java的实现也是不同的,同时Java的更新也非常多。那么下一个问题就是用户需要安装什么版本的Java,最新版还是最被广泛使用的版本。

  直到现在Sun还对Linux发布商进行一对一的支持,这样就缺乏一种广泛的推动力,还需要标准化一些东西。

  不过改变说来就来,最近Linux基金会宣布了Linux基础标准(LSB)4.0,在这个标准中要求Linux发布商必须支持Java SE 6.0。根据Linux基金会的信息LSB 4.0会被Asianux 3.0、Mandriva Corporate 5.0、RHEL 5.0、SLES Enterprise 10以及Ubuntu LTS 8.04中直接支持。尽管如此还是有一些Linux版本没有支持LSB 4.0,这依然要求开发人员考虑兼容性的问题。

  但是并不是所有Linux开发人员都会采用Java作为其开发语言的,他们会坚持他们自由与开放软件的理念。

  下来我们谈一下TCK,一个用来监测Java应用程序是否与Java虚拟机相兼容的工具。现在看起来Sun不会对TCK开源,Sun也因此备受指责。Sun并没有开放其所有的东西,Sun仍然牢牢控制着Java的知识产权。

  Java 开源带来的影响

  值得一提的一件事情是OpenJDK带动Java 6 SE进入了Mac OS X平台。另外开发人员还可以将Java Runtime Environment放在你的产品中发布,尽管必须取得Sun的授权认证。

  但是就现状来讲,如果没有OpenTCK的话,Linux开发人员可能不会一直使用Java来进行应用开发,OpenJDK只会作为茶余饭后的闲谈。

  看来Sun在推动Java开源的路上还有很多的路要走,但是无论怎么说Java开源都是正确的举措,我很期待着两年后OpenJDK能有更多的进展。

0
相关文章