技術-經濟範式視角下的開源軟件演進剖析(一)

技術-經濟範式視角下的開源軟件演進剖析(一)

| 設計:劉穎潔

以互聯網為代表的信息技術的迅猛發展對整個經濟體系產生了巨大的影響。信息技術的發展一方面使知識的積累和傳播更加迅速,知識爆炸性的增長;另一方面,使信息的獲取變得越來越容易,信息交流的強度逐漸增加,信息成本越來越低,從而降低了整個經濟體系中的交易成本。信息技術的發展通過上述兩方面的作用正在逐步改變傳統的經濟體系,導致經濟體系發生制度變化,產生了許多新的經濟現象,如新的企業經營模式、新的產業形態、新的生產方式等等。其中,開放源代碼軟件(Open Source Software,在後文中簡稱為 OSS)現象就是一個典型的例子。

技術-經濟範式視角下的開源軟件演進剖析(一)

從二十世紀末開始,OSS 不論是在技術上還是在商業上都取得了令人矚目的成功。回顧 2018 年,我們見證了開源軟件在商業層面取得的歷史性突破:

IBM 以 340 億美元收購了已上市開源軟件企業 Red Hat,這同時也是商業軟件史上創記錄的一筆收購。

  1. Microsoft 以 75 億美元收購了開源協作平臺 GitHub。
  2. Salesforce 以 65 億美元收購了已上市的開源軟件企業 Mulesoft。
  3. Adobe 以 16.8 億美元收購了開源軟件企業 Magento。
  4. 要知道全球總共也就只有 6 家市值在千億美金級的軟件企業,Microsoft、Oracle、SAP、Adobe、IBM 與 Salesforce。

OSS 的成功是一個耐人尋味的現象。從經濟學的角度對這一現象稍加分析立刻就可以感覺到這一現象中的不尋常之處。

首先,作為純公共產品的 OSS 既不是由公共部門提供的,也不是由私人部門通過商業行為生產的,而是由私人在沒有任何報酬的情況下自願提供的。傳統的公共產品供給理論認為由於搭便車問題的存在,由私人部門自願提供的公共產品總是不足的。但在 OSS 的生產中,這一經典的論斷受到了挑戰。分散於世界各地的上百萬人自願貢獻出他們的時間、技能參與到 OSS 的開發工作中,開發出了數十萬個各種類別的 OSS。因此,我們不僅要問,OSS 是如何吸引如此眾多個人的無償貢獻生產出如此數量巨大、價值驚人的公共產品的?

其次,在軟件這個技術含量和複雜程度都相當高的產品領域中,OSS 開發群體如此一個鬆散的非正式組織是如何開發出了大量的高質量產品的呢?按照傳統的生產組織理論,軟件作為高度複雜的產品,尤其需要強有力的管理以保證開發者之間能夠精密地進行組織與合作,這一點只有具有相當管理水平的企業才能夠做到。然而 OSS 開發組織卻也做到了這一點。OSS 開發組織是相當鬆散的非正式組織,組織中的任何成員都可以按照自己的意願自由地加入和退出組織,他們的組成跨越了國家、民族、文化、語言的邊界,他們絕大部分互相從未謀面,僅僅通過互聯網進行聯繫溝通,組織中既沒有權威的命令,也沒有嚴格的層級結構。那麼,這樣一種鬆散的非正式組織是如何有效地匯聚了全世界上百萬人的力量組織產品開發的,是如何有效地管理產品的持續升級創新的,又是如何在具有強大壟斷力量的大型商業軟件公司的威脅下生存併成長的?

再次,OSS 和商業軟件雖然有著完全不同的生產組織方式,有著完全不同的生產目的,但它們的產品功能卻是基本一致的,在同一個市場中競爭。OSS 的產權制度和生產組織方式作為一種新的制度出現在產業中,不可避免地將和傳統的制度展開競爭。那麼這種新出現的制度將會對整個產業產生什麼樣的影響呢?

隨著數以萬計的 OSS 被源源不斷地被開發出來進入軟件市場,整個軟件產業的經營理念、組織模式和產業結構受到強烈的衝擊。

筆者對此產生了濃厚的興趣, 對 OSS 背後的經濟及社會原理進行了初步研究,但由於涉及了較多的研究領域,研究並不充分,仍然有許多值得深入的方面。

