Java版权世纪大战,谷歌赢了甲骨文
2021-04-06 14:04

Java版权世纪大战,谷歌赢了甲骨文

本文来自微信公众号:机器之心(ID:almosthuman2014),题图来自:《斯巴达300勇士》


旷日持久的 Java 版权大战,以谷歌的胜利告终了。


4 月 5 日,美国最高法院裁定谷歌在构建 Android 软件时可以合法使用甲骨文(Oracle)的 Java 代码,作为应用程序编程接口(API)代码的元素。


“谷歌对于实现用户界面 API 的复制,仅采用了允许用户将其应有的才能投入新的,变革性程序中所需的一切,这就构成了对该材料的合理使用”。在最高法院的投票中,赞成和反对该判定的比例是 6 比 2。特朗普此前新任命的大法官巴雷特并未参与此案。


这一判断推翻了先前联邦巡回法院的几次裁决,其当时认定谷歌对 API 的使用构成了侵权。



2010 年 8 月,甲骨文对谷歌提起诉讼,声称谷歌未经许可擅自使用 Java 软件的内容作为安卓操作系统 API 的一部分,侵犯了其专利和版权。谷歌则回应认为,API 就像字母或语法,是用来创建程序的基本元素。


大法官:谷歌复制代码是合理使用


美国最高法院法官现在得出的结论是,允许程序员访问其他代码的 API 与其他类型的计算机程序有很大的不同。


“作为界面的一部分,被复制的代码行与不可复制的思想固有地捆绑在一起…… 并激发了新的创造表达。”大法官斯蒂芬 · 布雷耶(Stephen Breyer)在判决意见中写道,“与很多其它计算机程序不同,复制的代码行的大部分价值来自于开发人员对生态系统的投资,而不是程序的实际操作。谷歌使用该 API 来让 Java 程序员构建安卓应用,法院宣布这从根本上是一种变革性的用途。”


“谷歌仅复制了让程序员在不同计算环境中工作,而无需抛弃一部分熟悉的编程语言所需的内容,谷歌的目的是为了创造一个为不同计算环境(智能手机)准备的,不同的任务相关的系统——为了创造安卓平台,以帮助实现和普及的目标。”


美国最高法院大法官斯蒂芬 · 布雷耶


需要注意的是,该判决专门针对 API 这一类别。“我们不会推翻或修改我们以前涉及合理使用的案例,例如涉及‘山寨’产品,新闻报道和简单复制的案例。”布雷耶表示,该裁决主要取决于 API 代码实现新创意表达的方式,这应该是在合理使用原则的范畴之内,“我们认为合理地使用,可以在确定计算机程序版权的合法范围方面发挥重要作用。”


在异议中,保守派大法官克拉伦斯 · 托马斯(Clarence Thomas)辩称,法院在实施和宣布这一准则之间建立了一种站不住脚的观点。


“国会拒绝在声明和实施代码之间进行明确区分。”托马斯写到,“但大多数的创造就在于这一部分特性。这种扭曲的分析结果带来一种观点,让人很难想象在任何情况下,声明代码仍将受到版权保护。”


旷日持久的版权诉讼,法官都上手写代码了


谷歌和甲骨文,在安卓的 Java 互操作性问题上已经争论了 10 多年,跨越了三个审判和两个独立的上诉。


1995 年,硅谷传奇公司 Sun Microsystems 推出了面向 Internet 的高级编程语言 Java,其易于上手、跨平台的特性使其不断发展,在多年发展过程中逐渐成为了业界开发 Web 应用程序的首选语言。



在 2005 年,谷歌则收购了 Android 公司,继续其主要项目——使用 Java 开发 Android 操作系统,在这期间谷歌拒绝了 Sun 方面的提议:若使用为期 3 年的 Java 许可,需支付 2000 万美元,外加谷歌与 Android 有关收入的 10%(上限为 2500 万美元)


2009 年,甲骨文斥资 74 亿美元收购了 Java 的原始开发者 Sun。在卖身之前,Sun 决定将 Java 开源,然而几个月之后,甲骨文即对谷歌发起了诉讼。


本案最近一段时间的争议点,在于甲骨文能否在安卓的代码库中对大约 11,500 行代码(代表 37 个不同的 API)维护其主张的版权。谷歌独立开发了 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


