旷日持久的 Java 版权大战,以google的胜利告终了。
4 月 5 日,美国最高法院裁定google在构建 Android(安卓)软件时可以合法利用甲骨文(Oracle)的 Java 代码,作为应用顺序编程接口(API)代码的元素。
「google对于实现用户界面 API 的复制,仅采用了允许用户将其应有的才能投入新的,变革性顺序中所需的一切,这就构成了对该材料的公道利用」在最高法院的投票中,赞成和反对的比例是 6 比 2,特朗普此前新任命的大法官巴雷特并未参与此案。
这一判断颠覆了先前联邦巡回法院的几次讯断,其当时认定google对 API 的利用构成了侵权。
2010 年 8 月,甲骨文对google提起诉讼,声称google未经许可擅自利用 Java 软件的实质作为安卓操作系统 API 的一部分,侵犯了其专利和版权。google则回应认为,API 就像字母或语法,是用来创建顺序的基本元素。
大法官:google复制代码是公道利用
美国最高法院法官现在得出的结论是,允许顺序员访问其他代码的 API 与其他类型的计算机顺序有很大的分别。
「作为界面的一部分,被复制的代码行与不可复制的思想固有地捆绑在一起…… 并激发了新的创造表达,」大法官斯蒂芬 · 布雷耶(Stephen Breyer)在讯断意见中写道。「与很多其它计算机顺序分别,复制的代码行的大部分价值来自于开发人员对生态系统的投资,而不是顺序的实际操作。google利用该 API 来让 Java 顺序员构建安卓应用,法院宣布这从根本上是一种变革性的用途。」
「google仅复制了让顺序员在分别计算环境中工作,而无需抛弃一部分熟悉的编程语言所需的实质,google的目的是为了创造一个为分别计算环境(智能手机)准备的,分别的任务相关的系统——为了创造安卓平台,以帮助实现和普及的目标。」
美国最高法院大法官斯蒂芬 · 布雷耶。
需要注意的是,该讯断专门针对 API 这一类别。「我们不会颠覆或修改我们以前涉及公道利用的案例,例如涉及『山寨』产品,新闻报道和简单复制的案例,」布雷耶表示,该讯断主要取决于 API 代码实现新创意表达的方式,这应该是在公道利用原则的范畴之内。「我们认为结果是,公道的利用可以在确定计算机顺序版权的合法范围方面发挥重要作用。」
在异议中,保守派大法官克拉伦斯 · 托马斯(Clarence Thomas)辩称法院在实施和宣布这一准则之间建立了一种站不住脚的区分。
「国会拒绝在声明和实施代码之间进行明确区分,」托马斯写到,「但大多数的创造就在于这一部分特性。这种扭曲的分析结果带来一种观点,让人很难想象在任何情况下,声明代码仍将受到版权保护。」
旷日持久的版权诉讼,法官都上手写代码了
甲骨文诉google案(Oracle v. Google),是一场有关硅谷科技巨头是否剽窃另一家著名软件公司的代码,来开发全球最流行手机操作系统的争议。
google和甲骨文在安卓的 Java 互操作性问题上已经争论了 10 多年,跨越了三个审判和两个独立的上诉。
1995 年,硅谷传奇公司 Sun Microsystems 推出了面向 Internet 的高级编程语言 Java,其易于上手、跨平台的特性使其不断发展,在多年发展过程中逐渐成为了业界开发 Web 应用顺序的首选语言。
与此同时在 2005 年,google则收购了 Android 公司,继续其主要项目——利用 Java 开发 Android 操作系统,在这期间google拒绝了 Sun 方面的提议:若利用为期 3 年的 Java 许可,需支付 2000 万美元,外加google与 Android 有关的收入的 10%(上限为 2500 万美元)。
2009 年,甲骨文斥资 74 亿美元收购了 Java 的原始开发者 Sun。在卖身之前,Sun 决定将 Java 开源,然而几个月之后,甲骨文即对google发起了诉讼。
本案最近一段时间的争议点,在于甲骨文能否在安卓的代码库中对大约 11,500 行代码(代表 37 个分别的 API)维护其主张的版权。google独立开发了 API,但这些 API 是基于 Java 代码的。甲骨文声称 Android API 的结构、顺序和组织严重剽窃,以致侵犯了甲骨文在 Java 代码上的版权。
甲骨文起诉提及的 37 个 API 如下:
java.awt.font java.beans java.io java.lang java.lang.annotation java.lang.ref java.lang.reflect java.net java.nio java.nio.channels java.nio.channels.spi java.nio.charset java.nio.charset.spi java.security java.security.acl java.security.cert java.security.interfaces java.security.spec java.sql java.text java.util java.util.jar java.util.logging java.util.prefs java.util.regex java.util.zip javax.crypto javax.crypto.interfaces javax.crypto.spec javax.net javax.net.ssl javax.security.auth javax.security.auth.callback javax.security.auth.login javax.security.auth.x500 javax.security.cert javax.sql
另外,甲骨文曾经还起诉google剽窃了 JDK 的 9 行代码:
private static void rangeCheck(int arrayLen, int fromIndex, int toIndex) { if (fromIndex > toIndex) throw new IllegalArgumentException("fromIndex(" + fromIndex + ") > toIndex(" + toIndex+")"); if (fromIndex < 0) throw new ArrayIndexOutOfBoundsException(fromIndex); if (toIndex > arrayLen) throw new ArrayIndexOutOfBoundsException(toIndex); }
在 2012 年 5 月 18 日,加州北区的 William H. Alsup 法官主持的一次庭审中,争议焦点集中在一个名为 rangeCheck 的函数上。在甲骨文测试的共计 1500 万行代码中,只有这一部分是「逐字逐句」剽窃的,甲骨文律师采取鼓吹该函数重要性的策略试图证明google的剽窃。为了验证甲骨文提出的可能性,Alsup 法官甚至亲自上手尝试写代码。
「在接手这个案子之前,我对 Java 一无所知,」这位法官说。「但是现在我已经写了很多代码,也已用很多其他语言编过顺序,现在也还在编程。我写过一百多段 rangeCheck 这样的代码。我都能做到,你也能,这太容易了。」
当甲骨文的律师试图继续讲话时,法官变得越来越愤慨了。当时留下了这样的庭审记录。
这段神操作一时让 Alsup 被冠名「会写代码的法官」成了网红,但它仍然只是两家巨头碰撞的一个小插曲。
加利福尼亚州北区地方法院法官 William Alsup。
2014 年,一家联邦上诉法院颠覆了加州法官 William Alsup 法官的讯断,裁定 API 可能受到版权保护。(第二年,最高法院拒绝受理google的上诉,让上诉讯断得以维持。)但这一决定让google的实施是否侵犯了 Java 版权的问题悬而未决,google启动了案件的第二阶段,辩称 Android API 构成了公平利用。
2018 年,同一上诉法院裁定google的操作是不公道利用,使google面临高达 88 亿美元的赔偿风险。最高法院本周一的决定颠覆了这一讯断,允许google继续利用现有安卓代码而不受版权要求的威胁。
值得注意的是,时任总统特朗普的副总检察长已正式向最高法院请愿,要求保留上诉讯断,实际上在这场斗争中站在甲骨文一边。
最高法院案件的口头辩论已于去年 10 月举行,为 API 所代表的实质开启了各种华丽的隐喻。在一次交流中,大法官布雷耶将甲骨文的 API 声明比作试图拥有 QWERTY 键盘的版权。「如果你现在让别人拥有它的版权,他们就会控制所有的打字机,这和版权没有任何关系。」布雷耶说道。
开发者:这是一个胜利,一个开始
这一「最终讯断」引来了人们的热议,也让业界松了一口气:像google与 Sun 在 Java 语言上的关系,以及开源软件、API 的实质借鉴在科技领域内并不少见。
google全球事务高级副总裁 Kent Walker 对这次讯断表示欢迎。「最高法院的明确讯断是消费者、互操作性和计算机科学领域的胜利。该决定为下一代开发者们提供了法律上的确定性,他们的新产品和服务将使消费者受益。google感谢来自全国消费者同盟,美国图书馆协会以及知名公司、初创企业、美国领先的软件工程师和版权学者等众多组织的支持。」
另一方面,甲骨文的回应是抨击google的技术统治地位。「google的平台正在变得越来越强大,市场地位越发重要,这也让市场进入的门槛变高,竞争变小。他们窃取了 Java,花费了几乎十年打官司以维护自己的垄断位置。这种行径正是全球和美国政府监管机构正在调查google商业行为的原因。」甲骨文总法律顾问兼执行副总裁 Dorian Daley 说道。
在社交网络上,开发者们对于讯断的讨论也很多,不过有人指出这次胜利可能程度有限。Hackernews 网友 jxf 表示:「虽然讯断结果令人大为放松,但我认为这并不像我所注意到的一些新闻报道所声称的那样具有决定性。一个悬而未决的大问题是『API 是否具有版权?』法院回避了这个问题,而是着眼于它是否公道利用。」
为了解决该案,美国最高法院仅需作出对于特定情况的讯断。出于辩论的理由,法院认为复制的代码行可受版权保护,并着眼于google对这些行的利用是否是「公道的利用」。这就是说,这种判断确实建立了一个先例,如果你复制 API 主要是为了匹配接口以便开发人员可以重新实现它,那么你就处于公道利用的范围内。
但无论如何,这是google的一场大胜。
参考实质:
https://www.reuters.com/article/us-usa-court-google-oracle/u-s-supreme-court-backs-google-over-oracle-in-major-copyright-case-idUSKBN2BS1A9
https://www.theverge.com/2021/4/5/22367851/google-oracle-supreme-court-ruling-java-android-api
https://www.theverge.com/2017/10/19/16503076/oracle-vs-google-judge-william-alsup-interview-waymo-uber