我們試圖去分析:

  • 開源軟件出現、發展的原因及動力問題 ?
  • 開源軟件對於 IT 產業帶來的那些影響,產業結構會發生什麼變化 ?
  • 開源軟件社區具有什麼樣的組織特徵?其生產的組織方式是什麼樣的?生產是如何進行的?
  • 給我們帶來了一些什麼樣的啟示 ?

整篇文章將分成宏觀、中觀、微觀三個部分:

  • 分別在三層面上分析開源軟件出現的原因及動力問題
  • 在中觀層面分析開源軟件對產業帶來的影響
  • 在微觀層面分析開源軟件社區的組織特徵及生產方式

本篇優先對開源軟件定義及發展階段進行介紹。

開源軟件是什麼 ?

在開始分析之前, 先簡單介紹開源軟件的背景和一些容易造成混淆的概念上的問題。

開源軟件有狹義和廣義之分. 廣義的開源軟件是指源代碼公開,並且允許任何人學習、複製、修改、重新發布的計算機軟件。狹義的開源軟件指符合 OSI(Open Source Initiative) 定義的開源軟件。

容易造成混淆並與開源軟件相關概念的澄清

技術-經濟範式視角下的開源軟件演進剖析(一)

自由及開放源代碼軟件(Free and open source software,縮寫為 FOSS,或 Free/Libre and open source software,FLOSS)是一種可以歸類為既是自由軟件又是開源軟件的計算機軟件。也就是,任何人被授權可以自由的使用,複製,研究和以任何方式來改動軟件,並且其源代碼是開放和共享的,因此人們被鼓勵志願的改善軟件的設計。這種軟件是相對於專有軟件, 其是在著作權的嚴格限制之下,並且通常其源代碼對於用戶是不開放的

1.源代碼公開的軟件不一定是“開源軟件”

商業軟件廠商如微軟的部分產品在全球推出了政府安全計劃源代碼協議, 但用戶只能看到源代碼, 不能修改、使用, 因此不是開源軟件。

判斷一個軟件是否為開源軟件, 關鍵是看軟件許可協議如何規定軟件的使用、發佈、複製和演繹等整個過程。

2.開源軟件不是公有軟件

公有軟件明確放棄版權或者版權中的經濟權利有效期屆滿。但是,開源軟件受版權保護, 必須在版權限定的規則範圍內使用。

3.開源軟件不等同於免費軟件

開源軟件通常是免費使用的, 但不是所有的免費軟件都是開源軟件。

4.自由軟件 (Free Software) vs 開源軟件

自由軟件特指以 GPL 類許可協議發佈的軟件, 定義比開源軟件更為嚴格。自由軟件要求確保使用者能獲得使用軟件的真正自由, 不允許修改源代碼後閉源出售軟件。很多 OSI 認可的開源軟件並不符合自由軟件的定義。

開源協議

License 是軟件的授權許可,裡面詳盡表述了獲得軟件後擁有的權利,可以對軟件進行何種操作,何種操作又是被禁止的。

技術-經濟範式視角下的開源軟件演進剖析(一)

開源軟件協議大體上分為三類:

1.Copyleft (Free proliferated licenses)

Copyleft 軟件是一類自由軟件,其發佈條款可以保證它所有版本的所有副本都或多或少帶有相同的發佈條款。

Copyleft 是一個通用的概念,有多種可能的方式編寫 copyleft 發佈條款,因此原則上可以有很多種 copyleft 自由軟件許可證。然而實際上幾乎所有 copyleft 軟件都使用 GNU GPL。兩種不同的 copyleft 許可證通常不兼容,這意味著直接將使用一種許可證的代碼與使用另一種許可證的代碼合併將會是非法的;因此,人們使用同一種 copyleft 許可證將會有利於社區。

2.寬鬆自由軟件許可協議 (Copylefted Free Permissive Licenses)

是一種對軟件的轉散發方式有最低需求的自由軟件許可協議條款類型。因此,這種許可協議將不保證被使用軟件的派生版會繼續保持自由軟件的形式。

當軟件被轉發(不論有無被修改)時,寬鬆的許可協議允許轉散發者限制他人對源代碼的訪問權,一些較廣為人知的寬鬆自由軟件許可協議條款包括了 MIT 許可證與 BSD 許可證。

3.非 copyleft 的自由軟件協議(Noncopylefted Free Licenses)

非 copyleft 的自由軟件帶有來自作者的再分發和修改的許可,也帶有添加額外限制條款的許可。

