Java

Oracle 曾经说 Java API 就像是优美的画作。Google 却说 API 就是文件柜里的文件。最后,William Alsup(负责审理 Oracle 和 Google 关于 Java 纠纷的法官)比较同意 Google 的观点,Java 作为一门编程语言,其 API 就像是图书馆里的藏书一样。

“Java 里的包(package)就像是图书馆的书架一样”,Alsup 法官在他最近一周的所作出的广受关注的裁定中这样写道,该裁定正是针对 Google 和 Oracle 关于 Java API 的漫长的法律诉讼所作出的,“每一个类(Class)就像是书架上的一本书,类中的每一个方法(Method)就像是书中的‘阅读指南’章节。程序员的工作,就是前往正确的书架,选择正确的书,打开这本书,找到所需要的章节。”

Alsup 法官的基本观点是:库文件的组织形式并不受制于版权。是的!他明确地表达了这个观点:书是有版权的,但是你在书架上怎么放书,按什么顺序放,这跟版权一点儿关系都没有。

换句话说,Google 复制了 37 个 Java API,用以构建其 Android 手机操作系统,这一行为并不侵犯 Oracle 的版权。尽管 Google 照搬了这些 API 的组织形式,但 Google 自行构建了代码,至少是绝大多数自行构建的。“Java 和 Android 的类库在组成形式上大致相同,基本上提供了相同的功能,解决相同的问题,不过 Google 对这些功能函数都做了自己的实现,这些实现和 Oracle 所属的 Java 是不一样的。”

根据这一裁定,Alsup 法官终结了这场关于 Google Android 系统侵权使用 Java 的诉讼,该诉讼长达六周之久。Oracle 于 2010 年控告 Google 非法侵占了 Java 的版权和专利权,并企图通过该诉讼在 Google Android 系统的巨额利润中分得一杯羹。不过,依照 Alsup 法官的裁决,数据库巨头 Oracle 这次要一无所获了。Oralce 已经表明了对此案上诉的态度。

如果 Alsup 做出相反的判决,那么 Oracle 很可能会引发一场‘令人难以想象’的灾难,还好法官没有这么做。Bret Bocchieri 表达了这样的观点,他是来自一家名为 Seyfarth Shaw LLP 的国际法律公司的知识产权专家律师。

更重要的是,Alsup 法官的裁决让全世界范围内的软件公司和独立开发者们都松了一口气。在软件世界里,复用 API 是非常普遍的行为。例如,一些云计算平台,就模仿了 Amazon 所拥有的著名的云计算架构 ECC (Elastic Compute Cloud)的 API 形式。API 是应用程序的可编程接口,是不同软件之间交互的重要方式,行业内普遍默认对接口的组织和使用并不会触犯到版权保护法律。Oracle 对这个默认规则的挑衅,至少在业界引发了巨大的争议。周四,Alsup 法官的裁定结束了这些纷争。

“如果 Oracle 的观点得到认同,那么着就意味着任何人都能给自己实现的系统或功能加上版权,同时,他还能够根据版权的保护条例禁止其他任何人用他们自己的方式实现跟你的系统和功能相同的软件。(也就是说,这种软件只能有版权的人做,其他人会做都不能做——译者注)”在法官的 41 页的简报里,他写到:“没有任何理由可以支持这种极端的提议。”

Alsup 法官为了审案甚至亲自学习了 Java 编程

Ed Walsh,一位来自于 Wolf Greenfield 国际法公司的律师,表示他对这样的裁定并不感到惊讶。但是他同时也指出,这个裁定并不意味着从此以后 API 就不受版权的约束了。Walsh 认为,Alsup 法官部分出于 Sun 公司的原因,帮了 Google 一把,允许 Google 复制 API。Sun 公司才是 Java 真正的创始者,后被 Oracle 收购,而后 Oracle 才取得了 Java 的版权并起诉 Google.

“我认为有一些因素对裁定结果产生了影响,那就是 Sun 公司原先是允许人们随意使用 Java 的”,Walsh 说,“所以 Oracle 不能用版权去限制这些本来就已经开放的事物。”

