首頁>科技>

在2019年的今天,自由和開源軟體已經著著實實的影響著我們的生活,從Web伺服器到資訊屏,再到每一個彈出廣告背後的挖掘演算法,幾乎與我們互動的每個計算機系統都至少有部分軟體來源於自由軟體。IT科技行業中,自由軟體更是催生了眾多初創公司,也促成了並全球歷史上規模最大的軟體收購(340億美刀IBM收購了紅帽)。

自由軟體是Richard Stallman(FSF基金會)帶給世界的禮物,它使我們以自己所能了解的方式的運作。從一開始,自由軟體是讓世界大吃了一驚。它的慷慨自由,讓有些企業不大習慣,不願意使用自由軟體。而且太過於太激進,太過於政治化,因此,又被改良而出現了"開源"軟體,隨之而來開源軟體便接管了整個世界。

但是開源世界近期開始出現了一些不和諧。在過去的一年中,Redis Labs,MongoDB和Confluent等公司相繼更改了其軟體許可,從開放原始碼許可改為更嚴格的條款,限制了軟體的操作面,他們是否還是開源軟體成了討論的焦點。

Redis Labs,MongoDB等公司認為,導致產生該問題的是由於現代的技術的進步,即託管軟體服務形態,該形態也被稱為"雲服務"。具體例項化就是Amazon AWS。Saas商和開源廠商的矛盾開始顯現。

雲服務的突起及衝突

MongoDB的公司一起開源" NoSQL"資料庫MongoDB而聞名。MongoDB的資料庫對於儲存非結構化資料(例如影象)非常有用,它可以處理這些非結構化資料和傳統資料型別。資料儲存在類似於JSON的文件中,而不是關係資料庫的列和行中。由於沒有結構化表,因此沒有用於處理資料的"結構化查詢語言",因此被稱為"NoSQL"。

MongoDB不是唯一的NoSQL資料庫,但它是使用最廣泛的一個。根據行業整合商DB Engines的資料,MongoDB是第五受歡迎的資料庫,從Google到Code Academy再到Foursquare的每個企業都在使用MongoDB。

MongoDB也在牽頭建立一種新型的開源許可證,其CTO Eliot Horowitz認為,隨著計算進入雲的新世界,這對於保護開源軟體業務是必要的。

Horowitz等人認為,雲服務化促使開源社群重新考慮並可能更新開源許可證,以"應對新環境中的新挑戰"。本質上,挑戰是AWS,Google Cloud和Microsoft Azure,它們都可以使用開源軟體,將其包裝為服務並進行轉售。AWS或Azure打包MongoDB並將其作為軟體即服務(SaaS)的一部分提供的問題在於,它隨後會與MongoDB自己的基於雲的SaaS(MongoDB Atlas)服務競爭。那麼,威脅的不是MongoDB的原始碼,而是從該原始碼派生的MongoDB自己的SaaS,而這恰恰是該MongoDB公司的主要收入來源。

為了抵禦對其潛在威脅,MongoDB已從Gnu通用公共許可證(GPL)轉移到所謂的伺服器端公共許可證(SSPL)。SSPL從本質上講,就是你可以使用此軟體做任何你想做的事,只是不能用它來構建與MongoDB Atlas相競爭的東西。

最初,MongoDB將SSPL提交給開源合作組織OSI,該組織負責監督和批准新的開源許可證。看到OSI批准無望後,MongoDB在今年早些時候有撤銷該提交。所以SSPL不是一個開源許可證,並且永遠不會。

開源許可證有很多變種,但是自1998年OSI成立以來的要旨通常有:你可以使用此程式碼並對其進行所需的操作,但是你不能使該程式碼專有,如果在其他專案中使用它,則該專案也不是專有的。這些許可證是通過這種方式編寫的,以防止有些公司利用開放原始碼,把開放原始碼打包到自己的程式碼中而不將所做的改進反饋給原始的開源專案。

但是由於SaaS的概念是今年內才出現的。Horowitz認為在SaaS產品中打包一段程式碼在現代意義上等同於在應用程式中使用它。這是一個新穎的論點,但它可以解決一個非常老的問題,而不僅僅是許可。這個問題早在OSI出現之前的免費軟體就存在:如果免費提供軟體,如何從軟體中賺錢?

