
Is Open Source Eating the World?
(多謝 Dominic Alves 提供的題圖! CC BY 2.0)
“軟體正在吞沒整個世界”的說法最先見於2011年。2015年,開源軟體替代了這個位置。
“如果這個理論推開來,軟體吞沒世界,那麼開源軟體將取代之,對嗎?”2015年初福布斯還不確定地試探道。 但到年底他們就非常自信地發文”開源軟體確實正在吞沒整個世界”。
這不是一個聲音發起的運動。《連線》發表文章如,今年開源軟體如火如荼。充滿了引用,如:”這不僅僅是一個轉折點,更是一個引爆點,”GitHub 帶頭大哥 Brandon Keepers 說。
這也多次出現在各類會議中,如 Defrag2015 之類。我參加了一個題為”開放平台和策略——為什麼你應該開放平台”的演講。在那裡我聽到很多強大的猜想,例如:在大約五年內大部分產品將在 GitHub 之類的開放平台上開放源碼。
開源軟體會霸佔這個世界嗎?將來所有的許可證都會是 GPL,MIT,Apache 之類的嗎?當然不是。Linux,網景和 Apache httpd 都在開源基金會裡等了很長時間了。
如果是這樣的話,為什麼2015年會有如此湧動的激情?
git commit -m “改變了什麼”
預測未來是徒勞的。這一點,Philip Tetlock 通過實驗研究證明那些專家”大約和扔飛鏢的黑猩猩一樣準確”。
因此,預測了解自由/開源軟體的未來可能會使我們誤入歧途,讓我們看看現在正在發生些什麼。我的論點是,開源和閉源一直是一種互補的關係。我們現在看到的趨勢在很大程度上是從開放與封閉的聖戰裡走出來的贏者。
混合的組織方式是主流
開源軟體是主流。蘋果可以說是最封閉的公司,開源了 Swift。微軟開源了 Visual Studio、.Net 和最近他們的 JavaScript 引擎 Chakra。谷歌、Facebook、甚至 NSA 也將其項目通過 GitHub 託管並開放源碼。
然而,許多這樣的組織也從根本上閉源。為什麼會混合起來搭配呢?Joel Spoelsky 給了我們一個解釋,他在2002年關於互補市場的論文中說到:
“當一個產品的互補品的價格下降,它的需求就會增加。一般來說,一個公司的戰略利益是讓他們互補產品價格盡可能低。”
比免費更好是什麼?Sun Microsystems 放開 Java,因為他們的主營業務是銷售服務器。你在構建一個很酷的 Java 應用程序後需要什麼?當然是要一個在服務器上運行它。
抽象表達主義
我們的朋友 Joel 也在最近的一條 a16z 播客上表達了開源的其他好處:
“我們現在編碼的系統比過去複雜一百萬倍。(……)今天只用一行代碼,你可能會完成接受和處理信用卡。(……)作為程序員,我們的力量更強大了。”
軟體佔領的領域越大,這個世界就會變得更加互相通聯。開發也會變得更加複雜。自由/開源軟體是一個開啟所有的複雜性的方式。
如果我們相信隨著時間的推移熵不斷增加,那麼我們可以做出這樣一個預測,如果開源能有效減緩熵增加,那開源的採用率將隨著熵的增加而增長。
值得注意的是,這個模型中 Twilio、STripe、和他們的弟兄是一個明顯的問題。他們關閉了 SaaS 產品,也做了大量消除複雜性的工作。問題是,很難在多個方面說明開放和封閉的解決方案哪個是”勝者”。
急需急需 HIPAA(簡化方案)
Stripe, Twilio 和其他類似的公司都推動開源,但是所有上述公司都提供區別於開源的閉源服務。這是為什麼?
閉源服務提供類似與 PCI 標準的服務,不用調用註冊,HIPAA 甚至提供易學好記得功能,你只需關注自身業務邏輯。現在越來越多的公司願意支付費用使用閉源服務,從而減少負擔,避免讓人頭痛的集成問題。
我堅信這種情況不會改變。以閉源服務提供的優秀封裝為依託,將會更好的實現自身公司業務。隱藏瑣碎細節,提供實用功能。閉源服務善於化繁為簡。
FOSS 支持者被替換為中立者
開源是成熟,這是個謬論. 經常看到如下宣言”再也不會有下一個紅帽(Ret hat)”。a16z的 Peter Levine 說的如果開源是一個商業選項,它通常不是市場上最有效的方案。
收入很重要. 任何產品都需要支撐. 它(某開源軟體)是否會繼續開發和維護?Satirical Twitter 擔憂道:

I think I’ve had milk last longer than some javascript frameworks
“我認為一些 JavaScript 框架的存活時間還不如一瓶牛奶”
同樣,FOSS 的主要原則正在產生問題。記得心臟滴血問題嗎(HeartBleed)? Jeff Atwood 肯定記得. 他利用該問題反駁
林納斯定律(Linus’ Law 是計算機軟體開發者熟悉的開發測試定律之一), 該定律被強制放入到 Cathedral and the Bazaar(該書介紹了開源軟體的模型)中.
李納斯定律說,”只要看足夠長時間,所有的Bug都會被發現”。換句話說,開源軟體不應該有災難性的 Bug。因為有足夠的人公開審查代碼,只有些小 Bug 可能會溜過去。
阿特伍德回應說:
然而,Heartbleed SSL 脆弱性是李納斯定律的一個轉折點,這是一個開源軟體的嚴重錯誤導致的災難性的漏洞。災難性有多大呢?它影響了大約18%的世界上所有 HTTPS 網站,並允許攻擊者查看所有這些網站的流量,還未加密…而且已經兩年了。
哎喲。阿特伍德的當前企業 Discourse.org 是一個100%開源的產品。他顯然對自由/開源軟體很有信心。它只是受到了一個現實的世界的磨練而已。
易用性
GitHub 是開源的港灣。在它上面,寫作和共享代碼變得容易得多。業餘愛好者能夠提高文檔,即使他們不能代碼。通過 Pull request 專家很容易分享和指導。
分佈式版本管理系統(git)取代集中式版本管理系統(svn)對自由/開源軟體有如此大的影響,這是一件很詩意的事情。你想解決一個問題嗎?先去看看 GitHub 上有沒有解決方案。
任何理智的商業都會愚蠢的忽略開源。但是,GitHub 如何賺錢?通過出售私人存儲庫。其中大量都是閉源的。甚至 GitHub 也是在這個遊戲中。
未來不是一個純粹的開源仙境。而是一個將開源和閉源結合起來的拼綴圖。
都來一點才是美麗的
開源和閉源軟體之間沒有永遠的衝突。微軟曾經是閉源的正義鬥士。如果你是一個老兵,你仍然可以讀到他們之間戰爭的故事。
今天,微軟完全順應自由/開源軟體的潮流。像許多其他公司一樣,他們開發大量的閉源項目的同時參與開源。嘿!這同樣也是諷刺之處。我們喜歡開源的解決方案,如 Docker,Golang,Rails。我們又依賴於 Slack 等閉源的解決方案。
現代企業需要充分擁抱兩個世界。谷歌,Facebook,和 Uber 是這個開明的做法的成功例子。他們證明可以利用開放源碼,無需讓你的午餐被偷走了。
聖戰已經結束。開源和閉源的競爭也需要結束。
轉載請註明:開發者關係 »