Apache Harmony 就 JCK 许可证条款向 Sun 发难

阅读数:58 2007 年 4 月 12 日

话题:JavaDevOps语言 & 开发架构

Apache Harmony 项目的副主席 Geir Magnusson Jr. 写了一封致 Sun 公司的公开信,对 Java Compatibility Kit(JCK)许可证中的知识产权限制表示不满,并对和 Sun 讨论这个问题缺乏张力的事实表示失望。项目还撰写了一份 FAQ详细阐述了他们的立场。

Apache Harmony 在努力创建 J2SE 5 规范的一个开源实现(基于 Apache 许可证)。目前项目可以同时在 Windows 和 Linux 平台上运行,95% 的 Java 5 API 已经得到实现,且 Tomcat 和 Eclipse 等常用程序已经能在其上运行。

Harmony 争论的焦点在于 JCK 许可证中的“使用领域”限制:

“使用领域”限制是对用户如何使用某个软件的约束,可能间接也可能直接。举一个 Sun/Apache 论战的具体例子,如果 Apache 接受了 Sun 的条款,那么在一台标准的通用 x86 计算机(例如一台 Dell 台式机)上使用 Linux 平台上标准且经过测试的 Apache Harmony 构建版的用户,可能将无法在如商场里的信息亭或机场的 X 光机这样的应用环境中免费使用这个软件和硬件。

InfoQ 目前还无法取得 JCK 许可证,用以直接评论。但在对 Magnusson 的采访中,我们可以肯定“使用领域”限制是 Harmony 项目的唯一问题。为了阐明这些限制条款的基调,他写道:

我认为,如果你仔细阅读 Sun 的 JDK 许可证,你会发现他们在使用领域方面限制颇多:

http://java.sun.com/javase/6/jdk-6u1-license.txt

例如在第一段中:“程序”意指在可以在支持 Java 的通用台式电脑及服务器上的 Java 平台标准版(Java SE)之上运行的 Java Applets 和应用程序。

(请注意,从技术角度来说,你不能在笔记本电脑上运行 Java SE。显而易见,这是一处纰漏。)

对于 Harmony 的言论,Sun 显得非常诧异,并初步响应到:“Sun 刚刚收到这封邮件,由于 Sun 先前已经认为这个问题属于机密问题,我们需要经过一段时间考虑才能给出更详细的答复。”

来自社区的反应褒贬不一,更多人倾向于站在 Harmony 一边。Sam Ruby 对 Harmony 的立场表示支持,他写道

我由衷希望 Jonathan 尽快介入此事,因为只有他才能对贷帐栏中的短期利益和借帐栏中虚无缥缈的代价之间的权衡点做出决策。这里面的代价有(1)一股脑把 Sun 花时间经历辛苦经营起来的社区毁于一旦,(2)拿 Java 的未来做赌注,和(3)损害 Sun 自身在开放标准上的努力。

与此相反,Tom Ball 则认为这是 Harmony 的一个市场策略

这个请求 / 最后通牒看起来并不合理。是不是因为 Apache Harmony 马上就要完成,因此它已经准备好正式通过 JCK 了?项目网站上说,Java API 的 95% 已经完成,但并不一定完全兼容。现在,这个 Java 平台完成了 95% 确实是一个重要的里程碑,Apache Harmony 团队的开发人员应该因此受到大家的称颂,但在项目周期中这个节骨眼上,如果几千个 JCK 错误对于他们又多大用处呢?

我刚看了一下日历,发现从今天起算 30 天之后 JavaOne 正好开一半,恰好是 Jonathan Schwartz 主题演讲之后的两天。真相大白了!这和 Apache Harmony 团队能否有效工作无关——相反,这是 Java 工程师们不得不年复一年忍受的令人作呕的 JavaOne 市场策略。随着 JavaOne 日程日近,我觉得这个非难就不得不快点甩出。