一個傳統的答案是,圍繞開源軟體出售服務。但是對於Horowitz來說,這還不夠。他認為"通過支援合同使開源貨幣化從來都不是一種偉大的商業模式。" Red Hat可能會不同意這一觀點,但是Horowitz認為,更多保護性許可證將帶來更多風險投資,並基於MongoDB使用的開放模型產生更多軟體業務。他說:"我們很獨特,我希望我們不那麼獨特。"

他可能是正確的。更具保護性的許可證可能會吸引更多的風險投資,因為其投資回報的可能性更大。但是,如果確實有人要投這筆資金,它也不是投資於開源,因為對軟體的這種限制意味著它不再符合開源的定義。

開源堅守者觀點

相當多的開源擁護者已經對MongoDB和Horowitz的理念提出了反駁。

原始開放原始碼定義的合著者布魯斯.佩倫斯(Bruce Perens)說,SSPL與OSI的第九個開放原始碼定義不相容,該定義中"許可不得限制其他軟體"。由於SSPL強制將與涵蓋軟體整合在一起的所有SaaS軟體(而不是其衍生版本)強制為開源,因此該測試未通過。

MongoDB絕不是唯一一個抱怨受雲服務影響利潤的開源廠商。另一家資料儲存公司Redis Labs率先發出了有關雲提供商威脅其業務的警報,Redis Labs最終可能會有更好的解決方案。Redis Labs最初將其許可更改為包括一些通用條款的分許可(Common Clause sub-license),該許可禁止任何人出售其涵蓋的任何軟體。今年春天,Redis Labs進行了另一項許可更改,本質上放棄了所有開源軟體的偽裝,併為其某些模組採用了本地專有的許可。需要明確的是,Redis的大多數受三條款BSD許可的約束,但某些模組則不受其約束,包括RedisJSON,RedisSearch,RedisGraph,RedisML和RedisBloom。

Redis Labs適用於這些模組的許可證表示,儘管使用者可以檢視和修改程式碼或在其應用程式中使用程式碼,但許可證限制了他們可以構建哪種型別的應用程式。有了Redis Labs的新許可證,你就可以隨意構建所需的任何東西。但是不能構建資料庫產品,快取引擎,處理引擎,搜尋引擎,索引引擎或任何型別的ML或AI派生的服務引擎。換句話說,不能使用Redis Labs的程式碼與Redis Labs競爭。這明顯違反了開放原始碼許可的核心原則之一,即對派生軟體沒有任何限制。

對於Redis Labs和MongoDB而言,一邊申明你是開源的,一邊卻只允許自己從開源軟體賺錢,這是沒有道理的,只有專有軟體才會這樣做。

雖然有部分問題是還未明確,但確實有一些公司已經設法通過開源和專有程式碼獲得成功。Elastic就是這樣一個例。亞馬遜在AWS上提供了多年的Elasticsearch服務(表面上與Elastic自己的產品競爭),而且亞馬遜最近還打包了自己的Elasticsearch程式碼庫版本,將其擴充套件為免費提供的Elastic服務,但是並未開源這些服務的程式碼。Elastic對此也只是聽之任之。

歷史的教訓

為什麼MongoDB完全想要開源?有很多非常成功的專有軟體案例,為什麼不走專有軟體之路呢?

Horowitz認為"開源會帶來更好的系統軟體,尤其是資料庫",並繼續將安全性和社群性作為保留開源的優勢。在這兩方面,他都是正確的。對軟體的更多關注意味著更少的錯誤,更好的安全性。

實際上歷史上也有這樣的案例,先通過開源構建,然後又突然閉源導致開專案失敗。

Xfree86專案是在整個1990年至2000年代早期X Windows的事實上的執行標準。2004年,Xfree86開始釋出與GPL協議相悖的程式碼。使用Xfree86的下游作業系統認為這是不可接受的,因此誕生了一個分支Xorg。今天,Xorg曾經佔據Xfree86的位置,而Xfree86被廢棄了。

