开源是如何再次改变世界的?
Matt Asay是 Amazon Web Services 的负责人,曾任 Adobe 开发者生态系统的负责人。他是开源促进会(Open Source Initiative,OSI)荣誉委员会成员,拥有斯坦福大学的法学博士学位,主要研究开源和其他知识产权许可问题。在开源二十周年之际,他用饱含激情的文字,回顾了开源第二个十年发生的巨大变革。
我们将总结开源的又一个十年,这是一段多么漫长又奇特的旅程。回顾2009年的那些预测,你找不到哪怕一丁点暗示能够告诉我们:GitHub将永远改变每一个人的软件开发模式;微软会从开源界的贱民摇身一变成为全球最大的开源贡献者;还有其它许许多多并不寻常的事情,在十年之内戏剧性地变成了寻常。
十年之后,我们都变成了开源人。让我们回顾一下是哪些重要的开源创新,把我们带到了这里。
有云有未来
确实,2010年前开源就已经登上新闻头条了,不过内容大多是“免费软件”和“开源”的信仰之战,或是与Linux的官司纷争。为了使用开源软件,你仍然需要打电话给IT部门要求提供服务器,如果办公桌底下正好有一个备用服务器,那属于运气爆棚。云的出现立刻改变了这一切——开发人员无需向IT申请就能运行他们的开源代码了。正如开源将开发人员从购买/许可审批中解脱出来一样,云让开发人员摆脱了硬件的限制。
然而,云仅仅是使能者。正如Corey Quinn(译者注:Duckbill Group首席云经济学家。Duckbill Group是一家专门为企业优化AWS云部署成本的咨询公司) 所强调的,现在基础设施已经变成“开源”了。但这并非因为云本身就可以在开源许可下获得:“它可以运行在云上,但我可以从GitHub上获取Terraform计划或无服务器配置,立刻就能运行或测试它。”开源许可和对云硬件的轻扫式访问,大大提升了开发人员的生产力,这一情况在2010年初就初露端倪(毕竟2006年AWS才刚刚启动),但直到十年之后大家才意识到。
天命所归是Git
Tobie Langel(译者注:UnlockOpen的创始人,开源战略家。UnlockOpen是一家帮助企业对开源进行战略性思考的咨询公司,其客户包括Google、MicroSoft和Intel等顶级公司) 表示:“过去十年,开源界最大的事件是GitHub引入了拉取请求(pull request)。”在云的赋能下,“GitHub让开源变得触手可及,并将协作环境的门槛降低了一个数量级。”协作一直是开源承诺的核心,但直到GitHub解锁了编码的社交层面,才得以真正实现。
正如Michael Uzquiano(译者注:Cloud CMS的创始人兼CTO,多个开源项目的创始人和contributor) 所说:“我们以前就有版本控制,但GitHub/Lab让一切变得真正简单,任何人都可以轻松地复刻(Fork)代码,尝试想法并贡献回来。comment、issue、approval,这一切真正兑现了代码开放的承诺。” Git并非诞生于近十年,但就像云一样,直到2010年代才真正繁荣起来。
Docker和容器革命
像版本控制和Git一样,容器并非是2010以后的新造词。实际上,容器的想法最早可以追溯到1979年Unix中的chroot命令(当然种子在更早的时候就播下了)。但是,正如Steven Vaughan-Nichols(译者注:著名技术记者,曾被评为2019年度顶级云计算作家) 断言的那样,是Docker让容器真正焕发了生机:“是Docker,更确切地说是Docker技术,将容器从一项鲜为人知的技术变成了当今软件使用方式的中流砥柱。它改变了一切。”
改变了一切?是的,至少改变了企业的应用程序开发模式,而且并非是因为它为尝试虚拟化提供了一些很酷的新方式。Gordon Haff(译者注:Red Hat的技术传播者,并参与制定Red Hat完整的云解决方案战略) 解释说:“Docker/Kubernetes之前的容器仅仅是又一种分区技术。”真正的魔力始于Docker改善了开发人员的体验,他继续说道,“就像滚雪球一样”,从而彻底重塑了CI/CD管道(译者注:Continuous Integration/Continuous Delivery,持续集成/持续交付 ) 等。十年前,还没有人听说过Docker和Kubernetes,但2019年10月,超过13000人出席了KubeCon2019大会,一起探索由Docker帮助建立的现代应用世界。
数据科学砥柱中流
大数据一直是“我们其他人”(即除了Google的其它公司)的梦想。2010年之前,我们看到了为实现这一目标而付出的许许多多的艰苦努力。我们在1970年代就有了数据市场(data marts),稍后又有了商业智能(Business Intelligence),甚至Roger Magoulas创造“大数据”一词也早在2005年。但这些都没有真正预测出数据量会达到多大、数据科学家和数据工程师会有多重要,直到近十年来见证Apache Hadoop(创建于2008年)盛行起来,又很快被NoSQL数据库和其它开源基础设施的浪潮所取代。
如今,用来存储和流处理大体量数据的基础设施基本都是开源的。无论是处理非结构化数据更方便的MogoDB等现代数据库,还是用于移动数据的Apache Kafka等各种工具,开源让现代数据科学成为可能,而几乎所有这一切都发生在近十年。
此外,我们用来分析数据的工具也逐渐开源化。实际上,很多工具(如TensorFlow)从第一天起就开源了,而不是来自试图让自己逐渐不受欢迎的数据分析工具起死回生而孤注一掷的专业供应商。Python专家Matt Harrison表示,Numpy和Scikit-learn已经变得“无处不在”。而这两者在2010年都还没出现。正如Jacob Redding(译者注:开源项目领导者,埃森哲Master Technology Architect) 所言,开源已经成为世界发展的核心,“如果没有Pandas、Scikit、Jupyter和整个R的世界,数据科学就不会像今天这样壮大。”当然,所有这些都是开源的,这为任何想尝试新技术的人降低了门槛。
编程语言 的开源
还记得闭源编程语言的时代吗?看起来过去的十年为这样的时代永远关上了大门,即便是苹果也不得不向开源运动低头,并以开源的方式发布了Swift。与此同时,一大批Java框架(如Node.js、Angular、React、Vue等等)在这个语言和框架创新的狂热阶段涌现了出来(当然也有消失的)。实际上,除了Java框架的世界(已经远大于最初为浏览器设计时的构想),我们还看到了一大批新的低级语言的崛起,比如Go、Rust和WebAssembly。
Rich Sharples(译者注:Red Hat产品管理高级总监) 认为,尽管Java向开源的“持续进军”早在2010年前,但OpenJDK的发布为这门语言持续注入新动力,让这一势头在过去十年中始终强劲。然而,展望未来,Danese Cooper(译者注:InnerSource Commons Foundation主席、NearForm副总裁特别顾问、Apache软件基金会成员) 指出,即将到来的最高法院对Google和Oracle的Java版权案的复审将带来巨大的不确定性,其影响堪比当初SCO对Linux未来的威胁。这关系到API版权的问题,当然,也关系到Java的未来。请保持关注。
十年大麻烦
有趣的是,尽管几乎参与了所有这些领域,但在Steve Ballmer领导下的这十年, 微软一直与开源持续斗争(虽然屡战屡败)。然而,将时间快进到2020年,事情却发生了巨大的变化,微软从开源最激烈的反对者(声称“开源是癌症”)变成了开源最大的贡献者之一。如今,很多开发者用开源的Visual Studio Code作为代码编辑器,用开源的Type创建web应用,用GitHub存储代码。这些都属于微软。
也许该在此处停笔了。这十年发生了太多的事情(我们甚至还没有说到开源的Android如何赋能大部分移动设备,或者Let’s Encrypt对证书颁发机构行业的影响,或者开源在机器学习领域的前沿应用等),但我们还有很长的路要走。微软的蜕变提醒我们,组织和行业不能一成不变,拥抱开源才符合我们自身的利益。鉴于过去十年的变幻莫测,我不敢预测未来十年将会如何,但唯一肯定的是:它一定会包含更多的开源。