开源与自由 | 商业自由:从边缘到核心贡献
文?| 肖瀅
策劃 | h4cd
出品 | OSC開源社區(ID:oschina2013)
當我們談論開源時,很少談論自由,盡管開源與自由同行。從 1998 年開源興起時,我們就無法把開源和自由分割開來。因為它孕育于自由軟件運動,自由使用、復制、修改、分發源碼,其精神內核一直延續至今?!白杂伞?#xff0c;為何對開源如此重要?我們將依次用《開源,是背叛自由還是以退為進?》、《開放協作:賦予開發者的自由》、《商業自由:從邊緣到核心貢獻》三篇文章來回答這個問題,本文為第三篇。
不得不承認的是,個人英雄式的獨立開發者時代已經落幕,隨之而來的是,互聯網科技企業成為開源社區的主要力量。
當企業成為開源的主體,開源一定需要商業自由。那么,開源與商業是怎樣的關系?商業自由能為開源帶來什么?為了保證商業自由,企業做了什么樣的選擇?無限制地放開商業自由,對開源會有什么影響?
不是二選一
我們提到過,1998 年 Mozilla 的開源,具有劃時代意義。由它開始,掀開了企業大規模開源的序幕。在 20 世紀七八十年代,還沒有開源的說法,只有“自由軟件”,自由軟件主要由個人或者大學等機構主導,GNU 工程就是其中典型的代表。而發布自由軟件的企業屈指可數,它們處于自由軟件世界的邊緣位置。
自由軟件在商業企業中并不受歡迎。它賦予用戶分發軟件源代碼的自由,在很大程度上損害了企業的利益。?
微軟 CEO 比爾·蓋茨于1976年發布的一封公開信,可以反映出企業對分享軟件這一行為的普遍態度。他在信中抱怨,未經授權使用 Altair BASIC 的情況太普遍,導致新成立的微軟公司回報甚微,并指出那些分享拷貝軟件的人是剽竊者?!罢l能負擔得起白做專業工作?哪個業余愛好者可以花 3 年時間進行編程、查找所有錯誤、記錄他的產品并免費分發?事實是,除了我們之外,沒有人在業余愛好軟件上投入大量資金。你所做的就是盜竊。”?
不過,自由軟件本身并不抵制商業化。自由軟件基金會(FSF)就明確表示,自由軟件無關價格。很多人以為,GNU 計劃的精神是不應該為分發軟件副本收費,或者應該盡可能少收費——剛好足以支付成本。這是一種誤解。實際上,他們鼓勵重新分發自由軟件的人盡可能多地收費,以此來支持開發。“分發自由軟件是為開發籌集資金的機會。不要浪費它!”當然,這一切都建立在保證用戶有自由運行、學習、修改以及再發行原版或是修訂版軟件的前提下。?
“開源”的出現,更是為商業自由而來。1998 年,正是因為 ESR 等一批自由軟件運動的倡導者考慮到“free software”中的“free”有免費的意思,對商業不友好,才出現了用“開源”一詞替代“自由軟件”,以方便對外宣傳,吸引更多的企業加入到自由軟件運動中來。隨后,開源促進會(OSI)批準了第一批許可證,其中就包括 BSD 許可、MIT 許可兩個商業友好型的許可證。OSI 維護著開源定義(OSD),判定一份許可證是否屬于開源許可證,以 OSI 認證為準。?
從一開始,開源與商業不是二選一的關系,而是共生的關系。?
早在上世紀 90 年代后期,RedHat、MySQL AB 等公司就證明了,利用開源軟件來賺錢是可行的。尤其是 RedHat 在1999 年以創紀錄的 IPO 公開上市,更是令不少企業艷羨不已。?
而今,開源已經是一種成熟的商業模式,一頭扎進去,人才、市場、名聲,全都可以握在手里,足夠順利的話,甚至還能建立一個以開源項目為核心的產業生態,坐收漁翁之利。?
2007 年,為避免蘋果公司的移動操作系統 iOS 壟斷市場,谷歌主動開源 Android 操作系統( 該開源項目簡稱:AOSP)。由此,Android 系統在移動端的市場份額一路飆升,2020 年超過 70%。這也為谷歌移動服務(GMS)帶來廣闊的市場。要知道,GMS 每年為谷歌帶來數百億美元收入。?
用開源的手段擴張市場,在軟件行業已經屢見不鮮,除了谷歌這樣的科技巨頭,不少初創企業也加入進來。MongoDB 公司的 CEO Dev Ittycheria 就明確表示,開源就是為了獲得市場。公司成立的第三年,MongoDB 已經初步開發完成,卻沒有足夠的資源面向整個龐大的市場進行營銷,因此想利用開源的病毒性傳播屬性,讓軟件得到廣泛使用。這一策略確實奏效,幾年之后,MongoDB 成為了最受歡迎的 NoSQL 數據庫之一。?
微軟收購全球最大的軟件開發平臺 GitHub 進一步表明,大公司正在尋求成為開源的主要供應商,并準備在其中投入大量資金。??
商業反哺開源?
企業是商業自由的最大受益者,同時也在反哺開源。它已經從最初的開源軟件使用者,轉變成集創建者、使用者以及貢獻者多重身份于一體的角色。開源已經離不開企業,離不開商業自由。?
最直接的證據是,企業貢獻了一大批頂級的開源項目,成為開源技術的引領者,尤其是在近幾年尤為活躍的人工智能、大數據、云計算等新興技術領域。微軟創建了源碼編輯器 VSCode,谷歌創建了機器學習平臺 TensorFlow、容器編排平臺 Kubernetes,Facebook 創建了移動應用開發框架 React Native。眾所周知,這些技術領域的創新都源于開源生態,企業功不可沒。?
它們同樣也為其他開源項目貢獻代碼。尤其是軟件巨頭,成為了最大、最活躍的貢獻者。根據 Open Source Contributor Index 公布的 2020 全球開源廠商 GitHub 開源貢獻排名,谷歌和微軟兩大互聯網巨頭排在榜單前二位,二者參與開源貢獻的活躍貢獻者人數都超過了 5000 人,參與的開源社區超過 10000 個。微軟、谷歌、IBM、Oracle、Facebook 五家科技巨頭企業參與的開源項目數超過 20000 個。?
在一些大型的、復雜的、生命周期長的開源項目上,企業所具有的軟件工程調度能力,會比零散的個人開發者更具有優勢。紅帽博客編輯總監 Joe Brockmeier 認為,理想情況下,企業開源結合了兩個世界的優點——開源的優勢與企業軟件提供的穩定性、性能、支持和生態系統。?
也正是因為開源允許商業自由,才有更多商業模式誕生,吸引更多企業加入。從最早期的“RedHat”模式,發展到 SaaS 模式、Open Core 模式、限制性許可模式、混合許可模式等,越來越多的企業在嘗試構建新的開源商業模式。在過去的十年中,Open Core 模式成為了最成功和最常用的方法。Elasticsearch 和 MongoDB 就是該模式下商業化的開源項目,二者也都成為了商業開源軟件公司(COSS)。對于其他躍躍欲試的企業來說,一套成功的商業模式無疑是具有鼓動性的。?
此外,企業結合開源軟件實現商業轉化,獲得收入之后也能夠更好地回饋開源社區,讓項目可持續。一個現實問題是,很少有人有足夠的空閑時間將其用于真正的開源貢獻。因此,不少通過開源獲益的企業會付錢給開發人員或運營人員,讓他們為開源軟件做出貢獻。?
難以想象,在企業取代個人成為開源領域絕對主流的時代,沒有了商業自由,開源會變成什么。?
許可證的選擇?
在開源世界,什么會限制企業的商業自由?那自然是規則,也就是開源許可證。選擇什么樣的許可證,關系到企業的開源商業模式。?
開源許可證大體可以分為兩大類:一類是 Copyleft 許可,另一類是寬松型許可。寬松型許可證對他人如何使用開源組件的限制最小,幾近于無。它們允許用戶在不同程度下自由使用、修改和重新分發開源代碼,并允許在專有衍生作品中使用寬松型許可的開源組件,幾乎不需要任何回報。?
簡而言之,寬松型意味著不強制開源,條條框框少了,對商業友好,企業利用開源軟件發展業務更加便利。?
一個越來越明顯的趨勢是,寬松型開源許可證使用量明顯增長,而 Copyleft 許可證,尤其是GPL 許可證的使用量繼續減少。根據 WhiteSource 發布的數據顯示,2020年,76% 的開源組件擁有寬松型許可,比上一年提高了 9 個百分點。24% 的開源組件是 Copyleft 許可,比上一年減少了 9 個百分點。在 2012 年,Copyleft 許可證還牢牢占據上風,有 59% 的使用率,而寬松型許可證的使用率僅為 41%。?
寬松型許可證大行其道,開源項目創建者的意志起了決定性的作用。近年來,互聯網科技企業成為了開源項目的主要創建者,而不再是個人。使用 Copyleft 許可證,就意味著失去自己的私有軟件的控制權,從商業角度出發,限制較少的寬松型許可證是企業的最佳選項。對用戶限制越少,對自己也就越有利,企業本身就是最大的用戶。?
MIT 許可證及 Apache 2.0 許可證 ,就是典型的寬松型許可證。2020 年,使用 MIT 許可證或 Apache 2.0 許可證的開源項目超過一半,其中不乏一些備受矚目的開源項目。例如,Ruby on Rails、jQuery 和 Angular.js 使用 MIT 許可證,Kubernetes、TensorFlow 和 Swift 首選 Apache 2.0 許可證。事實上,所有 ASF 項目——其中一些被廣泛使用——都在 Apache 2.0 許可下。?
用戶也選擇以寬松型許可證授權的開源組件,這樣可以最大限度地減少法律部門對開源許可證合規性的挑戰。而針對許可證不符合企業要求的開源項目,已經有不少企業制定了黑名單,禁止開發人員引用相關代碼,從而避免風險。比如,Google 就禁用了以 AGPL 授權的軟件。AGPL 是 Copyleft 許可,其中一條特別規定是,即使軟件被運行在向公眾提供服務的服務器上,那么該軟件的任何修改也必須開源。?
總之,為了保證商業自由,企業做出了使用寬松型許可的選擇,無論是作為創建者的角色——將軟件開源,還是作為使用者的角色——引入開源軟件,更遑論作為貢獻者的角色提交代碼了。?
商業自由的“度”?
站在自由軟件之父 RMS 的角度,將自由軟件代碼用于專有軟件,就是在剝奪了用戶使用、學習、修改軟件的自由;站在 OSI 的角度,將開源軟件代碼用于專有軟件是符合開源精神的,這是在保護用戶基于任何目的使用軟件的自由,哪怕是將代碼用于專有軟件。OSD 規定,開源許可不得歧視個人或團體,不得歧視任何領域。企業用戶也是用戶,商業自由也是自由。?
當開源許可證成為商業自由的保護傘,一視同仁對待所有用戶時,就有人開始不滿。尤其是不少開源軟件創建者,從選擇許可證開始,盡可能地讓自己擁有更多權利,盡可能地限制他人的自由,從而保護自己的利益。?
歷史上不是沒有發生過這種事。網景最初開源 Mozilla 項目,就是采用了自己制定的 Netscape 公共許可證,其最顯著的特點是它給予了 Mozilla 的原始開發者,也就是網景它自己,有權分發后續及衍生軟件,其他貢獻者卻不可以,最后結果證明了這條路根本行不通。?
隨著 SaaS 交付模式日益流行,使用與貢獻不對等的情況變得嚴峻。云服務供應商依托開源軟件大舉盈利,卻不需要貢獻任何代碼,在這種情況下,無限制地放開商業自由,就是對開源廠商的傷害。貝恩資本的 Salil Deshpande 曾表示:“需要明確的是,這并不違法。但我們認為這是錯誤的,不利于可持續的開源社區?!?
為解決這一問題而誕生的開源許可證—— AGPL 曾被寄予厚望,但由于它的限制條件有些模糊,比如“用戶通過網絡進行交互”可以延伸到什么程度沒有具體說明,且它是強 Copyleft 許可證,最終被部分開源廠商拋棄。?
不能沒有商業自由,但又不能無限制地放開商業自由,商業自由的“度”在哪里??
面對云服務供應商的“吃白食”行為,有廠商在發布開源項目時,在許可證之外,還會添加限制條款。Nebula Graph 是一款開源的分布式圖數據庫,基于 Apache 2.0 許可證分發。不久前,開源廠商 Nebula Graph 為了防止云服務供應商從項目中獲利而不作出回報,在項目中加入了 ?Common Clause 1.0 條款。不過在 ASF 的要求下,Nebula 團隊最終移除了該條款。?
也有很多開源廠商直接變更許可證,以防止云服務供應商從他們的代碼中構建服務。今年 1 月,Elastic 公司宣布,把根據 Apache 2.0 許可授權的 Elasticsearch 和 Kibana 源代碼變更為雙重授權許可模式,即 SSPL+Elastic 許可。?
SSPL 是 MongoDB 在基于 GPL v3 的基礎上,面向服務器端制定的許可證。該許可證雖然允許用戶使用及修改產品源代碼,但有一個基本要求,就是在該協議下,如果企業將產品作為服務對外提供,則必須同時提供“服務源代碼”。所謂“服務源代碼”,是指程序或修改版本的相應源代碼,以及用于提供此服務的軟件源碼,包括但不限于管理軟件、用戶界面、應用程序接口、自動化軟件、監控軟件、備份軟件、存儲軟件和托管軟件,所有這些讓用戶可以使用可用源碼運行服務實例。而 Elastic 許可則更加嚴格,直接禁止將軟件作為托管或托管服務提供給第三方。?
除此之外,Confluent、MongoDB、Cockroach Labs、Redis Labs、Timescale 和 Graylog 等,也都從 OSI 批準的開源許可轉向非“開源”的許可。?
如果一個軟件限制云廠商使用,那還能算是開源軟件嗎?當然不算。根據 OSD 第六條,不得歧視任何領域,這就表示,不讓商用,不讓云服務用,這些行為都是禁止的。把云廠商排除在外的許可證,不是 OSI 所認可的開源許可證。沒有采用開源許可證的軟件自然也算不上開源軟件。對于 SSPL,OSI 就明確表示,它不是開源許可證,因為它實際上剝奪了用戶權利。?
面對開源廠商的相繼出逃,開源還應該堅持無限制地放任商業自由嗎?如果不限制,那么誰來為貢獻者的勞動成果買單?企業的角色注定了,開源對它而言,不會是一項只求付出,不求回報的活動。?
如果能夠找出讓貢獻者和使用者之間平衡的點在哪里,或許就會知道,開源能夠允許的商業自由的“度”在哪里。從云計算上升的發展勢頭來看,這個問題將會成為長期爭議的焦點。
參考資料:?
1、https://sourcecodecontrol.co/sspl/?
2、Producing Open Source Software:How to Run a Successful Free Software Project?
3、https://www.whitesourcesoftware.com/resources/blog/open-source-licenses-trends-and-predictions/?
4、https://www.peterchen.vc/kai-yuan-xiang-mu-shang-ye-hua-de-li-nian-he-lu-jing-light-view/?
5、https://blog.timescale.com/blog/how-open-source-software-makes-money-time-series-database-f3e4be409467/?
6、https://firstmonday.org/ojs/index.php/fm/article/view/1211/1131?
7、https://www.mongodb.com/licensing/server-side-public-license?
8、https://www.elastic.co/cn/licensing/elastic-license
往期精彩回顧
送書?|?總也學不會 Linux 命令行?
有獎問答|聊聊?Apache Doris 的性能優化實戰技巧
2022 年是 Linux 桌面年嗎?
覺得不錯,請點個在看呀
總結
以上是生活随笔為你收集整理的开源与自由 | 商业自由:从边缘到核心贡献的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 使用 Dapr 缩短软件开发周期
 - 下一篇: Natasha 4.0 探索之路系列(一