GMTC北京站两周后开幕,58个议题全部上线,点击查看 了解详情
写点什么

开源是如何改变世界的?

2019 年 12 月 19 日

开源是如何改变世界的?

“开源”一词于 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 的负责人。以前曾是 Adobe 开发者生态系统的负责人。他是开源促进会(Open Source Initiative,OSI)荣誉委员会成员,拥有斯坦福大学的法学博士学位,在斯坦福大学主要研究开源和其他知识产权许可问题。


原文链接:


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


2019 年 12 月 19 日 08:001473
用户头像
刘燕 InfoQ记者

发布了 602 篇内容, 共 190.7 次阅读, 收获喜欢 1166 次。

关注

评论

发布
暂无评论
发现更多内容

11 组关系带你看清 JVM 全貌

田维常

JVM

看了这份阿里Redis笔记,以后出去redis的问题你随便问

Java成神之路

Java 程序员 架构 面试 编程语言

Vmware+Centos设置静态IP

千泷

数据结构与算法经典问题解析-Java语言描述

田维常

数据结构

UBI波场挖矿系统软件APP开发

开發I852946OIIO

系统开发

全面覆盖:Java面试266题—算法+缓存+JVM搜索+分布式+数据库等

Java成神之路

Java 程序员 架构 面试 编程语言

奋斗30天,苦心啃透java高级工程师面试1000题,涨薪10K很难吗?

Java成神之路

Java 程序员 架构 面试 编程语言

公安大数据:警务大数据分析系统解决方案

t13823115967

智慧公安

江苏智慧社区管理系统开发,智慧小区可视化服务平台

135深圳3055源中瑞8032

iOS面试基础知识 (三)

iOSer

ios 面试题 大厂面试 iOS面试 ios开发

安防小区管控系统建设,智慧社区智能化集成方案

t13823115967

智慧平安社区平台建设

vivo 微服务 API 网关架构实践

vivo互联网技术

微服务 微服务网关 API网关 Zuul2

为什么你成为不了团队核心成员

数据社

团队 七日更

优化PostgreSQL Autovacuum

PostgreSQLChina

数据库 postgresql 开源 优化

区块链商品溯源APP开发,深圳区块链应用开发公司

135深圳3055源中瑞8032

BATJ真题突击:Java基础+JVM+分布式高并发+网络编程+Linux

Java架构之路

Java 程序员 架构 面试 编程语言

年轻人不讲武德,乱用索引,你到底走了多少弯路?

比伯

Java 编程 架构 面试 程序人生

ETHERZ流动性挖矿系统软件APP开发

开發I852946OIIO

系统开发

厉害,GitHub上标星90.7K「Java学习+面试指南」学会互联网大厂随便选

Java成神之路

Java 程序员 架构 面试 编程语言

Code Shared & Review(20201214-20201220)

刘璐

详解Spring5+SpringMVC5+MyBatis3.X,同时整合Redis缓存+ActiveMQ+项目等

Java架构追梦

Java spring 架构 mybatis springmvc

全面到哭!阿里内部疯传Netty实战文档程序员必须人手一份

比伯

Java 编程 架构 程序人生 编程语言

Alibaba技术专家必知必会的Java技术知识点,掌握这些理论+实践+技术是你通往阿里的路

Java架构之路

Java 程序员 架构 面试 编程语言

关于代码重构的灵魂三问:是什么?为什么?怎么做?

华为云开发者社区

重构 代码 代码重构

淘宝|蚂蚁|菜鸟|盒马|滴滴|饿了么面经,已拿多个offer(Java岗)

Java架构之路

Java 程序员 架构 面试 编程语言

天天CRUD,被领导怼,我是如何从小公司菜鸡到阿里P8架构师?,首次分享Java程序员黄金五年进阶心得

Java架构之路

Java 程序员 架构 面试 编程语言

AlibabaP8架构师整理,283页的Java核心资料pdf文档,学会后月薪4W没问题

Java架构之路

Java 程序员 架构 面试 编程语言

业务重要?还是技术重要?

数据社

思考 团队 七日更

为了面试大厂,精选2020年大厂高频Java面试真题集锦(含答案)

Java成神之路

Java 程序员 架构 面试 编程语言

智慧警务大数据系统开发,智慧公安情报研判平台搭建

WX13823153201

智慧警务大数据系统开发

智慧公安动态大数据平台开发情报分析中心系统开发

135深圳3055源中瑞8032

Service Mesh的演化与未来

Service Mesh的演化与未来

开源是如何改变世界的?-InfoQ