“开源”一词于 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 管道 的彻底改造等等。而在十年前,还没有人听说过 Docker 和 Kubernetes 。在上个月,就有超过 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.js 、 Angular 、 React 、 Vue 等,这是一个语言和框架创新的狂热时期。实际上,除了这个 JavaScript 框架的世界之外(正如 Alberto Ruiz 所说,它们变得比原本应该构建的浏览器还要大),我们还目睹了一系列崭新的低级语言的崛起,如 Go 、 Rust 和 WebAssembly 。
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 的负责人。以前曾是 Adobe 开发者生态系统的负责人。他是开源促进会(Open Source Initiative,OSI)荣誉委员会成员,拥有斯坦福大学的法学博士学位,在斯坦福大学主要研究开源和其他知识产权许可问题。
原文链接:
https://www.infoworld.com/article/3481661/how-open-source-changed-everything-again.html