• 沒有找到結果。

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

參、 軟體與軟體產業的特徵

第二章中討論了軟體專利相關的數個問題,包括功能性請求項用語的氾濫、

專利有效性及範圍的不確定性、專利的龐大數量和低下質量以及一些相關的問題。

造成這些問題的因素也有所提及。例如,前文中提到 Alice 案判決造成了居高不 下的無效率;也提到希望獲得更大專利範圍的慾望造成了功能性用語的氾濫。然 而,問題的根源卻可能被忽略了。

本章將圍繞著軟體領域進行——了解這些問題所根植於的土地,從而在後面 的章節中提供合适的解決策略。第一節將探討軟體發明對專利系統的依賴程度,

即軟體發明在多大程度上需要專利所提供的激勵。第二節則審視當前的專利系統 是否適合軟體發明。

一、 對專利的依賴程度

專利制度的目的在很大程度上是為創新提供動力以及以先進技術豐富公眾 領域 228。本節側重於專利系統的第一個效用,即促進創新,而專利系統的揭露 效用將有所提及。

如果軟體創新成本高昂、軟體發明人沒有其他有力的方式收回其創新投入、

也沒有其他智慧財產權能為軟體創新提供足夠的保護,那麼可以想像軟體創新應 受到專利系統完善的保護。然而,本節將呈現出一幅完全不同的景象,並進而主 張專利對於軟體而言恐怕並非不可或缺。

(一) 軟體創新成本

無需昂貴的實驗室或工廠,經營軟體生意的成本相對低廉 229。不同於醫藥 與半導體行業,軟體的開發不依賴於機器設備,其成本主要源於聘用程式設計

228 Graham, 383 U.S. at 11.

229 See Burk & Lemley, Policy Levers, supra note 21, at 1582-83; see Samuelson, Manifesto, supra note 60, at 2378.

37

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

230。事實上,一套商業軟體完全可以由幾個人在一間車庫中開發完成231。許 多軟體相關行業中的巨擘都曾以車庫作為最初的「總部」:Steve Jobs、Steve Wozniack 與 Ronald Wayne 於 1976 年在一間車庫外創建了蘋果公司;Google 公 司的全體員工(共 3 人)於 1998 年在一間車庫外工作,改進其檢索演算法;Jeff Bezos 於 1994 年在一間車庫中為 Amazon 公司奠定了基礎;於 1975 年 Bill Gates 與 Paul Allen 在一間車庫中啟動了 Microsoft 公司以及他們的作業系統生意232。 程式設計方面的一些發展進一步降低了開發軟體的難度及成本。曾幾何時,

因受制於電腦的性能,程式設計師不得不使用機器語言(machine code)或組合 語言(assembly language),程式中充斥著對暫存器(register)233的直接操作等 底層細節。正因如此,程式設計師們通常需要考慮電腦的硬體,所設計的程式相 當於為特定的機器提供的量身定制的代碼。此時的程式設計十分繁瑣,不但耗費 腦力且非常容易出錯。但隨著時代的變遷,電腦硬體和程式設計語言等方面的進 步讓程式設計大為簡化。無論是台式電腦上的 Google Chrome 瀏覽器、Adobe Reader 等軟體或是智慧型手機上的 Facebook、新浪微博等應用程式,都是一份 程式可通用於上千萬臺不同製造商的設備。得益於高級程式設計語言,設計師的 工作輕鬆了許多,通常可以專注於實現功能,而不再需要考慮特定硬體的特徵234。 以如今流行的 Java 程式設計語言為例,只要以該語言設計程式,該程式原則上 就能在任何平台上運行 235。同時,硬體的進步讓電腦性能更佳,從而讓程式設 計語言得以更加「高級」,讓程式設計師擺脫更多與實現功能無關的繁瑣細節。

例如,相比於使用 C 語言的程式設計師,Java 語言的使用者無需進行「廢料收

230 Id., Burk & Lemley, at 1582, 1687-88.

231 Id., at 1582

232 “10 Big Businesses That Started in a Garage”, May 2, 2011, available at

