Java.net网站提供移动版Java Platform Micro Edition(Java ME)和桌面版Java Platform Standard Edition(Java SE)的源代码。基于Java ME建立 “Mobile & Embedded”和基于Java SE建立的“Open JDK”将成为新的GPL开源项目,同时GlassFish在现有的CDDL许可证方式之上,将于2007年第一季度增加GPLv2许可证。
Java开源的台前幕后
事实上,Java开源本身早已不是新闻,但基于GPL开源,则没有几个人能事先想到。今年早些时候Sun官方已经透露出Java开源的想法。在今年5月举行的JavaONE大会上,Sun已经先期对Java的一些周边项目开放源代码。但对于Java本身的JDK和虚拟机等核心组件,Sun一直以来的说法是, Java迟早会彻底开源,但是没有时间表。当谈到为什么为什么没有时间表时,JavaONE 2006上,Sun的CEO Jonathan Schwartz曾表示,Java开源最大的问题在于保持兼容性,需要有一种机制能够确保标准被继续遵守,无论如何,要保证没有任何一个组织或者商业机构能根据自身的利益去改变Java。显然,Java能够取得今天的成功,很重要的一个原因是Sun公司在保证兼容性方面进行了不懈的努力,来兑现“一次编写,随处运行”的郑重承诺。Java社区计划(Java Community Process)所作的各种努力,以及Sun与微软的Java官司,都表明Sun愿意不惜代价去保障Java的兼容性。
但是,与保持兼容性一样迫切的是Java开源的压力,Jonathan Schwartz在其Blog上指出,Sun有大约2/3的收入和Java有关,如今,Java已经部署在35亿台各种设备中,其中有12亿部手机、8亿台电脑。毫不夸张地说,Java已经是无处不在了。但Sun对Java的期待并不止于此,Jonathan Schwartz曾经以Open Solaris为例,说明开源对于一个产品的部署量和影响力的重大贡献,Sun的领导层非常清楚Java开源的重大意义和迫切性。因此Sun说到做到,在短短半年时间内,就确定了Java的开源方式以及时间表。两个月前,Sun的首席开源官Simon Phipps,访华时,曾经表示Java开源的时间表已经基本确定。对于开源的许可证时,他表示目前各个开源项目所用的许可证太多,Sun经过研究,甄选出8个推荐的许可证,所有Sun的开源项目,建议从这8个种选择,其中不但包括Sun经常使用的CDDL,还包括GPL。但即使如此,也没有人会想到 Sun那时正在认真地考虑GPL。
开源是一种商业模式
再好的事情,传得多了也会变得世俗。几年前,开放源代码和Linux一起曾经是一种新鲜概念,也是和Linux一起带着神秘面纱来到世人面前。然而,GNU的创始人Richard Stallman很早就一针见血地指出,开源是一种商业模式。事实也证明了他的观点,开源在几年中迅速成为各大公司的战略重点,被用来提高产品部署量,获得更深层次也更加及时的用户反馈,也被小公司广泛用来炒作提高产品知名度。当多数人终于明白开源、免费、GPL这些名词之间的关系时,人们对开放源代码的神秘感开始减退,开始以更加务实的态度来看待它。对于各大公司,尤其IBM、HP、Sun等几个传统的Unix厂商来说,开源也没有什么值得大惊小怪的,这种模式他们再熟悉不过了,原本Unix系统就是开源的,而这几个公司的很多雇员也正是一些开源项目的缔造者和积极参与者,因此,当Sun把StarOffice,Solaris等重要产品开源之后,Java开源并不令人感到意外,意外的只是采用了GPL许可证。
GPL是毒药还是良药
微软一向给人一种反对开源的印象,但其实不然,没有一个公司会反对一种成功的商业模式,微软也发起了不少开源项目,像是Matrix、Mono,甚至也在商业许可证模式下公开了Windows CE的源代码。实际上,微软一向以来强烈反对的是GPL。
GPL 作为一种许可证形式,由自由软件基金会创建,是自由软件运动的重要组成部分,更是GNU的灵魂。GPL保证任何人有共享和修改自由软件的自由。任何人有权取得、修改和重新发布自由软件的源代码,并且规定在不增加附加费用的条件下可以得到自由软件的源代码。同时还规定给予GPL许可证软件的衍生作品必须以 GPL作为它重新发布的许可协议。也就是说,任何人利用了其他人的开源软件,并在扩散过程中进行了修改,那修改后的源码也必须对其他人开放,而且不得附加任何使用限制。因此,GPL推行的是一种强制的开发,GPL在自由软件发展中起到了重要作用,使GNU积累出庞大的开源自由软件库,供任何人免费获取。 GPL一向受到了商业软件利益群体的强烈反对。比尔.盖茨曾经比喻GPL是软件的“毒药”,使软件开发者无法保护自身的知识产权。持这种观点的人不仅来自微软,SUSE Linux的负责人也曾经在公开场合表示支持盖茨的这种比喻,而Jonathan Schwartz在2005年也曾表示反对GPL。
也正因为如此,Sun在Java这个最重要的软件产品开源时选择GPL才显得出乎意料。Jonathan在他的blog中表示,许可证的选择是意见复杂的事情,最终使Sun做出选择的一个重要原因是微软和Novell在Linux和虚拟化方面的合作。事实上,使用GPL是改善和促进Sun与规模庞大的Linux社区之间关系的最佳方式,以往,Linux对Sun惯于采用的CDDL许可证颇有微词。在Sun自己所做的一次调查中,Java社区最认同的许可证方式是Apache许可证,其次才是GPL,但是,和Apache许可证比起来,GPL知名度和争议更大,也使得这个事件更具有新闻效应。
在使用GPL许可证的同时,Sun还同时使用了商业许可证方式,并采取了一些必要措施来保护合作伙伴以及大客户的利益。
从开源到开放
如果从公司所掌握的核心技术公开程度而论,Sun无疑当前IT巨头中最开放的一个。Sun的所有主要软件产品,包括Java、Solaris、 StarOffice都已经走上了开源的道路,Sun甚至对处理器技术也选择进行开放OpenSparc网站不仅仅提供UltraSparc T1处理器的指令集,也提供了仿真器等一系列设计相关的工具,使得第三方公司也可以来参与设计和实现Sparc处理器。无独有偶,IBM也在开放 Power处理器技术,并成立了Power.org。显然,开源所体现的开放思路已经为越来越多IT巨头所接受和运用,甚至开始形成一种“不开放就要被淘汰”的竞争压力。
但需要强调的是,Sun的以往的开源举措往往被认为是把一个处于竞争劣势的产品开源,从而对占据市场首位的产品形成威胁,而这次把Java这样一个强势产品推向开源,则充分体现了Sun公司全面开源战略的决心和雄心。
Sun的这个举动开创了重要商业软件开源的先河,虽然这是否会成为一个新时代的开始尚未可知,但Java开源之后,Linux和GNU社区将以“家里人”的态度来对待Java,Java将获得更多的机会,其影响力将空前增加,则是毋庸置疑。