還有很多這樣的例子:LibreOffice是OpenOffice的分支,MariaDB是由於MySQL的許可證更改而產生的,Wireshark是因Ethereal而產生的,…,並且該列表還在繼續。

在所有這些情況下要注意的關鍵不僅是發生了Fork,而且新專案帶動了開發人員,社群和長期維持開源軟體的勢頭。失去開源社群的善意,在背棄方面可能很可怕的:Xfreeorg在Xorg開始六個月後實際上已經死亡。OpenOffice很快也變得無關緊要。

開源歷史的壓倒性教訓是,一旦你開源,就很難背叛並生存。

開源的宗旨

如果開放原始碼的歷史告訴我們沒有回頭路,那值得考慮。

Beanbooks是Linux計算機制造商System76衍生出來的一個小專案,被認為是理想的開源軟體方案的示例。在開源的新興經濟正規化中,公司的非差異化軟體是其開源軟體的最佳方案。也就是說,開源提供了業務的基礎結構,而不是核心。換句話說,Beanbooks不是System76的利潤中心,而是System76利潤中心的使能技術,該技術仍在構建基於Linux的計算機。System76的創始人卡爾·裡切爾(Carl Richell)認為成功的關鍵不是開源軟體,而是創新。他說:"差異化不是你今天要做的,而是前進的速度。"作為軟體開發人員,你將有一個良好的開端,並且希望對你的發展方向有所了解。Richell補充說:"唯一成功的方法就是保持領先。" "我認為許可證與許可證無關。"

Richell說:"如果開放原始碼中不包含慷慨的內容,那將行不通。"慷慨的,則是出於任何目的使用該軟體的權利。這一直是新開放許可證的基本試金石。

許可證是否限制了軟體的慷慨性?今天開源的地方在於它可以在任何地方,任何地方使用。

需要結合開源軟體和專有軟體嗎?沒問題。

需要重新編寫該開源庫,以便它可以與你的專有程式碼互動嗎?沒問題。

是否想要使用該開源庫,將其包裝為服務並出售?沒問題。歸根結底,這就是開源的意義:慷慨帶來自由。

軟體自動化和部署工具的Chef專案似乎會同意這個觀點。Chef計劃提供了相異於MongoDB和Redis的做法。今年Chef宣佈將其許可證更改為完全開源(根據Apache 2.0許可證)。"我們歡迎任何人出於任何目的使用和擴充套件我們的軟體,以符合自由軟體的四個基本自由" Chef執行長Barry Crist寫道。儘管Crist沒有提及任何其他公司,但除了對Redis和MongoDB的迴應外,很難將"四個基本自由"另有他指。

未來會是什麼樣

每個人都喜歡失敗者,Redis Labs和MongoDB希望將自己描繪成以AWS形式與邪惡勢力展開英勇戰鬥的開源失敗者。真是這樣麼?

Redis Labs和MongoDB都看起來仍然非常健康。 Redis Labs今年早些時候籌集了6000萬美元的資金,根據進行融資的公司,Redis看起來有望成功進行IPO。從所有方面來看,MongoDB在2017年的IPO取得了巨大成功。它的股票以24美元的價格首次公開發行,此後一直穩步攀升。今天,它的交易價格超過每股100美元。MongoDB最大的使用者之一Lyft在2019年轉向亞馬遜確實造成了一定的影響,但是在股價小幅下跌之後,MongoDB的股票又回到之前的水平。

兩家公司都沒有受到傷害,或者說至少目前還沒有。他們的許可證變更的後果還有待觀察,但是考慮到MongoDB的大部分開發都來自員工,因此無論它是否是開源的,它都可能很好。

兩者的命運與更大的開源範例的命運無關緊要。開源範例從來都不是適合所有人的設定。正如Perens在今年早些時候的一次對話中所說:"只要你不將其稱為開源,就可以使用所需的任何許可證,這是你的自由。但是開源隨附的某些權利卻沒有。"放棄這些保護商業模式是沒有道理的。"

  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 全球獨角獸:螞蟻金服以10000億估值排名第一,京東物流上榜