http://www.accountingdegree.com/blog/2011/10-big-businesses-that-started-in-a-garage/ (visited on June 11, 2017).

233 根據《資訊與通信術語辭典》,「暫存器」的定義為「在中央處理單元的晶片中,暫時儲存而快速存取的

記憶儲存空間,可加速中央處理單元中算術、邏輯或轉移等運算的執行,只儲存處理過程中的資料或指令,

結果再送回隨機存取記憶體」。參見國家教育研究院(雙語詞彙、學術名詞暨辭書資訊網),「暫存器」,

http://terms.naer.edu.tw/detail/1285253/ (於 2017 年 6 月 30 日訪問)。

234 值得注意的是,為了更高的代碼執行效率即使在今天依然可能使用低級語言、針對特定硬體進行程式設

計。

235 Sun Microsystems, Inc., “1.2 Design Goals of the Java TM Programming Language”, 1997, available at http://www.oracle.com/technetwork/java/intro-141325.html (visited on Feb. 3, 2017).

38

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

集(garbage collection)」,一項繁瑣、卻與實現程式功能無關的任務;相比於 Java 語言,使用更高級的 Python 語言在一些場合省去了聲明(declare)變量(variable)

的麻煩。以整合發展環境(integrated development environment,常被簡寫為 IDE)236 為代表,許多自動化工具同樣簡化了程式設計。現代的整合開發環境常包含圖像 使用者介面(grafical user interface)、編譯器(compiler)、解譯器(interpreter)、

除錯器(debugger)、物件/類別瀏覽器(object/class browser)等工具以及智能代 碼完成(intellectual code completion)等實用功能。此外,現代軟體開發有一大 特徵,即在世界各地的多組程式設計師可以合作共同開發一個項目 237。這意味 著軟體公司可以通過從欠發達的地區或較小的城鎮僱傭程式設計師來節省成本,

畢竟那裡的生活成本與期望薪資較低 238。如果部分程式設計師在家中辦公,軟 體公司又能從辦公空間與配套設施中節省一筆開銷。

軟體開發的另一特點是低風險。在生物、化學或醫藥領域,人們在開發新的 化合物時可能會失敗,也可能會在成功研發出一種化合物後找不到其實用價 值 239。意即,人們需要實驗,因為只有通過實驗才能確定實際的情況、驗證理 論的正確性。而實驗則意味著有失敗的風險。軟體開發則完全不同 240。電腦程 式本質上是數學與邏輯,所以如果在理論上能行得通,那麼在現實中也就能行得 通——程式設計不會涉及到現實世界中的種種不確定性 241。在軟體行業,因為 無法實現預定的功能而導致項目失敗是極其罕見的 242。程式設計的過程通常是 重複地將大功能拆分成若干小功能,直到功能簡單到能夠輕易實現,然後逐個實 現這些簡單的功能。如果說其中有任何實驗的成分,可能就是除錯(debug)的

236 可以將 IDE 理解為程式設計師的 Microsoft Word。

237 See PETER BUXMANN,HEINER DIEFENBACH &THOMAS HESS,THE SOFTWARE INDUSTRY:ECONOMIC PRINCIPLES, STRATEGIES,PERSPECTIVES 3 (2013) [hereinafter BUXMANN, ET. AL., ECONOMIC PRINCIPLES].

238 筆者前僱主 Oracle 公司的一位美國籍高級總監認為在中國蘇州(一座較北京、上海較小且生活成本較

低的中型城市)招聘的程式設計師性價比很高。因此相關項目組在蘇州分部擴大招聘。

239 Brenner v. Manson, 383 U.S. 519 (1966). 該案中的系爭化合物(chemical compound)被認定為缺乏實用 性。

240 See Jay Dratler, Jr., Does Lord Darcy Yet Live? The Case Against Software and Business-Method Patents, 43 Santa Clara L. Rev. 823, 855 (2003) (“The striking thing about computer software is that, in contrast, its development entails none-not one!-of these real-world risks or uncertainties.”) [hereinafter Dratler, Lord Darcy].

