转载于:http://www.itxuexiwang.com/a/liunxjishu/2016/0228/182.html?1456926201
Google已决定将从下一版本的Android开始采用OpenJDK,本文将部分摘录互联网上对于这一决定的反响。
在去年年底,我们曾提到Google已经决定在Android中使用OpenJDK,以取代基于Harmony实现的Java库(详情请见此处)。尽管这条消息在宣布时恰逢圣诞期间,但Google的这一决定还是在互联网上引起了很大的反响,我们将在本文中对于这些观点进行一次总结。
从这个Git工单可以看出,早在2015年二月,Google就已经在代码中露出了切换至OpenJDK的计划。在去年十二月,这次代码提交中所包含的一个重要的授权信息的变化被媒体曝光了。Android N中所使用的新Java库将不再基于Apache License 2.0(APL)授权协议,而是基于GNU GPL 2协议,并且在版权信息中包含了以下声明:“Oracle及其附属机构版权所有,1997,2011”。
Mozilla的前任CTO Andreas Gal为此专门写了一篇标题有些骇人的博客“Oracle将它的魔爪伸向了Android”。他表示,Google长期以来一直坚持使用Harmony的Java库及Apache授权,其原因在于:
Bob Ross回复了Gal的文章,他自称是某家OEM厂商的员工,对于APL与GPL的争论提出了一些见解:
Bradley M. Kuhn目前担任自由软件管理机构(Software Freedom Conservancy)的主席,同时也是自由软件基金会(Free Software Foundation)的董事会成员。他对于GPL可能对Andoid开发所造成的影响有着不同的见解。在最近的一篇博客文章“Sun、Oracle、Android、Google以及JDK复制权(copyleft)的质疑”中,Kuhn注意到OpenJDK授权其实属于一个“非常宽松”的协议,即包含Classpath例外的GNU协议。Kuhn曾经参与了Classpath例外协议的设计与命名,这一协议旨在避免通过复制权保护的方式“感染”整个Java生态系统,否则所有的Java程序都将被迫选择可以免费使用及重新分发的方式。如此一来,从授权协议的角度来看,选择使用OpenJDK与使用Harmony也没有多大的区别了。按照Kuhn的说法:#p#分页标题#e#
但在Gal看来,Oracle对于Android的未来发展将产生重大的影响,这不仅仅是因为授权的原因,同时也受到Java的发展路线、商标、条约与专利的影响:
部分读者在Gal的博客中留言表示,如果Oracle不能胜任OpenJDK的发展,那么Google完全可以创建一个分支,并自行决定它的发展方向。
Gal同时预测,对于Android来说,接下来的一年注定是艰难的一年:
Brendan Eich在一条推文中表示支持Gal的意见:“虽然我们的所知有限,但我同意@andreasgal的看法,代码的改动将带来成本与风险的上升。”#p#分页标题#e#
Codename One的联合创始人之一的Shai Almog也同意Google和Android的开发者将不得不面对一些额外的工作,但并没有Gal与Eich所认为的那么严重,并且使用OpenJDK还能够多多少少让他们受益。
有些人怀疑Google决定采用OpenJDK是否和他们与Oracle之间的控诉纠纷有关。而Kuhn则相信Google这次决定的背后是出于技术方面的原因:
Android从新版本操作系统开始将采用OpenJDK,这一举措会带来怎样的影响,目前来说还难以进行全面的透彻分析,这很大程度上取决于Oracle与Google之间争论不休的版权控诉将走向何方。目前为止,还没有人能够清楚地说明一个API接口是否能够拥有版权信息,法律与法院必须明确地解答这一点。自从上一个现有版本的库开始,Android中的部分代码,包括Java与C在内就开始了重新构建工作,某些无用的代码被删除,但依然保留了接口或头文件。那么是不是说Android从此就可以摆脱那些麻烦了呢?这还有待时间观察。不过采用OpenJDK之后应该能够起到一些缓解作用,因为Google如今已经满足了Java授权和专利许可,Oracle也不能再对Android说三道四了。