開源真的在蠶食整個(gè)世界嗎
"軟件正在吞沒整個(gè)世界"的說法最先見于2011年。2015年,開源軟件替代了這個(gè)位置。
“如果這個(gè)理論推開來,軟件吞沒世界,那么開源軟件將取代之,對嗎?”2015年初福布斯還不確定地試探道。 但到年底他們就非常自信地發(fā)文“開源軟件確實(shí)正在吞沒整個(gè)世界”。
這不是一個(gè)聲音發(fā)起的運(yùn)動(dòng)。《連線》發(fā)表文章如,今年開源軟件如火如荼。充滿了引用,如:“這不僅僅是一個(gè)轉(zhuǎn)折點(diǎn),更是一個(gè)引爆點(diǎn),”GitHub 帶頭大哥 Brandon Keepers 說。
這也多次出現(xiàn)在各類會(huì)議中,如 Defrag2015 之類。我參加了一個(gè)題為“開放平臺(tái)和策略——為什么你應(yīng)該開放平臺(tái)”的演講。在那里我聽到很多強(qiáng)大的猜想,例如:在大約五年內(nèi)大部分產(chǎn)品將在 GitHub 之類的開放平臺(tái)上開放源碼。
開源軟件會(huì)霸占這個(gè)世界嗎?將來所有的許可證都會(huì)是 GPL,MIT,Apache 之類的嗎?當(dāng)然不是。Linux,網(wǎng)景和 Apache httpd 都在開源基金會(huì)里等了很長時(shí)間了。
如果是這樣的話,為什么2015年會(huì)有如此涌動(dòng)的激情?
git commit -m "改變了什么"
預(yù)測未來是徒勞的。這一點(diǎn),Philip Tetlock 通過實(shí)驗(yàn)研究證明那些專家“大約和扔飛鏢的黑猩猩一樣準(zhǔn)確”。
因此,預(yù)測了解自由/開源軟件的未來可能會(huì)使我們誤入歧途,讓我們看看現(xiàn)在正在發(fā)生些什么。我的論點(diǎn)是,開源和閉源一直是一種互補(bǔ)的關(guān)系。我們現(xiàn)在看到的趨勢在很大程度上是從開放與封閉的圣戰(zhàn)里走出來的贏者。
混合的組織方式是主流
開源軟件是主流。蘋果可以說是最封閉的公司,開源了 Swift。微軟開源了 Visual Studio、.Net 和最近他們的 JavaScript 引擎 Chakra。谷歌、Facebook、甚至 NSA 也將其項(xiàng)目通過 GitHub 托管并開放源碼。
然而,許多這樣的組織也從根本上閉源。為什么會(huì)混合起來搭配呢?Joel Spoelsky 給了我們一個(gè)解釋,他在2002年關(guān)于互補(bǔ)市場的論文中說到:
”當(dāng)一個(gè)產(chǎn)品的互補(bǔ)品的價(jià)格下降,它的需求就會(huì)增加。一般來說,一個(gè)公司的戰(zhàn)略利益是讓他們互補(bǔ)產(chǎn)品價(jià)格盡可能低。”
比免費(fèi)更好是什么?Sun Microsystems 放開 Java,因?yàn)樗麄兊闹鳡I業(yè)務(wù)是銷售服務(wù)器。你在構(gòu)建一個(gè)很酷的 Java 應(yīng)用程序后需要什么?當(dāng)然是要一個(gè)在服務(wù)器上運(yùn)行它。
抽象表達(dá)主義
我們的朋友 Joel 也在最近的一條 a16z 播客上表達(dá)了開源的其他好處:
“我們現(xiàn)在編碼的系統(tǒng)比過去復(fù)雜一百萬倍。(……)今天只用一行代碼,你可能會(huì)完成接受和處理信用卡。(……)作為程序員,我們的力量更強(qiáng)大了。”
軟件占領(lǐng)的領(lǐng)域越大,這個(gè)世界就會(huì)變得更加互相通聯(lián)。開發(fā)也會(huì)變得更加復(fù)雜。自由/開源軟件是一個(gè)開啟所有的復(fù)雜性的方式。
如果我們相信隨著時(shí)間的推移熵不斷增加,那么我們可以做出這樣一個(gè)預(yù)測,如果開源能有效減緩熵增加,那開源的采用率將隨著熵的增加而增長。
值得注意的是,這個(gè)模型中 Twilio、STripe、和他們的弟兄是一個(gè)明顯的問題。他們關(guān)閉了 SaaS 產(chǎn)品,也做了大量消除復(fù)雜性的工作。問題是,很難在多個(gè)方面說明開放和封閉的解決方案哪個(gè)是“勝者”。
急需急需 HIPAA(簡化方案)
Stripe,Twilio 和其他類似的公司都推動(dòng)開源,但是所有上述公司都提供區(qū)別于開源的閉源服務(wù)。這是為什么?
閉源服務(wù)提供類似與 PCI 標(biāo)準(zhǔn)的服務(wù),不用調(diào)用注冊,HIPAA 甚至提供易學(xué)好記得功能,你只需關(guān)注自身業(yè)務(wù)邏輯?,F(xiàn)在越來越多的公司愿意支付費(fèi)用使用閉源服務(wù),從而減少負(fù)擔(dān),避免讓人頭痛的集成問題。
我堅(jiān)信這種情況不會(huì)改變。以閉源服務(wù)提供的優(yōu)秀封裝為依托,將會(huì)更好的實(shí)現(xiàn)自身公司業(yè)務(wù)。隱藏瑣碎細(xì)節(jié),提供實(shí)用功能。閉源服務(wù)善于化繁為簡。
FOSS 支持者被替換為中立者
開源是成熟,這是個(gè)謬論. 經(jīng)??吹饺缦滦?ldquo;再也不會(huì)有下一個(gè)紅帽(Ret hat)”。a16z的 Peter Levine 說的如果開源是一個(gè)商業(yè)選項(xiàng),它通常不是市場上最有效的方案。
收入很重要. 任何產(chǎn)品都需要支撐. 它(某開源軟件)是否會(huì)繼續(xù)開發(fā)和維護(hù)?Satirical Twitter 擔(dān)憂道:
“我認(rèn)為一些 JavaScript 框架的存活時(shí)間還不如一瓶牛奶”
同樣,F(xiàn)OSS 的主要原則正在產(chǎn)生問題。記得心臟滴血問題嗎(HeartBleed)? Jeff Atwood 肯定記得。他利用該問題反駁:
林納斯定律(Linus’ Law 是計(jì)算機(jī)軟件開發(fā)者熟悉的開發(fā)測試定律之一),該定律被強(qiáng)制放入到 Cathedral and the Bazaar(該書介紹了開源軟件的模型)中。
李納斯定律說,“只要看足夠長時(shí)間,所有的Bug都會(huì)被發(fā)現(xiàn)“。換句話說,開源軟件不應(yīng)該有災(zāi)難性的 Bug。因?yàn)橛凶銐虻娜斯_審查代碼,只有些小 Bug 可能會(huì)溜過去。
阿特伍德回應(yīng)說:
然而,Heartbleed SSL 脆弱性是李納斯定律的一個(gè)轉(zhuǎn)折點(diǎn),這是一個(gè)開源軟件的嚴(yán)重錯(cuò)誤導(dǎo)致的災(zāi)難性的漏洞。災(zāi)難性有多大呢?它影響了大約18%的世界上所有 HTTPS 網(wǎng)站,并允許攻擊者查看所有這些網(wǎng)站的流量,還未加密…而且已經(jīng)兩年了。
哎喲!阿特伍德的當(dāng)前企業(yè) Discourse.org 是一個(gè)100%開源的產(chǎn)品。他顯然對自由/開源軟件很有信心。它只是受到了一個(gè)現(xiàn)實(shí)的世界的磨練而已。
易用性
GitHub 是開源的港灣。在它上面,寫作和共享代碼變得容易得多。業(yè)余愛好者能夠提高文檔,即使他們不能代碼。通過 Pull request 專家很容易分享和指導(dǎo)。
分布式版本管理系統(tǒng)(git)取代集中式版本管理系統(tǒng)(svn)對自由/開源軟件有如此大的影響,這是一件很詩意的事情。你想解決一個(gè)問題嗎?先去看看 GitHub 上有沒有解決方案。
任何理智的商業(yè)都會(huì)愚蠢的忽略開源。但是,GitHub 如何賺錢?通過出售私人存儲(chǔ)庫。其中大量都是閉源的。甚至 GitHub 也是在這個(gè)游戲中。
未來不是一個(gè)純粹的開源仙境。而是一個(gè)將開源和閉源結(jié)合起來的拼綴圖。
都來一點(diǎn)才是美麗的
開源和閉源軟件之間沒有永遠(yuǎn)的沖突。微軟曾經(jīng)是閉源的正義斗士。如果你是一個(gè)老兵,你仍然可以讀到他們之間戰(zhàn)爭的故事。
今天,微軟完全順應(yīng)自由/開源軟件的潮流。像許多其他公司一樣,他們開發(fā)大量的閉源項(xiàng)目的同時(shí)參與開源。嘿!這同樣也是諷刺之處。我們喜歡開源的解決方案,如 Docker,Golang,Rails。我們又依賴于 Slack 等閉源的解決方案。
現(xiàn)代企業(yè)需要充分擁抱兩個(gè)世界。谷歌,F(xiàn)acebook,和 Uber 是這個(gè)開明的做法的成功例子。他們證明可以利用開放源碼,無需讓你的午餐被偷走了。
圣戰(zhàn)已經(jīng)結(jié)束。開源和閉源的競爭也需要結(jié)束。