Android 選擇抄襲
2005 年,地球仍是 Nokia、黑莓機等「半智慧手機」橫行的時代。智慧型手機山雨欲來,但尚未呱呱落地 — 要等到 2 年後 iPhone 才會問世。許多公司正緊鑼密鼓地秘密開發智慧行動裝置。
其中一家公司是 Google。Google 併購了新創 Android。Android 團隊決定以 Java 語言為核心,建造新一代的手機作業系統。當時 Java 主要用於電腦與伺服器。而團隊負責人 Andy Rubin 指出 Java 已有眾多的開發者與詳盡的文件,是發展智慧型手機系統的最好起點。
. . . . 如果昇陽不想跟我們合作,我們有兩個選項:(1)放棄並改用微軟的 CLR VM 與 C# 語言,或(2)硬做Java 然後捍衛我們的決定,一路上豎立許多敵人。
Google 選擇(2)硬做。Google 希望吸引 Java 工程師轉來為 Android 開發,於是採用了一個巧妙的作法:它沒有照抄 Java 的所有程式碼,而是只抄襲了 Java 的應用程式介面(Application Programming Interface, API)。
想像有一個圖書館,專門蒐集各種工具書。圖書館裡有 37 個書架。每一個書架上放同領域的書。例如個人理財書架上放了很多個人理財的書。廚藝書架上放很多廚藝的工具書。
每一本工具書裡有不同章節。例如廚藝書架上其中一本是《快速牛肉料理大全》。書的其中一章是「蔥爆牛肉」。
每一章裡還分兩部分,「材料準備」與「實際製作」。例如「蔥爆牛肉」這一章,會先有一個材料準備:「綠蔥至家樂福買。牛肉需澳洲牛,可以在 Costco 買。另外準備醬油。」實際操作的部份,則描述做菜流程:「蔥爆香,再下牛肉跟調味料」。
Google 的巧妙之處,便是在蓋 Android 圖書館時,照抄了 Java 圖書館的 37 個書架名,以及這 37 個書架內,共 7,000 行的「材料準備」。Google 沒有抄實際操作的章節。
注意 Google 重新寫了「實際製作」的部分的程式碼 — 因為要配合手機的特性 — 這部分稱之為執行碼(implementing code)。但 Google 照抄了 Java 共 37 大項,11,500 行的「材料準備」部分,稱之為屬性宣告碼(declaring code)。Google 也照抄了「書架」、「章節」的名稱以及其組織方式(如
下圖)。
抄的好處是當 Java 的工程師轉過來時,就不用重新學習 API 架構;只要使用已知的指令呼叫方式(method call)就能上手。
Google 的策略成功了。Android 免費、開源,迅速席捲市場,成為市佔率最高的手機作業系統。Google 也賺到滿滿的錢。相對的,昇陽卻日落西山,於 2010 年被甲骨文(Oracle)併購。
甲骨文於 2010 年控告 Google 侵犯其著作權。此案纏訟 10 年,不僅影響數百億美金的手機市場,也牽動軟體業的運行方式,被稱為「十年來最重要的著作權案」。
終於,本週美國最高法院做出了蓋棺論定:Google 勝訴。根據
T 客邦報導:
美國最高法院週一裁定,Alphabet 公司旗下的 Google 公司使用甲骨文公司的軟體程式碼所構建在全球大多數智慧手機上執行的 Android 系統,並未違反聯邦 [著作權] 法。這是 Google 的一大勝利。
法官們以 6 票贊成、2 票反對的結果推翻了下級法院的裁決。先前法院判定 Google 將甲骨文的軟體程式碼包含在 Android 系統中是不合理使用,違法美國 [著作權] 法,需賠償 88 億美元。
大法官 Stephen Breyer 表示,允許甲骨文在其程式碼上執行 [著作權],將使其成為「限制新程式未來創造力的枷鎖」,從而損害公眾利益。
以下我將討論 Google 為何勝訴,以及此一判決對軟體業的影響。