親愛的Oracle: Java API不是藝術品
Oracle曾經說Java API就像是優美的畫作。Google卻說API就是文件柜里的文件。***,William Alsup(負責審理Oracle和Google關于Java糾紛的法官)比較同意Google的觀點,Java作為一門編程語言,其API就像是圖書館里的藏書一樣。
“Java里的包(package)就像是圖書館的書架一樣”,Alsup法官在他最近一周的所作出的廣受關注的裁定中這樣寫道,該裁定正是針對Google和Oracle關于Java API的漫長的法律訴訟所作出的,“每一個類(Class)就像是書架上的一本書,類中的每一個方法(Method)就像是書中的‘閱讀指南’章節。程序員的工作,就是前往正確的書架,選擇正確的書,打開這本書,找到所需要的章節。”
Image: twechy/Flickr
Alsup法官的基本觀點是:庫文件的組織形式并不受制于版權。是的!他明確地表達了這個觀點:書是有版權的,但是你在書架上怎么放書,按什么順序放,這跟版權一點兒關系都沒有。
換句話說,Google復制了37個Java API,用以構建其Android手機操作系統,這一行為并不侵犯Oracle的版權。盡管Google照搬了這些API的組織形式,但Google自行構建了代碼,至少是絕大多數自行構建的。“Java和Android的類庫在組成形式上大致相同,基本上提供了相同的功能,解決相同的問題,不過Google對這些功能函數都做了自己的實現,這些實現和Oracle所屬的Java是不一樣的。”
Google和Oracle關于Android是否侵犯Java版權開展訴訟
根據這一裁定,Alsup法官終結了這場關于Google Android系統侵權使用Java的訴訟,該訴訟長達六周之久。Oracle于2010年控告Google非法侵占了Java的版權和專利權,并企圖通過該訴訟在Google Android系統的巨額利潤中分得一杯羹。不過,依照Alsup法官的裁決,數據庫巨頭Oracle這次要一無所獲了。Oralce已經表明了對此案上訴的態度。
如果Alsup做出相反的判決,那么Oracle很可能會引發一場‘令人難以想象’的災難,還好法官沒有這么做。Bret Bocchieri表達了這樣的觀點,他是來自一家名為Seyfarth Shaw LLP的國際法律公司的知識產權專家律師。
更重要的是,Alsup法官的裁決讓全世界范圍內的軟件公司和獨立開發者們都松了一口氣。在軟件世界里,復用API是非常普遍的行為。例如,一些云計算平臺,就模仿了Amazon所擁有的著名的云計算架構ECC(Elastic Compute Cloud)的API形式。API是應用程序的可編程接口,是不同軟件之間交互的重要方式,行業內普遍默認對接口的組織和使用并不會觸犯到版權保護法律。Oracle對這個默認規則的挑釁,至少在業界引發了巨大的爭議。周四,Alsup法官的裁定結束了這些紛爭。
“如果Oracle的觀點得到認同,那么著就意味著任何人都能給自己實現的系統或功能加上版權,同時,他還能夠根據版權的保護條例禁止其他任何人用他們自己的方式實現跟你的系統和功能相同的軟件。(也就是說,這種軟件只能有版權的人做,其他人會做都不能做——譯者注)”在法官的41頁的簡報里,他寫到:“沒有任何理由可以支持這種極端的提議。”
Alsup法官 為了審案甚至親自學習了Java編程
Ed Walsh,一位來自于Wolf Greenfield國際法公司的律師,表示他對這樣的裁定并不感到驚訝。但是他同時也指出,這個裁定并不意味著從此以后API就不受版權的約束了。Walsh認為,Alsup法官部分出于Sun公司的原因,幫了Google一把,允許Google復制API。Sun公司才是Java真正的***,后被Oracle收購,而后Oracle才取得了Java的版權并起訴Google.
“我認為有一些因素對裁定結果產生了影響,那就是Sun公司原先是允許人們隨意使用Java的”,Walsh說,“所以Oracle不能用版權去限制這些本來就已經開放的事物。”
Catherine Lacavera, Google的訴訟代表,也表達了同樣的觀點。“這個判決重申了我們長期以來對法律的理解,這些API是可以被所有人自由使用的,正如我們使用它一樣,我們采用了這些功能的聲明,并自己獨立實現這些聲明所包含的功能代碼。”,她說,“這就是開發者使用Java的正常模式,你不能說,一種語言是可以自由使用的,然后又禁止人們使用這種語言的名詞或者動詞。”
Alsup法官則考慮得更細,他使用了大量的細節來描述什么是Java API以及在法律范圍內這些API應當如何對待。他所提出的圖書館的比喻非常經典。但是他可不是僅僅停留在比喻的層面上。他似乎真的理解什么是API.他也很清楚復制一個接口(Interface)和復制實現接口的代碼,這兩個概念是有區別的。
“每個成員方法(Method)和類(Class)都是用來實現特定的功能的,因此,‘聲明’(或者說‘頭文件’)所包含的代碼必須和實現功能的代碼一致”,Alsup法官在做出圖書館的比喻后還這樣說過。
2008年時,Java共包括166個API, 涉及到該600個類,6000多個方法。 Google復制37個API包(package)的名稱和操作方式,但是Google用自己的代碼對這些方法和類進行了實現。
在訴訟中,Oracle的法律顧問Mike Jacobs常說,構建API就像是進行交響樂創作,或者是,是的,就像是繪制一幅優美的畫作一樣。Alsup法官當然意識到了開發API是一種創作性行為。但是他也為這種行為加上了概念性的級別,API這樣的發明只能由專利權來保護(而不是知識產權)。Oralce當然也從專利權的角度進行過訴訟,但是同樣沒有成功。
Java依賴一種特殊的“詞匯表”一樣的組織形式,稱之為“方法規格說明書(method specification)”,程序員這通過這個說明書告訴計算機需要做什么事情。Alsup法官表示,根據美國版權法案,無論“方法規格說明書”是如何地有創意,任何人——包括Google——都有權利使用相同的“方法規格說明書”,只要他們對“方法規格說明書”中定義的方法的實現代碼不同。“方法規格說明只是一種‘概念’,方法本身的實現才是具體的表達。法律不能讓任何人對‘概念’進行壟斷”。Alsup法官如此寫道。
法官說,目前還沒有哪個上訴法庭或者地區法院對API受版權保護一事做出裁決。但是他也的確參照了其他的案例進行判決,包括1879年***法院裁定Baker針對Seldon的訴訟——這是一場討論關于會計技能是否受版權限制的官司。法院***裁定會計記賬方法學只受專利權的約束,而不受版權的約束,因為一旦判決其受版權法約束,將會“極大挫傷出版業的積極性”。
“Baker的案例已經很久遠了,但是這個案例并不過時。相反,即便是在當代,Baker案也會被告到上訴法庭才能有最終裁定。”
他還引證了1994年蘋果公司針對微軟公司的訴訟案,1992年冠群電腦國際有限公司(Computer Associates International)針對Atari的官司,以及1985年Whelan Associates, Inc. 針對 Jaslow Dental Laboratory, Inc.的訴訟案,所有的這些案件都是關于計算的各個方面是否違反版權的。Alsup得出結論:如果一個概念有不只一種表達方式,那么沒有人可以申請對概念本身的版權。
名稱和短語都是不受版權保護的,他說,版權保護的范圍不會延伸到任何概念,過程、進程、系統、操作方法,或者觀念——無論以任何形式。他還說,對實現互用性所必要的功能性元素不受版權限制。這里就包括了Java API.
從很多方面來說,Google和Oracle的官司的結果并不讓人激動。但是從某些方面來講,這個案子又遠遠超傳統的意義。該案的亮點在于,Alsup法官告訴法庭,他自己為了審案而學習了Java編程,這給了Oralce一記響亮的耳光,別想用技術蒙蔽法官的雙眼。回顧這長達6周的訴訟,在法庭上,Alsup法官多次向雙方的律師和技術證人提出各種專業而尖銳的問題,這真是非常精彩的表現!我們信任這樣的法官!在他的裁決書里,他甚至自己寫出了各種代碼,來演示方法(method)、類(class)和包(package)的具體概念。并且,***,他做出了正確的判決!
英文原文:Caleb Garling