漫谈Java开源5年:自由但带着枷锁

开发 后端
Java的开源有着漫长的历史,其间伴随着各个企业之间利益的竞争,公众的质疑。回过头,人们不禁问,Java社区竭尽全力推出的OpenJDK意义究竟在哪?

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的命运很是担忧。(夏梦竹/编译)

英文出自:http://www.theregister.co.uk/2011/11/13/open_sourcing_java_five_year_anniversary/

原文链接:http://sd.csdn.net/a/20111201/308394.html

【编辑推荐】

  1. BicaVM:基于JavaScript的JVM-为什么呢?
  2. 解析Java语言11个主要特性
  3. Java漏洞成黑客目标 微软呼吁用户更新软件
  4. 分布式缓存Memcached的Java客户端优化历程
  5. Java技能的优化集锦
责任编辑:林师授 来源: CSDN
相关推荐

2010-06-09 17:09:40

三网融合

2012-08-31 09:06:49

开源

2014-12-19 11:03:45

2019-10-26 13:53:04

LinuxLibrem 5开源

2010-05-05 09:22:10

Canonical开源软件

2010-05-07 09:33:28

GNU GPL开源许可协议

2017-09-21 13:28:59

5G网络原生云NFV

2023-08-08 13:25:10

软件开发开源

2013-07-31 10:06:31

云厂商锁定厂商锁定云部署

2010-05-18 20:08:28

惠普IT创新

2010-01-05 20:39:22

2020-10-24 17:44:57

LinuxFOSS自由和开源软件

2021-11-03 21:20:54

FerdiFranz开源

2019-10-22 19:00:16

PhotoshopAdobe开源

2009-06-25 14:32:00

Java BS开发模式

2021-03-04 11:06:03

云计算开源开源策略

2010-12-09 11:22:05

Android

2020-08-23 09:12:52

JavaJava IDE框架

2020-04-15 19:31:59

Bitwarden开源密码管理器

2020-12-18 11:22:08

云计算开源Kubernetes
点赞
收藏

51CTO技术栈公众号