所有判决被推翻,美最高法院:Java版权世纪大案,谷歌战胜甲骨文

企业动态
美国最高法院终于在法律上认同了程序员们的技术共识:API 不应享有版权。

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

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

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

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

[[391567]]

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

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

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

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

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

[[391568]]

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

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

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

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

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

甲骨文诉谷歌案(Oracle v. Google),是一场有关硅谷科技巨头是否抄袭另一家著名软件公司的代码,来开发全球最流行手机操作系统的争议。

谷歌和甲骨文在安卓的 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 如下:

  1. java.awt.font 
  2. java.beans 
  3. java.io 
  4. java.lang 
  5. java.lang.annotation 
  6. java.lang.ref 
  7. java.lang.reflect 
  8. java.net 
  9. java.nio 
  10. java.nio.channels 
  11. java.nio.channels.spi 
  12. java.nio.charset 
  13. java.nio.charset.spi 
  14. java.security 
  15. java.security.acl 
  16. java.security.cert 
  17. java.security.interfaces 
  18. java.security.spec 
  19. java.sql 
  20. java.text 
  21. java.util 
  22. java.util.jar 
  23. java.util.logging 
  24. java.util.prefs 
  25. java.util.regex 
  26. java.util.zip 
  27. javax.crypto 
  28. javax.crypto.interfaces 
  29. javax.crypto.spec 
  30. javax.net 
  31. javax.net.ssl 
  32. javax.security.auth 
  33. javax.security.auth.callback 
  34. javax.security.auth.login 
  35. javax.security.auth.x500 
  36. javax.security.cert 
  37. javax.sql 

另外,甲骨文曾经还起诉谷歌抄袭了 JDK 的 9 行代码:

  1. private static void rangeCheck(int arrayLen, int fromIndex, int toIndex) { 
  2.      if (fromIndex > toIndex) 
  3.           throw new IllegalArgumentException("fromIndex(" + fromIndex + 
  4.                ") > toIndex(" + toIndex+")"); 
  5.      if (fromIndex < 0)  
  6.           throw new ArrayIndexOutOfBoundsException(fromIndex); 
  7.      if (toIndex > arrayLen)  
  8.           throw new ArrayIndexOutOfBoundsException(toIndex); 

在 2012 年 5 月 18 日,加州北区的 William H. Alsup 法官主持的一次庭审中,争议焦点集中在一个名为 rangeCheck 的函数上。在甲骨文测试的共计 1500 万行代码中,只有这一部分是「逐字逐句」抄袭的,甲骨文律师采取鼓吹该函数重要性的策略试图证明谷歌的抄袭。为了验证甲骨文提出的可能性,Alsup 法官甚至亲自上手尝试写代码。

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

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

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

[[391570]]

加利福尼亚州北区地方法院法官 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

【本文是51CTO专栏机构“机器之心”的原创译文,微信公众号“机器之心( id: almosthuman2014)”】 

戳这里,看该作者更多好文

 

责任编辑:赵宁宁 来源: 51CTO专栏
相关推荐

2021-04-07 09:39:34

谷歌Android开发者

2020-10-09 08:20:30

谷歌Android技术

2021-04-06 08:50:59

谷歌Android系统

2020-01-08 08:40:07

编程语言PythonJava

2014-10-15 16:59:58

谷歌甲骨文Java

2011-10-08 17:47:20

Ubuntu

2023-12-21 08:53:44

人工智能AI机器创造

2012-05-08 09:26:09

Android甲骨文Java

2013-02-22 15:36:06

Java甲骨文Oracle

2021-04-06 11:46:06

GoogleJava编程语言

2018-04-04 16:04:05

甲骨文谷歌软件

2012-03-14 16:12:25

甲骨文Java

2011-07-21 11:25:19

Java

2012-02-08 09:09:32

OracleGoogle

2014-12-17 14:17:48

云计算大数据华为

2012-02-08 13:52:22

云计算

2011-05-11 13:13:58

甲骨文ASF

2018-03-28 09:02:00

AndroidJava谷歌

2021-04-09 09:33:30

JavaOracle谷歌

2020-11-10 09:30:27

安全数据网络
点赞
收藏

51CTO技术栈公众号