Java的戰爭

jmM3E3u.jpg!web

本文來自微信公衆號: 金捷幡(ID:jin-jiefan) ,作者:金捷幡,封面:拉里·埃裏森(東方IC)

2019年5月,徹底撕破臉的特朗普掀起對華爲的戰爭,谷歌被迫吊銷了華爲的Android授權。開源軟件的版權問題,使我不禁想起軟件行業的一宗驚天巨案。

看過《手機基帶芯片故事》的朋友,一定記得喬布斯曾強烈表達過對谷歌抄襲蘋果的憤怒:“我要用盡蘋果400億美金的存款,發動一場熱核戰爭,來摧毀Android,because it's a stolen product。” 

千萬別認爲喬幫主只是說着玩的。

雖然他不幸去世多年,他最好的朋友甲骨文 (Oracle) 董事長拉里埃裏森仍然在堅持這項未竟的事業。

桀驁不羈的埃裏森在回顧喬布斯臨終情景時動情地說:“他已經被×××消耗光了,他實在太累了又太痛了。雖然他絕對是我見過最堅強的人,但他還是最終放棄了和死神的對抗。”他最後停藥的決定震驚了所有人,三天後幫主駕鶴西去。

zuIJben.jpg!web

作爲惺惺相惜的英雄,埃裏森當年曾經想把蘋果買下來還給喬布斯。

2009年4月,甲骨文宣佈以74億美元收購了Sun Microsystems。埃裏森面對IBM的競價毫不猶豫,最終以超過Sun市值30%的價格將其拿下。

2010年收購完成後,埃裏森隨即對谷歌宣戰,起訴Android對Java的侵權。

Java之父James Gosling是個加拿大人,他在Sun工作了26年。直到Sun被甲骨文收購後,他選擇了離開。

有謠傳說,Gosling因爲學C++太難而在其上去掉了很多繁複的特性做出了Java。這個不足爲信,因爲Gosling是計算機聖殿卡內基梅隆的博士,學個語言對他來講太小兒科了吧。

Java是原本設計用於機頂盒之類的小型設備上的,但 出乎任何人的意料,互聯網大潮來臨後,Java編寫一次、到處運行的特性被各種應用發揮到了極致 。在企業級軟件上,Java更是整合各種不同軟硬件和操作系統做出分佈式應用的神器。

二十年來,Java除了受到.Net的小型挑戰外,由於擁有最成熟穩定的企業應用組件,其互聯網的支柱地位仍牢不可破。

不僅在企業級市場呼風喚雨,另外一個意外的選擇,使得Java在移動終端也大放異彩。

Android之父安迪魯賓1989年進入蘋果工作,那時他還是個小工程師。因爲他之前在蔡司機器人部門工作,蘋果的同事給他起了個外號:Android (機器人) ,當時誰也不知道,這個機器人在多年以後成爲蘋果最大的競爭對手。

當時喬布斯已經被驅逐出蘋果。被老喬請來“不賣糖水改變世界”的CEO John Sculley,其實遠沒有後來外界評論的那麼不堪。他把蘋果營業額擴大了10倍,而且主持了大屏手持電腦Newton的開發。

John Sculley把專門做手持操作系統的部門分拆成General Magic (通用魔法公司,這個名字好贊) ,而這家公司成爲未來智能手機的黃埔軍校。

安迪·魯賓在通用魔法公司汲取了充足的養分,後來在2003年創建了Android公司 (Android Inc.) 。Android系統最早是設計給數碼相機用的,數碼相機本身硬件就千差萬別,所以Java優秀的跨平臺特性就被選中了。

結果這個平臺做出來後,發現用於手機也很適合。2005年,正在尋找手機操作系統的谷歌看中並收購了Android公司。

aU7NFvF.jpg!web

2007年1月,喬布斯發佈了iPhone,極大地震撼了谷歌。爲了趕時間,谷歌來不及更改Android所用的開發語言Java,這給後來埋藏了重大的禍根。

當然,Java充足的程序員羣體和便利的開發特性,對Android本身來講也是有極大幫助的。

2007年11月,就在第一代iPhone上市4個月後,谷歌便匆忙開源了Android併成立開放手機聯盟 (OHA) 。這時的Android連個半成品都算不上,但Java的地位被牢固地確定了下來。

