所有判決被推翻,美最高法院:Java版權(quán)世紀(jì)大案,谷歌戰(zhàn)勝甲骨文
曠日持久的 Java 版權(quán)大戰(zhàn),以谷歌的勝利告終了。
4 月 5 日,美國最高法院裁定谷歌在構(gòu)建 Android(安卓)軟件時可以合法使用甲骨文(Oracle)的 Java 代碼,作為應(yīng)用程序編程接口(API)代碼的元素。
「谷歌對于實現(xiàn)用戶界面 API 的復(fù)制,僅采用了允許用戶將其應(yīng)有的才能投入新的,變革性程序中所需的一切,這就構(gòu)成了對該材料的合理使用」在最高法院的投票中,贊成和反對的比例是 6 比 2,特朗普此前新任命的大法官巴雷特并未參與此案。
這一判斷推翻了先前聯(lián)邦巡回法院的幾次裁決,其當(dāng)時認(rèn)定谷歌對 API 的使用構(gòu)成了侵權(quán)。
2010 年 8 月,甲骨文對谷歌提起訴訟,聲稱谷歌未經(jīng)許可擅自使用 Java 軟件的內(nèi)容作為安卓操作系統(tǒng) API 的一部分,侵犯了其專利和版權(quán)。谷歌則回應(yīng)認(rèn)為,API 就像字母或語法,是用來創(chuàng)建程序的基本元素。
大法官:谷歌復(fù)制代碼是合理使用
美國最高法院法官現(xiàn)在得出的結(jié)論是,允許程序員訪問其他代碼的 API 與其他類型的計算機(jī)程序有很大的不同。
「作為界面的一部分,被復(fù)制的代碼行與不可復(fù)制的思想固有地捆綁在一起…… 并激發(fā)了新的創(chuàng)造表達(dá),」大法官斯蒂芬 · 布雷耶(Stephen Breyer)在判決意見中寫道。「與很多其它計算機(jī)程序不同,復(fù)制的代碼行的大部分價值來自于開發(fā)人員對生態(tài)系統(tǒng)的投資,而不是程序的實際操作。谷歌使用該 API 來讓 Java 程序員構(gòu)建安卓應(yīng)用,法院宣布這從根本上是一種變革性的用途?!?/p>
「谷歌僅復(fù)制了讓程序員在不同計算環(huán)境中工作,而無需拋棄一部分熟悉的編程語言所需的內(nèi)容,谷歌的目的是為了創(chuàng)造一個為不同計算環(huán)境(智能手機(jī))準(zhǔn)備的,不同的任務(wù)相關(guān)的系統(tǒng)——為了創(chuàng)造安卓平臺,以幫助實現(xiàn)和普及的目標(biāo)。」
美國最高法院大法官斯蒂芬 · 布雷耶
需要注意的是,該判決專門針對 API 這一類別。「我們不會推翻或修改我們以前涉及合理使用的案例,例如涉及『山寨』產(chǎn)品,新聞報道和簡單復(fù)制的案例,」布雷耶表示,該裁決主要取決于 API 代碼實現(xiàn)新創(chuàng)意表達(dá)的方式,這應(yīng)該是在合理使用原則的范疇之內(nèi)?!肝覀冋J(rèn)為結(jié)果是,合理的使用可以在確定計算機(jī)程序版權(quán)的合法范圍方面發(fā)揮重要作用?!?/p>
在異議中,保守派大法官克拉倫斯 · 托馬斯(Clarence Thomas)辯稱法院在實施和宣布這一準(zhǔn)則之間建立了一種站不住腳的區(qū)分。
「國會拒絕在聲明和實施代碼之間進(jìn)行明確區(qū)分,」托馬斯寫到,「但大多數(shù)的創(chuàng)造就在于這一部分特性。這種扭曲的分析結(jié)果帶來一種觀點(diǎn),讓人很難想象在任何情況下,聲明代碼仍將受到版權(quán)保護(hù)?!?/p>
曠日持久的版權(quán)訴訟,法官都上手寫代碼了
甲骨文訴谷歌案(Oracle v. Google),是一場有關(guān)硅谷科技巨頭是否抄襲另一家著名軟件公司的代碼,來開發(fā)全球最流行手機(jī)操作系統(tǒng)的爭議。
谷歌和甲骨文在安卓的 Java 互操作性問題上已經(jīng)爭論了 10 多年,跨越了三個審判和兩個獨(dú)立的上訴。
1995 年,硅谷傳奇公司 Sun Microsystems 推出了面向 Internet 的高級編程語言 Java,其易于上手、跨平臺的特性使其不斷發(fā)展,在多年發(fā)展過程中逐漸成為了業(yè)界開發(fā) Web 應(yīng)用程序的首選語言。
與此同時在 2005 年,谷歌則收購了 Android 公司,繼續(xù)其主要項目——使用 Java 開發(fā) Android 操作系統(tǒng),在這期間谷歌拒絕了 Sun 方面的提議:若使用為期 3 年的 Java 許可,需支付 2000 萬美元,外加谷歌與 Android 有關(guān)的收入的 10%(上限為 2500 萬美元)。
2009 年,甲骨文斥資 74 億美元收購了 Java 的原始開發(fā)者 Sun。在賣身之前,Sun 決定將 Java 開源,然而幾個月之后,甲骨文即對谷歌發(fā)起了訴訟。
本案最近一段時間的爭議點(diǎn),在于甲骨文能否在安卓的代碼庫中對大約 11,500 行代碼(代表 37 個不同的 API)維護(hù)其主張的版權(quán)。谷歌獨(dú)立開發(fā)了 API,但這些 API 是基于 Java 代碼的。甲骨文聲稱 Android API 的結(jié)構(gòu)、順序和組織嚴(yán)重抄襲,以致侵犯了甲骨文在 Java 代碼上的版權(quán)。
甲骨文起訴提及的 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
另外,甲骨文曾經(jīng)還起訴谷歌抄襲了 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 日,加州北區(qū)的 William H. Alsup 法官主持的一次庭審中,爭議焦點(diǎn)集中在一個名為 rangeCheck 的函數(shù)上。在甲骨文測試的共計 1500 萬行代碼中,只有這一部分是「逐字逐句」抄襲的,甲骨文律師采取鼓吹該函數(shù)重要性的策略試圖證明谷歌的抄襲。為了驗證甲骨文提出的可能性,Alsup 法官甚至親自上手嘗試寫代碼。
「在接手這個案子之前,我對 Java 一無所知,」這位法官說?!傅乾F(xiàn)在我已經(jīng)寫了很多代碼,也已用很多其他語言編過程序,現(xiàn)在也還在編程。我寫過一百多段 rangeCheck 這樣的代碼。我都能做到,你也能,這太容易了?!?/p>
當(dāng)甲骨文的律師試圖繼續(xù)講話時,法官變得越來越憤慨了。當(dāng)時留下了這樣的庭審記錄。
這段神操作一時讓 Alsup 被冠名「會寫代碼的法官」成了網(wǎng)紅,但它仍然只是兩家巨頭碰撞的一個小插曲。
加利福尼亞州北區(qū)地方法院法官 William Alsup
2014 年,一家聯(lián)邦上訴法院推翻了加州法官 William Alsup 法官的裁決,裁定 API 可能受到版權(quán)保護(hù)。(第二年,最高法院拒絕受理谷歌的上訴,讓上訴裁決得以維持。)但這一決定讓谷歌的實施是否侵犯了 Java 版權(quán)的問題懸而未決,谷歌啟動了案件的第二階段,辯稱 Android API 構(gòu)成了公平使用。
2018 年,同一上訴法院裁定谷歌的操作是不合理使用,使谷歌面臨高達(dá) 88 億美元的賠償風(fēng)險。最高法院本周一的決定推翻了這一裁決,允許谷歌繼續(xù)使用現(xiàn)有安卓代碼而不受版權(quán)要求的威脅。
值得注意的是,時任總統(tǒng)特朗普的副總檢察長已正式向最高法院請愿,要求保留上訴裁決,實際上在這場斗爭中站在甲骨文一邊。
最高法院案件的口頭辯論已于去年 10 月舉行,為 API 所代表的內(nèi)容開啟了各種華麗的隱喻。在一次交流中,大法官布雷耶將甲骨文的 API 聲明比作試圖擁有 QWERTY 鍵盤的版權(quán)。「如果你現(xiàn)在讓別人擁有它的版權(quán),他們就會控制所有的打字機(jī),這和版權(quán)沒有任何關(guān)系。」布雷耶說道。
開發(fā)者:這是一個勝利,一個開始
這一「最終判決」引來了人們的熱議,也讓業(yè)界松了一口氣:像谷歌與 Sun 在 Java 語言上的關(guān)系,以及開源軟件、API 的內(nèi)容借鑒在科技領(lǐng)域內(nèi)并不少見。
谷歌全球事務(wù)高級副總裁 Kent Walker 對這次判決表示歡迎?!缸罡叻ㄔ旱拿鞔_裁決是消費(fèi)者、互操作性和計算機(jī)科學(xué)領(lǐng)域的勝利。該決定為下一代開發(fā)者們提供了法律上的確定性,他們的新產(chǎn)品和服務(wù)將使消費(fèi)者受益。谷歌感謝來自全國消費(fèi)者同盟,美國圖書館協(xié)會以及知名公司、初創(chuàng)企業(yè)、美國領(lǐng)先的軟件工程師和版權(quán)學(xué)者等眾多組織的支持?!?/p>
另一方面,甲骨文的回應(yīng)是抨擊谷歌的技術(shù)統(tǒng)治地位?!腹雀璧钠脚_正在變得越來越強(qiáng)大,市場地位越發(fā)重要,這也讓市場進(jìn)入的門檻變高,競爭變小。他們竊取了 Java,花費(fèi)了幾乎十年打官司以維護(hù)自己的壟斷位置。這種行徑正是全球和美國政府監(jiān)管機(jī)構(gòu)正在調(diào)查谷歌商業(yè)行為的原因?!辜坠俏目偡深檰柤鎴?zhí)行副總裁 Dorian Daley 說道。
在社交網(wǎng)絡(luò)上,開發(fā)者們對于判決的討論也很多,不過有人指出這次勝利可能程度有限。Hackernews 網(wǎng)友 jxf 表示:「雖然判決結(jié)果令人大為放松,但我認(rèn)為這并不像我所注意到的一些新聞報道所聲稱的那樣具有決定性。一個懸而未決的大問題是『API 是否具有版權(quán)?』法院回避了這個問題,而是著眼于它是否合理使用?!?/p>
為了解決該案,美國最高法院僅需作出對于特定情況的判決。出于辯論的理由,法院認(rèn)為復(fù)制的代碼行可受版權(quán)保護(hù),并著眼于谷歌對這些行的使用是否是「合理的使用」。這就是說,這種判斷確實建立了一個先例,如果你復(fù)制 API 主要是為了匹配接口以便開發(fā)人員可以重新實現(xiàn)它,那么你就處于合理使用的范圍內(nèi)。
但無論如何,這是谷歌的一場大勝。
參考內(nèi)容:
- 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專欄機(jī)構(gòu)“機(jī)器之心”的原創(chuàng)譯文,微信公眾號“機(jī)器之心( id: almosthuman2014)”】