Categories
程式開發

開源是如何改變世界的?


“開源”一詞於 1998 年提出,之後不久,開源的定義被創建和確認,開源促進會 OSI 開始發起“開源運動”對其廣泛傳播,自茲開始了開源激盪二十年。第一個十年,開源給世界帶來改變是毋庸置疑的,開源變得無處不在,並成為互聯網和Web 的基礎,為我們日常使用的電腦和移動設備,以及它們所連接的網絡提供“動力”。那麼,第二個十年,開源又給世界帶來了什麼樣的改變呢?今天,我們來看看開源的第二個十年,你會發現,沒有開源,很多東西不會拓展如此之快,甚至都不一定會被創造出來。

這十年來最大的開源創新,從 Git 和 Docker 到數據科學和雲計算。

開源的又一個十年即將結束了。這是一次多麼漫長而又奇怪的旅程。讓我們回顧在2009 年人們所做的預測,沒有人知道,GitHub 會永遠改變軟件開發的方式(對每個人來說都是如此),也沒有人知道,Microsoft 會從開源界的賤民搖身一變成為世界上最大的開源貢獻者,更沒有人知道,其他一些戲劇性的變化,在過去十年間會成為一種新常態。

隨著這十年的結束,今天,我們每個人都成了開源人。讓我們回首往昔,看一看帶我們走到今天這一步的那些最重要的開源創新。

多雲的未來

當然,早在 2010 年之前,開源就已經登上頭條新聞了。但彼時有關開源的新聞大多是“自由軟件”與“開源”之間的宗教戰爭以及針對 Linux 的訴訟。在那個時候,為了運行開源軟件,你仍然需要給 IT 部門打電話要求提供服務器(或者使用恰好就在你辦公桌下的備用服務器)。後來,雲計算改變了這一切。突然之間,開發人員不再需要從 IT 部門獲得“通行證”就可以運行他們的開源代碼了。正如開源將開發者從購買 / 合法審批中解放出來一樣,雲計算也讓開發人員擺脫了硬件固有的限制。

然而,雲計算只不過是一個推動因素。正如 Corey Quinn 所強調的那樣,基礎設施已經成為“開源”,但這並非因為雲計算本身在開放源碼許可下是可用的:“它可以在雲端上運行,但我可以從GitHub 獲取Terraform 計劃或者無服務器配置,然後啟動並運行一個程序,幾乎就能夠立即對其進行測試。”得益於開放源碼許可和對雲計算硬件的快速訪問,開發人員的工作效率得到了提升,而這種方式在2010 年初(畢竟AWS 始於2006 年)可能已經依稀可見,但直到十年之後人們才意識到這一點。

Git 一路走來

Tobie Langel 稱,“在過去十年中,開源界發生最大的事件就是 GitHub 引入了拉取請求(Pull request)”。他繼續說道,由於雲計算的推動,“GitHub 提供了開源的可見性,並將協作的競爭環境降低了一個數量級。 ”這種協作一直是開源承諾的核心。但直到 GitHub 解鎖編寫代碼的社交屬性時,這種協作才成為現實。

正如 Michael Uzquiano 所說:“我們之前也有過版本控制,但只有GitHub/Lab 真正做到了讓任何人都可以輕鬆地複刻(Fork)代碼,嘗試新事物並貢獻想法。而唯有註釋、問題和批准的實現,我們才能夠說,它真正兌現了代碼開放的承諾。” Git 並不是在過去十年裡誕生的,但是和雲計算一樣,直到2010 年代Git 才真正繁榮起來。

Docker 與容器革命

版本控制Git 一樣,容器也不是 2010 年後才出現的。事實上,容器的想法最早可以追溯到 1979 年的 Chroot(儘管種子早已種下)。但正如 Steven Vaughan-Nichols 所斷言的那樣,真正讓容器煥發生氣的是 Docker:“Docker,或者更準確地說……是 Docker 技術將容器從一項不起眼的技術轉變為當今軟件消費的主流。它改變了一切。”

是改變了一切嗎?是的。至少對於企業應用程序開發來說是這樣,而不是因為它是一種考慮虛擬化的新方式。正如 Gordon Haff 所解釋的那樣,“pre-Docker/Kubernetes 容器只是另一種分區技術。”真正的奇蹟始於 Docker 改善了開發人員的體驗,他繼續說,“事情就像滾雪球一樣,”從而催生了 CI/CD 管道 的徹底改造等等。而在十年前,還沒有人聽說過 DockerKubernetes。在上個月,就有超過 13000 人參加了 KubeCon 2019 大會,探索這個由 Docker 幫助創建的這個現代應用世界。

譯註: Chroot,誕生於 1979 年的 Version 7 Unix。 1982 年 3 月 18 日,Bill Joy 將 chroot 機制移植到 BSD 系統上,主要用於測試安裝和構建系統。 2006 年,Linux 內核中開發出 cgroups。 2007 年,被加到 Linux 2.6.24 版內核中。 2008 年,基於 cgroups,開發出 LXC,以及 Docker。應用 chroot,可以創建並運行一個隔離的虛擬軟件系統拷貝。

數據科學成為主流