另外,甲骨文曾经还起诉谷歌抄袭了 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 万行代码中,只有这一部分是“逐字逐句”抄袭的,甲骨文律师采取鼓吹该函数重要性的策略试图证明谷歌的抄袭。为了验证甲骨文提出的可能性,Alsup 法官甚至亲自上手尝试写代码。


“在接手这个案子之前,我对 Java 一无所知。”这位法官说。“但是现在我已经写了很多代码,也已用很多其他语言编过程序,现在也还在编程。我写过一百多段 rangeCheck 这样的代码。我都能做到,你也能,这太容易了。”


当甲骨文的律师试图继续讲话时,法官变得越来越愤慨了,当时留下了这样的庭审记录


这段神操作让 Alsup 被冠名“会写代码的法官”并成了网红,但这仍然只是两家巨头碰撞的一个小插曲。


加利福尼亚州北区地方法院法官 William Alsup


2014 年,一家联邦上诉法院推翻了加州法官 William Alsup 法官的裁决,裁定 API 可能受到版权保护。第二年,最高法院拒绝受理谷歌的上诉,让上诉裁决得以维持。但这一决定让谷歌的实施是否侵犯了 Java 版权的问题悬而未决,谷歌启动了案件的第二阶段,辩称 Android API 构成了公平使用。


2018 年,同一上诉法院裁定谷歌的操作是不合理使用,使谷歌面临高达 88 亿美元的赔偿风险。最高法院本周一的决定推翻了这一裁决,允许谷歌继续使用现有安卓代码而不受版权要求的威胁。


值得注意的是,时任总统特朗普的副总检察长已正式向最高法院请愿,要求保留上诉裁决,实际上他在这场斗争中站在甲骨文一边。


最高法院案件的口头辩论已于去年 10 月举行,为 API 所代表的内容开启了各种华丽的隐喻。在一次交流中,大法官布雷耶将甲骨文的 API 声明比作试图拥有 QWERTY 键盘的版权。“如果你现在让别人拥有它的版权,他们就会控制所有的打字机,这和版权没有任何关系。”布雷耶说道。


开发者:这是一个胜利,一个开始


这一“最终判决”引来了人们的热议,也让业界松了一口气:像谷歌与 Sun 在 Java 语言上的关系,以及开源软件、API 的内容借鉴在科技领域内并不少见。


谷歌全球事务高级副总裁 Kent Walker 对这次判决表示欢迎。“最高法院的明确裁决是消费者、互操作性和计算机科学领域的胜利。该决定为下一代开发者们提供了法律上的确定性,他们的新产品和服务将使消费者受益。谷歌感谢来自全国消费者同盟,美国图书馆协会以及知名公司、初创企业、美国领先的软件工程师和版权学者等众多组织的支持。”


另一方面,甲骨文的回应是抨击谷歌的技术统治地位。“谷歌的平台正在变得越来越强大,市场地位越发重要,这也让市场进入的门槛变高,竞争变小。他们窃取了 Java,打官司花费了几乎十年,以维护自己的垄断位置。这种行径正是全球和美国政府监管机构正在调查谷歌商业行为的原因。”甲骨文总法律顾问兼执行副总裁 Dorian Daley 说道。


在社交网络上,开发者们对于判决的讨论也很多,不过有人指出这次胜利可能程度有限。Hackernews 网友 jxf 表示:“虽然判决结果大快人心,但我认为这并不像我所注意到的一些新闻报道所声称的那样具有决定性。一个悬而未决的大问题是,API 是否具有版权?法院回避了这个问题,而是着眼于它是否合理使用。”


为了解决该案,美国最高法院仅需作出对于特定情况的判决。出于辩论的理由,法院认为复制的代码行可受版权保护,并着眼于谷歌对这些代码行的使用是否是“合理的使用”。也就是说,这种判断确实建立了一个先例,如果你复制 API 主要是为了匹配接口以便开发人员可以实现某些功能,那么你就处于合理使用的范围内。


无论如何,这是谷歌的一场大胜。


参考内容:

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


本文来自微信公众号:机器之心(ID:almosthuman2014)

本内容为作者独立观点,不代表虎嗅立场。未经允许不得转载,授权事宜请联系hezuo@huxiu.com
如对本稿件有异议或投诉,请联系tougao@huxiu.com
正在改变与想要改变世界的人,都在 虎嗅APP
赞赏
关闭赞赏 开启赞赏

支持一下   修改

确定