和蘋果iOS運行原生Object C編譯的機器碼不同,Java必須跑在虛擬機上。這使得Android在速度上天然存在問題。谷歌爲了儘可能提高速度,自己做了Dalvik虛擬機 (DVM) 。

DVM採取了很多“作弊”的加速手段,比如預讀取用戶裝的很多APP (APK) 並存入緩存,比如把Java Bytecode替換成DVM的指令。這些手段的副作用之一,就是使Android需要比iPhnoe大得多的內存,而且手機用的時間越長,APP越多,系統越慢。

這些“作弊”手段,也使得谷歌的Java虛擬機和Sun原版虛擬機完全不兼容。而Sun對這種分裂Java的行爲不能容忍。

谷歌確實去找Sun申請過Java授權,但是Sun要求谷歌分享對Android分支的控制而遭到拒絕。谷歌當時還拒絕了Sun提出的三年支付約5000萬美元授權費用的要求,而後來Sun歸了埃裏森以後,這數字提高到50億美元。

在未獲Java授權的情況下,谷歌採取了“潔淨室”這種反向工程手段 (可參考: 《BIOS和PC的故事》 ) 開發了自己的Java庫。這是一種類似抄襲但又不明顯違法的手段。

但是,谷歌仍舊保留了Sun Java原有的一些編程接口 (API) ,後來被甲骨文抓住了把柄。

甲骨文總架構師Edward Screven在法庭作證說,他曾和埃裏森講,拿下Java是收購Sun的唯一重要目的。

雖然Java之父Gosling在離開甲骨文後短暫加入了谷歌,他在接受採訪時表示,他認爲谷歌當年確實糊弄了Sun。

開源軟件只是意味着你能看到全部源代碼,這並不表示你可以隨意使用。對於Java來講,程序員是可以免費使用的,但是對於企業來說還是需要獲得授權的。

而API是否受版權保護,這個在美國法律界也產生了巨大的分歧。如同你做菜的配方可以受版權保護,但是點菜的菜單也受保護嗎?

甲骨文和谷歌兩大巨頭曠日持久的法律大戰,至今已經9年還未打出最終結果。其間雙方在各級法院各有勝負,法官和陪審員都對此案看法不一。

埃裏森和拉里·佩奇都親自上庭作證,這在美國大公司訴訟中極爲罕見,而每一次埃裏森都拒絕和解。

2018年3月,聯邦上訴法院判決甲骨文勝訴,這意味着谷歌應賠償高達近百億美元。

谷歌則第二次將此案提交到美國聯邦最高法院。在四年前最高法院拒絕審理後,這次九位大法官似乎被迫要做出判決了。

M7jyauy.jpg!web

衆所周知,美國是法官立法的國家。聯邦最高法院的判決會深遠影響軟件行業的很多懸案。

法官們還要判定的是,谷歌的抄襲行爲是故意侵權還是合理使用。甲骨文已經舉證說Android在10年間爲谷歌賺了超過420億美元。

對甲骨文不利的是,Android已經是大到不能倒了,沒有法官會支持禁止Android手機的銷售。正因爲如此,谷歌一直把案件拖了九年。

而在這段時間內,谷歌把Android的Java庫轉到OpenJDK,把DVM轉到ART,把Java語言轉到Kotlin語言。

2019年4月底,聯邦最高法院正式發文給美國司法部,要求聯邦檢察官協助斷案。這似乎是美國三權分立的一個漏洞,但也說明了此案判決難度極大。

似乎大多數程序員都很厭惡甲骨文對開源的霸道行爲,但是埃裏森爲喬布斯“復仇”的舉動又讓人覺得很感動。畢竟谷歌確實存在“抄襲”蘋果和Java的行爲,並由此獲取了鉅額利潤。

考慮到對喬幫主的感情,以及近期的華爲事件,我內心還是希望谷歌最終會爲此付出代價。

*文章爲作者獨立觀點,不代表虎嗅網立場

本文由金捷幡© 授權虎嗅網 發表,並經虎嗅網編輯。轉載此文章須經作者同意,並請附上出處(虎嗅網)及本頁鏈接。原文鏈接:https://www.huxiu.com/article/301065.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章