1. 程式人生 > >Google 憑什麼要賠給 Oracle 88 億?

Google 憑什麼要賠給 Oracle 88 億?

最近在 IT 圈裡非常火的一個話題,非 Google 和 Oracle 關於 Java 版權之爭的官司莫屬了。長達八年的 Java 版權之爭終於在 2018 年 3 月 27 日有了明確的結果,美國聯邦巡迴法院判谷歌向 Oracle 賠償 88 億美元。

在 1995 年 Sun 公司釋出了 Java,2009 年,Oracle 以 74 億美元的價格收購了 Sun。2010 年 9 月,Oracle 就 Google 侵權一事向法院提起了訴訟,要求谷歌賠償 88 億美元,因為谷歌在 Android 作業系統上使用了 Oracle 的版權程式碼。2016 年,加利福利亞的聯邦陪審團認為谷歌的行為是 “正當” 的,應該被視為版權法的一個例外。

然而就在近日,美國聯邦巡迴法院最終宣判谷歌敗訴。

法院認為,儘管 Android 沒有向用戶收取許可費用,但這並不能說明谷歌沒有利用 Java 獲取商業利益。谷歌從 Android 平臺獲得的廣告收入已經超過了 470 億美元。將受版權保護的成果用於建立與版權方展開競爭的平臺,這樣的行為沒有正當性可言。

當然,Java 是有開源專案的,即 2006 年 Sun 公佈的 OpenJDK,而非在那之前的 SunJDK(現在是 OracleJDK),谷歌侵權的物件恰好屬於後者。

甲骨文認為谷歌 Android 系統抄襲了 37 個 Java API 程式碼段,而這些程式碼屬於 Oracle 商業私有 JDK 的一部分。但谷歌方面認為,API 不應受版權保護,它只是一種操作方法,僅僅是一個程式與另一個程式通訊的介面——API是否受版權保護?這正是整個開發者行業界備受爭議的觀點。

事實僅僅是上面那麼簡單嗎?其實這件事的確是因為 Java 授權協議引起的,但這個案子和 Java 授權協議無關。我們可以從 JVM 的授權協議說起。

關於 JVM 授權協議,就是用 Java 寫的程式碼無法在標準 JVM 上執行,這對 Java 語言是一種傷害和分裂,而這種分裂在當初的 Java 協議上就是明確禁止的。通過這個授權協議,Sun 就保證了自己對 Java 語言的掌控權,如果不加限制的話,人人都可以搞出一個替代品,那 Java 就亂了。所以 Google 並非因為使用 Java 而賠款,而是因為濫用 Java 而賠款。

什麼意思呢?

Android 應用使用 Java 開發,Android SDK 大量使用標準 JDK 類庫,但是實際打包過後生成的應用並不可以執行在標準 JVM 上,這相當於變相的拷貝了 Sun 及 Oracle 的原始碼來實現私有平臺,這是 Java 這門語言從 Day 1 開始就被禁止的使用方式。Oracle 現在的說法就是 Google 要是當初在 Android 裡面放個 JVM,讓每一個 Android App 都是個標準 J2ME 程式,他們就不找 Google 要錢。

都說 Java 是跨平臺的語言,其實我們都知道實現跨平臺的並不是 Java 語言,而是 JVM ,而 Java 必須依附在 JVM 上執行。

關於類似的案子,最著名前車之鑑就屬於微軟侵權莫屬了,當年 Sun 起訴微軟侵權的兩條罪狀,第一條是 Windows 沒內建 JVM,第二條是微軟用 Java 語言和 JDK 類庫搞了個 J++,不相容標準 JVM。由於 Sun 的起訴狀告,直接促進了軟體自己開發一套語言,所以才有了現在的 C# 。

所以大概大家應該明白了吧?為什麼 Google 可能會敗訴的原因,甲骨文認為我收購 Sun 買到 Java 版權就花了 74 億美元,谷歌你這些年利用 Android 賺了多少錢?所以甲骨文索要賠款 88 億。

另外,很多人看到這條訊息後,給我發訊息說:是不是 Android 用 Java 開發要涼了?想太多了,無論是對於 Google 還是在 Android 生態上的眾多開發者而言,放棄 Java 的可能性都非常微弱,儘管 Google 在去年將 Kotlin 選為 Android 官方語言,但是 Kotlin 的 API 依然比 JDK 遜色很多,一定程度上依然依賴。同理,儘管 Google 面臨著鉅額賠償,但是 Android 開發者還是可以安心地用 Java 開發各種應用。

現在唯一的問題就是 Google 給甲骨文賠多少錢的事了,賠多賠少的問題,不會影響大家使用 Java 開發的。