Java为何采用GPL 被称为“Java 之父”的James Gosling曾表示采用GPL许可证开源Java,是为了让开发者获得更多免费的代码。 “简单的说,它运行的很好。”Gosling说,“Java的发展远比我两年前预想的要快的多。” 2006年11月13日,迫于外界的长期压力,在大家的一致许可下,Java终于开源了。Sun在基于GPL许可协议下推出了Java HotSpot虚拟机和编译器。在随后的第二年Sun又发布了Class library的源代码,同样采用了此协议。 在开源社区,许可协议代表着一种契约,一种法律,一种政治。据Black Duck的统计表明,目前全球开源项目中有超过半数使用了GNU GPL许可协议。 Gosling表示:“选择GPL和现有Java市场的规模使得出现多种不兼容的Java版本的可能性大大降低了。GPL具有强制性,通过让所有业界创新成为可共享,会促使各种版本保持兼容。” 基于GPL协议发布OpenJDK 两年后,Java在基于GPL许可证下发布了由Sun领导的第一个版本OpenJDK项目,该版本可以交付使用自由和开放源代码的一个Java开发套件。OpenJDK是一个主要致力于Java语言研究的开源项目,OpenJDK是Sun为著名的Java平台构建的Java开发环境的开源版本,完全自由,开放源码。而OpenJDK将会把这些资源和技术开放给开发者。 Sun的这一宣布是GPL许可下的最大源代码贡献之一(GNU/Linux操作系统也是在GPL许可下发布的),也是业内最重大的、应用最广泛的软件平台的开源举措之一。 毫无疑问,Java采用GPL打击了相当一部分厂商,但同时会获得FOSS(免费与自由软件社区)相当的好感。最显著的一点改变就是,现在在任何Linux发布版中都可以包含Java代码了,而在此之前,只有采用GPL的perl/python才可以。 Oracle收购Sun 大力发展OpenJDK 在2006年的JavaOne大会上Sun曾提出要开放Java语言源代码,于2009年4月15日正式推出了OpenJDK。同年,2009年4月,Oracle斥资74亿美元收购Sun,同时也获得了Java技术。自Oracle收购Sun之后,OpenJDK归Oracle管理。Oracle公司创始人Larry Ellison称在Java发展蓝图中一直将OpenJDK视为核心发展项目。此后,OpenJDK获得了颇具影响力的IBM和苹果两大平台的支持。而有了这三大平台的支持,势必为OpenJDK的发展驻足马力。 OpenJDK是开源的,当然也有盈利,有一点毋庸置疑的是,有那么多Java开发人员和社区做支持,Java至少会比掌控在Sun一家手里发展的更快。 在2007年之前,Sun顶着巨大压力被迫开源Java。以IBM公司尤为突出,作为Sun的竞争对手,IBM公司的软件系统在Java中间件中占据着巨大的市场份额。IBM曾发表了一份声明:“建议Java走一条Apache之路,应当将Java的控制权交给Apache软件基金会”。 此前,Java大部分是基于SCSL(Sun Community Source License )开源。SCSL是一个开源协议,试图与官方标准相兼容同时也能确保Sun通过其他方式获得盈利下。但使用该协议,大部份厂商并不满意,Sun被迫做出改变。 2005年Sun旗舰级软件产品Solaris是基于CDDL(Community Development and Distribution License)协议下开源的)。OpenSolaris是Sun发展史中的里程碑,也是Solaris社团和更广泛的开放源社团的技术基础。 作为FOSS(Free and Open Source Software自由及开源软件)的主要贡献者,Sun对Java开源社区发出了信号,一些公司称,相比较JCP (Java Community Process)委员会,他们对Java开源没有任何计划。此时,Java开源一事受到业界的质疑,JCP的主管Onno Kluyt在2004年曾被问道:“你是如何看待Java开源的?能做到永远开源吗?” Sun董事会主席及联合创始人Scott McNealy在2004年提出了“开源模式”,Gosling称并不是所有人都反对Java开源。2002年Java提出开源,2003年Java快速发展使这一争论打破僵局。 编后语 开放Java的源代码是多年来Sun内部争论和外界呼吁的“产物”。过去,Sun一起拒绝开放Java的源代码,理由是这可能会使市场上出现多个不兼容的Java版本。起初这一呼声来自于开源社区的部分拥护者。作为OSI(Open Source Initiative)主席、《大教堂和市集》的作者Eric Raymond先生曾呼吁Sun公司将Java编程语言开源,不然这会损害Sun的长期利益,因为这种做法限制了开源社区对Java语言的广泛接受,以至于让其他脚本编程语言(如Python和Perl)对Java领域的不断蚕食。 这么些年来,Java的成长与壮大离不开Gosling的功劳,随着Sun被甲骨文收购,很多人对Java的命运很是担忧。 |