技术开发 频道

Java缘何在GPL下开源?



    【IT168 评论】在经历了无数次预告和展望后,Java终于开源了!11月13日,Sun宣布采用GPL许可方式开放Java源代码,尽管此举赢得了业界的赞赏,但IBM仍然发表了一份声明,对Sun的策略表示反对,声明中说“IBM建议Java走一条Apache之路,应当将Java的控制权交给Apache软件基金会”,IBM为什么激烈反对?Sun缘何忠爱GPL?近日,Sun公司的Web技术主管Tim Bray接受了媒体的采访。

    记者:在选择GPL的过程中,开发者社区的哪些因素是你们想要考虑的?
    Tim Bray:从目前来看,我们感兴趣的无疑是GNU Linux人群,他们有着很强的文化底蕴,不仅对开源,而且对免费软件都有利,他们非常熟悉和适应GPL,选择GPL完全避开对许可证的争论。我们希望许可证的变化能够在社区中增加对Java的吸引力。 从长远来讲,GPL能够给Java更好的前途,能够为Java带来突破性的增长,由于GPL特性,这种进步将成未来的主流。

    记者:为什么对Java来说GPL是更好的选择,而不是Apache, Mozilla和其他的开源许可证?
    Tim Bray:这个问题有很激烈的争论,当然,这个问题也不可能得到所有人的一致同意, IBM最近也发表了一个声明,希望我们选择Apache,当然你也可以指出选择Apache的各种理由。我个人认为GPL是一个更好的选择,因为Java放弃免费已经很长时间了,当人们在Java上取得进步时,他应该回报社区,因此,我认为GPL更适合一些。

    记者:能解释一下什么是双重许可证模式吗?
    Tim Bray:我们有许多商业许可证,比较主要的像IBM、 BEA,还有许多采用Java代码的,并且将Java 代码使用在自己的产品中的许可证。在Java ME领域内,世界上移动电话产业的很大部分是这种技术的商业许可证,我们不能取消这些许可证,取消他们不仅是违法的,同时在这些许可证到期时,不能继续重申他们也是不道德的。由于这种原因,Java将继续在现存的商业许可证下得到支持,对和我们有商业许可的人来说,如果许可过期,他们有权选择放弃或者选择免费的开源GPL版本。

    记者:在下载Sun的JDK时,当前开发者同意的许可证会被取消吗?
    Tim Bray:不,这是一个建立在二进制上的许可证,没有理由废除它,对那些想要得到二进制的人来说,当前的许可证是非常的优秀,仅开源许可证会发生变化。

    记者:确切地说,在GPL下是什么得到了许可?
    Tim Bray:Java系统中的所有部分-ME,SE,EE都将会在GPL下结束,有一点特殊的是,SE的API有一些Classpath的异常:任何人都可以在没有受GPL影响的GPL'd Java代码之上分享商业代码,这些采用现存封闭源的人可能会更好。到目前为止能得到的代码就是Java Virtual Manchine,Java Complier和Java ME中的CDC和CLDC片断,实际上,CDC和CLDC这部分我们还没有想好是否开源。

     记者:Classpath异常是什么?它已经开始活动了吗?从表面上看,它听起来与LGPL提供的更相似。
    Tim Bray:它们是非常相似的,没有什么不同,如果我们已经选择了LGPL,可能效果几乎是一样的。 Classpath异常意味着在Java Virtual Machine中的代码是在GNU下开源,也就是说,如果你采用它,就不得不改进这些代码,这点与类库中的代码相似,作为一个开发人员,使用JVM和类库写一个业务应用,或者运行你的二进制Java应用程 者不会受到GPL的影响。也就是说,依靠Java运行的应用程序,BEA的WebLogic, or IBM的 WebSphere他们都不会受到GPL的连累。 

   

    记者:如果开源项目使用像Apache这样的非GPL许可证,将会怎么样?你还能使用Sun捐助的代码吗?
    Tim Bray:这是一个难题,Apache许可证和GPL许可证本身就是不兼容的,Sun可能会选择一个折中方法,采用GPL3许可来解决两者之间的不兼容问题,但是目前我们并没有看到GPL3,也没有看到短期的解决方案,双方之间还有更多问题需要协商,希望以后能够找到一个更好的解决方案。

     记者:对Java.net上的项目而言,许可证的变化意味着什么?
     Tim Bray:Java.net上的许多项目都完全运行在JVM和连接到类库上,由于Classpath异常,他们并没有受到一点影响。

    记者:目前,JCP已经为JSR项目让路,让它自由发布他的产品在任何许可证下,你怎么看待这种变化?
     Tim Bray:涉及到这种特殊的开源运动,对JCP来说,实际上没有直接的变化。我们一直讨论的是这些规范的开源实现,不是JCP如何管理这些Java的规范,同时JCP也在不断的调整他自己,但是JCP和我们正在开源的Java实现是在两条不同的道路上。 
  
     记者:Java.net有一个新的项目叫OpenJDK,他并没有叫Java,这种许可证的变化是如何影响Java名字的使用的?
    Tim Bray: 这个问题很好,源代码是在GPL下开源的,任何人都可以使用,改变代码,当然也可以编译运行甚至可以出售它。 他们不能做的就是叫Java,除非通过TCK和版权程序的处理。如果某种东西叫Java,或者有一个咖啡杯的标志在上面,这也就意味着它通过了TCK,过去总有一些人将不是叫Java的东西叫Java,这种情况我们会通过商业和法律的手段将其告上法庭,目的是让他们明白我们对维权这方面的重视。

    记者:TCKs也会开源吗?
    Tim Bray:我们还没有决定,这很复杂,TCK就像开车上路的司机一样,你不得不拿到驾驶执照,同时,我们也找更适合TCK并与Java的开源版本相一致的方法。

    记者:TCK在形式上已经可以使用,倘若对市场来说开源项目非常得好,这就意味着一个开源项目可以使用它来声明已经通过了TCK了吗?
    Tim Bray: 不,不是这样的!TCk当前是被Sun管理和认证,如果是商业许可证,是有成本在里面的,并且非常的昂贵,我们会提供一些资金给开源项目。

    记者:要求Sun将Java开源呼声最高的IBM在听到Java开源的消息后,为什么会有如此激烈反应 ?
    Tim Bray: IBM曾认为“Sun应该把Java技术贡献给Apache,开源后的Java可以遵守Apache的相关条款”,这是可以理解的。但Sun有自己的考虑,所有没有选择遵守Apache的相关条款,因为Sun希望在开源之后的Java重新赢得自己往日的风采。
0
相关文章