Java 不让 Android 用了! Oracle 与 Google 继续开撕,闹上美最高法院!

  • 2019 年 11 月 27 日
  • 笔记

来源 | 开发者技术前线 编辑 | 可可

甲骨文和Google之间的恩怨情仇错综复杂可不是一朝一夕能讲明白的。

由于安卓系统采用java语言做应用开发,而Java又是属于甲骨文的,甲骨文的母公司就是Oracle. 这样Google 和 Oracle 两家科技巨头一直在为侵权和未侵权的之间展开一段激烈的口水战,直到今年闹上了法庭。

今年4月美国最高法院向特朗普政府寻求帮助,以确定是否要继续审理谷歌对联邦巡回上诉法院认定 Android 侵权的上诉。

这个月最新进展来看,美国最高法院已同意复审这件过去十年最重要的的软件版权纠纷案(copyright dispute)。那么说明这场长达10年的版权纠纷终于落下帷幕了。

甲骨文和谷歌的这场 Java 版权案拉锯战恩怨如下:

  • 2010年,甲骨文起诉谷歌,称谷歌 Android 操作系统未经授权使用了 Java API
  • 2012年,谷歌成功让法庭认可了 API 不在著作权保护范畴内的观点,地方法院裁定 API 不受法律保护,并驳回案件
  • 2012年,甲骨文不满裁决,并上诉至美国联邦上诉法院
  • 2014年,上诉法院三名法官意见一致地将地方法院对该案件的判决驳回,并宣布 API 受著作权保护
  • 2014年,谷歌不服判决便发起上诉,并上诉到了联邦最高法院
  • 2015年,联邦最高法院驳回谷歌的上诉,并将本案发回地方法院重审
  • 2016年3月,甲骨文将索赔金额提至 93 亿美元
  • 2016年4月,谷歌 CEO 与甲骨文 CEO 和解会议失败
  • 2016年5月,旧金山地区法庭进行二次审理,认同谷歌对 Java API 的使用受“fair use”原则保护
  • 2016年10月,甲骨文在联邦巡回上诉法院提起上诉
  • 2017年,联邦巡回上诉法院审理了甲骨文的上诉
  • 2018年3月,联邦巡回上诉法院认定 Android 侵权,判决甲骨文胜诉
  • 随后谷歌再次发起上诉,但2018年8月被驳回
  • 2019年1月,谷歌要求美国最高法院对它与甲骨文之间的 Java API 版权诉讼案做出最终裁

为什么Google 大力要推Kotlin ?

面对在使用Java可能带来的版权问题,Google 把一个问世很久的语言Kotlin 扶了起来。

2011年7月,JetBrains推出Kotlin项目,这是一个面向JVM的新语言,它已被开发一年之久。Kotlin v1.0于2016年2月15日发布。在Google I/O 2017中,Google宣布在Android上为Kotlin提供最佳支持。

终于版权纠纷一事,不过美国最高法院尚未宣布何时对该起案件进行审理,至于何时有结果,目前看来很可能明年!

在 Google 使用 Java 开发了 Android 操作系统的以后,甲骨文在收购 Sun 之后,甲骨文获得了 Java 的所有权,在2010年 指控 Google 侵犯了 Java API 的版权。API 是一种标准函数调用,允许第三方构建与已有平台如 Java 兼容的软件。

法院认定 Android 侵权之前,版权法被广泛认为不适用于控制 API 的使用。最高法院的复审 —— 主要是对“API 是否受版权保护”的裁决将对软件行业产生深远影响。

10年前甲骨文以 74 亿美元收购了 Sun(Sun 于 1995 年开发了 Java),然后在不到8个月的时间里便起诉谷歌侵犯了关于 Java 语言的版权,索赔 88 亿美元。

甲骨文认为谷歌用于 Android 系统的 37 个 package 中的 Java API 是对 Oracle JDK 的侵权。37 个 package 如下:

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

在这 37 个 package 里,谷歌在类和方法的命名,以及功能设计上,完全和 Oracle JDK 一样。为此,甲骨文作为 Java 的版权所有者,认为谷歌的做法属于侵权。

Google为什么会选择 Flutter?

Flutter的第一个版本被称为“Sky”,运行在Android操作系统上。它是在2015年Dart开发者峰会上亮相的,其目的是能够以每秒120帧的速度持续渲染。

在介绍Flutter之前一定要介绍一下Dart语言。Dart 语言我一直觉得是一个生不逢时的才子,从11年出生开始,他的目的就是干掉JS,但是一年过去了,JS各种框架产生,Dart一直在生死线上挣扎,后来没办法,Dart团队意识到取代是不可能的,先让自己活吧,我可以让你写Dart直接转换为Js,这样你可以用我啦吧,毕竟我比js更牛逼啊,但是还是没人用,后来出现了Fuchsia os,主要语言就是dart,没人用,我自己用总可以吧,Google对外宣布数据:2016年谷歌的AdWords、AdSense和Fiber项目团队开始把Dart融入他们的前端应用开发。

一项内部报告表明,Dart可以帮助他们提升25%到100%的前端开发效率。谷歌内部的Dart代码量比去年增长了3.5倍Google从前端,到新开发的系统,到我们现在接触到的flutter都是使用dart,足以见得,Google对dart的重视。但换句话来说,只要有一环能够成功,那么整个环路都能活起来。

Google内部有很多团队,这个任何一个都是内部团队互相竞争的一个小产物,未必是 Google 的意图,其实我不反对,但我仍然觉得Flutter 这种技术是移动发展这么多年之后的必然产物,无论 Google 是否做,都会有人来做。但是起的起不来另当别论. 面对可能在未来JavaScript 像java一样来要挟Google , 这也是为什么Google 急切推Flutter ?

写在最后

至于Java 会不会收费?坊间一直有Jdk 1.9 会收费的说法。如果 Oracle 能胜诉,将会促使开源框架,语言随便切换开源声明,动摇开发者放心免费使用的决心。