大數據一直以來都是“我們”(即不是像 Google 那樣的公司)的夢想。在 2010 年之前,我們看到了人們為讓這一夢想成為現實的認真努力。自 20 世紀 70 年代以來,我們就有了數據超市(data marts),稍晚一些出現了商業智能(Business Intelligence),甚至在 2005 年,我們還看到了 Roger Magoulas 創造了“大數據”這個詞。但是,並沒有人真正預料到這些數據會有多麼龐大,以及數據科學家和數據工程師會變得有多麼重要,Apache Hadoop(創建於 2008 年)出現後十年,才迅速被 NoSQL 數據庫和其他開源基礎設施的浪潮所取代

譯註: 數據超市(data marts),又稱數據集市,是數據倉庫(Data Warehouse)的一種特殊形式。正如數據倉庫,資料超市也包含對操作數據的快照,便於用戶基於歷史趨勢與經驗進行戰略決策。兩者關鍵的區別在於資料超市的創建是在有具體的、預先定義好了的對被選數據分組並配置的需求基礎之上的。配置資料超市強調對相關信息的易連接性。

今天,用於存儲和流式大數據的基礎設施大多是開源的。無論是像 MongoDB 這樣更容易處理非結構化數據的現代數據庫,還是像 Apache Kafla 這樣用於移動數據的工具,現代數據科學都因開源而成為可能。這一切幾乎都發生在過去十年裡。

此外,我們用來分析數據的工具越來越多地成為開源。實際上,大多數工具(如 TensorFlow)從第一天起就是開源的,而不是來自專有供應商為試圖重振他們曾經鍾愛的數據分析工具日漸衰落的命運的孤注一擲。 Python 專家 Matt Harrison 表示,Numpy 和 Scikit-learn 已經變得“無處不在”。而這兩樣在 2010 年都還不存在。正如 Jacob Redding 所言,開源已經成為這個世界發展的核心。 “如果沒有Pandas、Scikit、Jupyter 和R 的整個世界,數據科學的規模就不會像今天如此之大。”當然,所有這些工具都是開源的,為任何想要嘗試新技術的人們降低了門檻。

開源編程語言

曾記否,編程語言是何時成為閉源的?過去的十年似乎永遠地關上了那個時代的大門,甚至 Apple 最終也屈服於開源運動,並以開源的形式發布了 Swift。與此同時,也湧現了大量 JavaScript 框架,如 Node.jsAngularReactVue 等,這是一個語言和框架創新的狂熱時期。實際上,除了這個 JavaScript 框架的世界之外(正如 Alberto Ruiz 所說,它們變得比原本應該構建的瀏覽器還要大),我們還目睹了一系列嶄新的低級語言的崛起,如 GoRustWebAssembly

Rich Sharples 稱,雖然 Java 早在 2010 年之前就開始了邁向開源的“繼續行進”,但在過去的十年裡,隨著 Java 的 OpenJDK 實現繼續為這門語言注入新的活力,這種勢頭不斷增強。然而,展望未來,Dansese Cooper 指出,即將到來的美國最高法院對 Google 侵權 Oracle Java 版權案的複審將產生巨大的影響,其影響就像 SCO 當年對 Linux 未來的威脅一樣大。因為,這關係到 API 的版權問題,也關係到 Java 的未來,請繼續關注。

過去十年的曲線球

有趣的是,雖然 Microsoft 幾乎參與了所有這些領域,但 Microsoft 在 Steve Ballmer 的領導下的這十年,仍然繼續反對開源。然而,快進到2020 年,“Microsoft 從最激烈的反對開源的倡導者(Ballmer 曾稱'開源是癌症')轉變成開源界最大的貢獻者之一”,這代表了一個巨大的變化,正如 Benoit Jacquemont 所言。今天,有許多開發人員使用開源的 Visual Studio Code 作為他們的代碼編輯器,使用開源的 TypeScript 來構建 Web 應用,使用 GitHub 來存儲他們的代碼,而這些都是 Microsoft 貢獻的。

在這過去十年來,發生瞭如此多的事情(我們甚至都沒有談及開源Android 如何賦能大部分移動設備,或者Let's Encrypt 對證書頒發機構產生的影響,或者開源在機器學習領域的前沿地位等等),但我們依然還需長途跋涉,“路漫漫其修遠兮,吾將上下而求索”。 Microsoft 的蛻變提醒我們,組織和行業並不是一成不變的,唯有擁抱開源,才符合我們的自身利益。鑑於過去十年的變化莫測,因此,我不敢妄自預測未來的十年,只能說,未來十年,肯定還會有更多的開源。

譯註: Let’s Encrypt 是一種證書頒發機構,通過自動化過程為傳輸層安全 (TLS) 加密提供免費且開源的 X.509 證書,已經獲得 Mozilla、Microsoft 等主要瀏覽器廠商的根授信。它極大低降低 DV 證書的入門門檻,進而推進全網的 HTTPS 化。

作者介紹:

Matt Asay,是Amazon Web Services 的負責人。以前曾是 Adob​​e 開發者生態系統的負責人。他是開源促進會(Open Source Initiative,OSI)榮譽委員會成員,擁有斯坦福大學的法學博士學位,在斯坦福大學主要研究開源和其他知識產權許可問題。

原文鏈接:

https://www.infoworld.com/article/3481661/how-open-source-changed-everything-again.html