如果一個程序是自由的但並未採用 copyleft 許可證,那麼某些副本或者修改版本可能完全不是自由的。軟件公司可以編譯該程序,不論是否對其進行修改,都可以將可執行文件作為專有軟件產品發佈。

開源軟件的共有產權性質

技術-經濟範式視角下的開源軟件演進剖析(一)

軟件產品的知識產權應該是一種混合產權。一方面,軟件的算法、步驟和構思可以被認為是思想性的,應當獲得專利權;另一方面,軟件的其它一些元素如界面、語言、代碼行以及軟件產品的複製品等可以被視為表達性的,應當獲得版權。目前,大部分國家都將計算機軟件的產權歸於版權的範圍內。

在現在的商業軟件中,由於專利權申請程序的繁瑣以及軟件的高速創新,使用專利權保護知識產權的較為少見,而應用最多、被認為最有效的產權保護手段主要是商業秘密,其次是版權,而兩種手段的聯合運用則更為常見。

通常的軟件廠商對其在市場中進行銷售的商業軟件採用版權的方式保護軟件的目標代碼不被未獲得授權者使用,即通過版權來保護其“文字(目標代碼)表達”的獨佔權,並在許可證中的相關條款中加以說明和強調。但僅靠版權的保護是遠遠不足的。由於軟件本質是執行特定功能的指令,具有思想性,所以如果軟件廠商的其它競爭者對軟件的源代碼進行部分的修改,即可以實現儘管執行相同功能但表達形式不同於原軟件,從而避開版權法的限制。

為了保護軟件中思想性的創新成果,雖然可以應用專利權,但由於專利權申請的時間成本和財務成本使這一方式可行性較低。大部分軟件廠商最終採用了商業秘密的方式,封閉軟件的源代碼使其成為企業的商業秘密,從而使用商業秘密的法律手段保證自己對軟件的知識產權不受侵犯。這就是大部分私有產權軟件的產權保護狀況。

OSS 軟件所遵循的是一套被稱為逆版權 (copyleft) 的機制,這套機制利用版權 (copyright) 的機制,達到和版權相反的目的,即利用版權制度的相關法律手段來保護 OSS 的公開、免費的權利。逆版權的核心就是前面提到的開源軟件協議.

開源軟件促進會 OSI(open source initiative)對於開源軟件有十個條款:

  1. 自由再發布
  2. 源代碼公開
  3. 允許派生作品
  4. 作者源代碼完整性
  5. 不能歧視任何個人或團體
  6. 不能歧視任何領域
  7. 許可證的發佈
  8. 許可證不能只針對某個產品
  9. 許可證不能約束其他軟件
  10. 許可證必須獨立於技術

通過對 OSS 各項基本條款以及它們所確定的產權中各項權利的安排分析,我們可以清楚地看到,軟件的開發者和使用者在利用權、撤銷權、排他權、度讓權的安排中有著完全重合的權利。

正是在 OSS 逆版權機制所產生的上述產權安排作用下,全世界各地的程序開發者和使用者通過互聯網等通訊工具,共同協作使大量的 OSS 被開發出來並被不斷地完善。對於 OSS 這一由群體共同協作開發出來的知識產品,群體中所有成員能夠按照自己的意願和能力決定對它的投入水平,同時不受限制地使用它,這是真正的共有產權制度。

開源軟件的發展歷程

技術-經濟範式視角下的開源軟件演進剖析(一)

1970 年代 ~ 1998 年 - 1.0 自由軟件時期

在計算機發展的早期即二十世紀六、七十年代,計算機的使用者通常和其他人共享程序。那時候程序數量非常少,大部分軟件都是作為計算機系統的附帶部分,捆綁賣給用戶的。由於相對於計算機設備昂貴的價格,軟件程序的價值非常低,所以當時許多設備廠商提供的軟件,甚至包括由政府基金開發的軟件,都被允許共享,程序源代碼是公開的,一般都會根據用戶的需要提供。由於設備附帶的軟件比較簡單,無法充分滿足工作時的需要,計算機使用者經常會利用源代碼對程序進行改進,以充分發揮計算機的作用。所以,出於互惠的動機,使用者也會將經過改進的軟件免費提供給其它的需要者。因此,可以認為,軟件在誕生之初都是開放源代碼的。隨著計算機硬件價格的下降,計算機的快速普及以及計算機網絡的出現,軟件變得越來越重要,軟件的價值也得到快速提升。於是,在上世紀八十年代,產生了專業軟件公司,將軟件作為單獨的商品加以開發和銷售。為了能夠保證自己的商業利益,這些軟件公司封閉了軟件的源代碼,使得計算機的使用者為使用軟件必須支付一定費用,同時,他們也喪失了對軟件按照自己需求進行修改的權利。