241 Id., 855-56.

242 Id., 857 (“During all that time I have never heard of-let alone participated in or advised-a computer programming project that failed, once programming started, because the job could not be done.”)

39

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

過程了 243。但該過程與生物化學研發中的實驗也有差別。調試所要解決的是人 為的錯誤,這也就意味著較低的不確定性——理論上無需任何嘗試,僅僅通過閱 讀代碼就能夠找出並改正其中的錯誤 244。程式設計的這種特性很大程度與其功 能性的本質有關,即軟體中的基本元素是功能 245。如果有數個已知的子功能,

那麼把它們組合在一起的結果是確定的,即順序執行這些子功能的結果;但是如 果有數個已知的原子,在實驗之前卻完全有可能無法肯定它們所組成的分子具有 怎樣的性質和功能 246。據此,軟體開發的不確定性低,這意味著軟體開發的風 險小、成本進一步降低。

軟體開發的成本主要來自於初始編碼(initial coding)247。重製(reproduction)

的邊際成本很低,而開發新版本通常是在現有代碼基礎上的重複改進,都相對容 易248。Lemley 教授為軟體的這種累積創新模式提供了幾項理由249。其一,由於 軟體工作於硬體之上,所以硬體方面的進步會帶動軟體相應的逐步革新 250。隨 著時間的推進,硬體加諸軟體的一些限制將不復存在,軟體也可以相應地進行修 改。比如,記憶體(memory)容量的增加可能讓新版本的資料處理軟體選擇一 次性讀取好處理更多的資料,從而增加資料的處理速度和用戶體驗;隨著硬體性 能的進步,軟體開發者可能選擇將其軟體產品的部分以更高級的程式設計語言重 寫,從而降低代碼維護成本。其二,重用現有代碼會使軟體更加穩定,因為現有 代碼通常意味著存在較少漏洞251。著名的 Oracle 資料庫的第一個版本為「v2」, 從而令其顯得更加可靠。「我們知道沒人想買版本一的東西」, Oracle 公司的共 同創立者 Larry Ellison 如是說 252。其三,利用以前版本的既有代碼,新版本與該

243 Id., at 856.

244 Id., at 856-57.

245 參見本文第叁、二、(四)部分(軟體的功能性本質)。

246 Brenner, 383 U.S. at 532. 法院和專利申請人都意識到,即使系爭化合物與已知有抑制腫瘤的化合物在結 構上有類似之處,但系爭化合物是否有類似的功能具有相當的不確定性。

247 See BUXMANN, ET. AL., ECONOMIC PRINCIPLES, supra note 237, at 3; see Thomas, Debugging, supra note 21, at 1687.

248 See Id., BUXMANN, ET. AL.; Id., Thomas, at 1620.

249 See Burk & Lemley, Policy Levers, supra note 21, at 1620.

250 Id., at 1620.

251 Id., at 1620-21.

252 Julie Bort, “Larry Ellison Is A Billionaire Today Thanks To The CIA”, Sep. 29, 2014, 9:14 AM, available at http://www.businessinsider.com/the-cia-made-larry-ellison-a-billionaire-2014-9 (visited on Feb. 4, 2017) (“We knew no one would want to buy version 1.”)

40

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

軟體的老版本以及其他軟體的相容性(compatibility)更好253,畢竟留住老客戶 是極其必要的。設想某人用 Microsoft Word 寫了一些文章,後來她將 Word 更新 至較新的版本,卻發現新版本的 Word 無法打開那些舊版 Word 文檔。她必然會 對該產品十分不滿。這也解釋了為什麼在新推出「docx」格式後,Word 2013 依 然可以打開「doc」格式的文檔。

一旦完成了軟體產品的開發,剩下的工作就相對輕鬆了。就散佈和販售而言,

軟體的重製和其他的數位產品一樣容易,而逐漸開始流行的「軟體即服務

(software as a service,常被簡稱為 SaaS)」授權模式能將重製和販售的邊際成本

(software as a service,常被簡稱為 SaaS)」授權模式能將重製和販售的邊際成本