Catherine Lacavera, Google 的诉讼代表,也表达了同样的观点。“这个判决重申了我们长期以来对法律的理解,这些 API 是可以被所有人自由使用的,正如我们使用它一样,我们采用了这些功能的声明,并自己独立实现这些声明所包含的功能代码。”,她说,“这就是开发者使用 Java 的正常模式,你不能说,一种语言是可以自由使用的,然后又禁止人们使用这种语言的名词或者动词。”

Alsup 法官则考虑得更细,他使用了大量的细节来描述什么是 Java API 以及在法律范围内这些 API 应当如何对待。他所提出的图书馆的比喻非常经典。但是他可不是仅仅停留在比喻的层面上。他似乎真的理解什么是 API. 他也很清楚复制一个接口(Interface)和复制实现接口的代码,这两个概念是有区别的。

“每个成员方法(Method)和类(Class)都是用来实现特定的功能的,因此,‘声明’(或者说‘头文件’)所包含的代码必须和实现功能的代码一致”,Alsup 法官在做出图书馆的比喻后还这样说过。

2008年时,Java 共包括 166 个 API, 涉及到该 600 个类,6000多个方法。 Google 复制 37 个 API 包(package)的名称和操作方式,但是 Google 用自己的代码对这些方法和类进行了实现。

在诉讼中,Oracle 的法律顾问 Mike Jacobs 常说,构建 API 就像是进行交响乐创作,或者是,是的,就像是绘制一幅优美的画作一样。Alsup 法官当然意识到了开发 API 是一种创作性行为。但是他也为这种行为加上了概念性的级别,API 这样的发明只能由专利权来保护(而不是知识产权)。Oralce 当然也从专利权的角度进行过诉讼,但是同样没有成功。

Java 依赖一种特殊的“词汇表”一样的组织形式,称之为“方法规格说明书(method specification)”,程序员这通过这个说明书告诉计算机需要做什么事情。Alsup 法官表示,根据美国版权法案,无论“方法规格说明书”是如何地有创意,任何人——包括 Google——都有权利使用相同的“方法规格说明书”,只要他们对“方法规格说明书”中定义的方法的实现代码不同。“方法规格说明只是一种‘概念’,方法本身的实现才是具体的表达。法律不能让任何人对‘概念’进行垄断”。Alsup 法官如此写道。

法官说,目前还没有哪个上诉法庭或者地区法院对 API 受版权保护一事做出裁决。但是他也的确参照了其他的案例进行判决,包括 1879 年最高法院裁定 Baker 针对 Seldon 的诉讼——这是一场讨论关于会计技能是否受版权限制的官司。法院最后裁定会计记账方法学只受专利权的约束,而不受版权的约束,因为一旦判决其受版权法约束,将会“极大挫伤出版业的积极性”。

“Baker 的案例已经很久远了,但是这个案例并不过时。相反,即便是在当代,Baker 案也会被告到上诉法庭才能有最终裁定。”

他还引证了 1994 年苹果公司针对微软公司的诉讼案,1992年冠群电脑国际有限公司(Computer Associates International)针对 Atari 的官司,以及 1985 年Whelan Associates, Inc. 针对 Jaslow Dental Laboratory, Inc.的诉讼案,所有的这些案件都是关于计算的各个方面是否违反版权的。Alsup 得出结论:如果一个概念有不只一种表达方式,那么没有人可以申请对概念本身的版权。

名称和短语都是不受版权保护的,他说,版权保护的范围不会延伸到任何概念,过程、进程、系统、操作方法,或者观念——无论以任何形式。他还说,对实现互用性所必要的功能性元素不受版权限制。这里就包括了 Java API.

从很多方面来说,Google 和 Oracle 的官司的结果并不让人激动。但是从某些方面来讲,这个案子又远远超传统的意义。该案的亮点在于,Alsup 法官告诉法庭,他自己为了审案而学习了 Java 编程,这给了 Oralce 一记响亮的耳光,别想用技术蒙蔽法官的双眼。回顾这长达 6 周的诉讼,在法庭上,Alsup 法官多次向双方的律师和技术证人提出各种专业而尖锐的问题,这真是非常精彩的表现!我们信任这样的法官!在他的裁决书里,他甚至自己写出了各种代码,来演示方法(method)、类(class)和包(package)的具体概念。并且,最后,他做出了正确的判决!

英文原文:Dear Oracle: The Java APIs Are Not a Work of Art