Richard Stallman 為對抗這一趨勢,決心開發自由軟件——開源軟件的前身。

Stallman 於 1985 年成立了自由軟件基金組織 FSF,著手領導開發源代碼開放的自由軟件。同時,為了保障任何人都能夠自由獲得和使用自由軟件,Stallman 別出心裁地利用法律機制建立和發展了一套獨特的版權體系。他在傳統的軟件版權中附加了一個標準許可證,這使得想使自己開發的軟件保持自由狀態的創作者可以利用這一許可證來保障未來使用者自由使用的權利,避免軟件因為商業目的而喪失自由使用的權利,防止廠商利用自由軟件,使其私有化。

這個時期, 主要是學者和業餘愛好者開發軟件,整個風氣是“免費提供軟件”。在自由軟件基金會工作的時候,大家不知道工資是從哪裡來的。當時還沒有商業模式的概念,“免費軟件”開發背後的資金(如果有的話)是以大學或企業研究資助的形式提供的。

1998 年 ~ 2018 年 – 2.0 商業化時期

上世紀 90 年代中期互聯網的普及極大地促進了自由軟件的發展。自由軟件數量快速增長。於此同時,一些自由軟件的開發者,發展出了一套軟件開發作業方法,這套方法允許成百上千遍及世界各地的自願者能夠通過互聯網同時參與到開源軟件的開發中來。這套方法的出現,使得自由軟件的開發能力被極大的放大,也使得大規模複雜自由軟件的開發成為可能。

然而自由軟件的思想沒有立刻成為主流,業內也對其一直保有懷疑的態度。

Bruce Perens and Eric Steven Raymond(1998) 認為 Stallman 的“自由 " 一詞 free 很容易會被人理解為免費的意思,從而導致商業機構的敵意。因此,他們和其他人共同成立了開放源代碼促進組織 OSI,以推動源代碼開放運動。雖然開放源代碼運動承襲了自由軟件運動的技術性規則,但它和自由軟件運動背後的哲學理念卻不同。相對自由軟件重視黑客傳統的理想主意的政治和哲學思想而言,開放源代碼運動更為重視程序本身質量的提高和改進。不過總的來說,兩者的差別並不是很大。

Perens 等人所倡導的“開放源代碼 " 的概念由於淡化了政治信仰等社會因素、強調了軟件本身的特性而得到了更大範圍的認同,成為具備源代碼開放這一條件的所有軟件的統稱,當然也包含了自由軟件。

從這個時期開始,真正的開源軟件商業模式出現了,紅帽和 MySQL,以及許多其他在開源軟件之上提供付費支持和服務的商業組織一起出現了。這是我們第一次看到一種可行的經濟模式來支持這些組織的持續發展。

開源的歷史表明,它的興起是由於技術和商業創新的良性循環。在技術方面,開源是創建軟件的最佳方式,因為它加速了產品反饋和創新,提高了軟件的可靠性,擴大了支持範圍,推動了採用,並彙集了技術人才。開源是一種技術驅動的模型,這些特性從“免費軟件”時代就已經存在了。然而,只有在技術創新與商業創新相結合的情況下,才能充分發揮開源的潛力。如果沒有商業模式,比如付費支持、開放核心和軟件即服務模式,就不會有開源的復興。

經濟利益創造了一個良性循環,商業創新越多,開發人員的社區就越大,從而可以刺激更多的技術創新,繼而也增加了開源的經濟激勵。

2018 年 ~ 202x 開源軟件 - 3.0 開源是每個軟件公司的一部分

如今,幾乎所有的大型科技公司都是在開源軟件的基礎上開發的。越來越多的公司也在建立自己的開源項目!

今後,這種良性循環將繼續下去。在技術上,人工智能、開源數據和區塊鏈是一些新興創新的例子。商業上,開源不再是紅帽、Elastic、Databricks 和 Cloudera;它將至少成為每一家軟件公司的一部分,以及其他任何將開源作為其堆棧的那種企業。當我們以這種方式看待開源時,開源軟件的市場和可能性比我們所意識到的要大得多。


分享到:


相關文章: