开源技术 * IBM 微讲堂:Kubeflow 系列(观看回放 | 下载讲义) 了解详情

什么是开源?

开源软件是指公开发布的代码,任何人都可以根据自己的需要查看、使用或修改该代码。开发者将其代码发布在公共代码库中,比如 GitLab 或 GitHub 上的公共代码库,以便更多的人可以看到代码并与之交互。

理想情况下,如果某个人或一群人希望对其进行增强或改进,他们可以将自己的更改贡献给项目,通常是通过拉取请求的形式。

贡献代码的人被称为贡献者,而审核并批准代码库变更的人则被称为提交者

关于如何贡献代码以及如何开始使用核心技术,每个项目都有自己的规则。通常,一个项目会在 CONTRIBUTING 文件或 README 主体中描述如何做出贡献。毫无疑问,在开始做贡献之前,您应该查看项目的 “行为守则”(如果有的话),了解该社区的一些相关准则。

开源的范围

当您听到开源项目一词时,它指代的项目范围很广,代码库也大小不一,有可能很小,也可能涉及成千上万的贡献者和提交者。小型项目可以像工具一样简单,开发者为解决自己的问题创建了这种工具,其他开发者可能会发现这种工具很有用,因此发布于世,并配有良好的文档,看看是否会引起人们的注意。它可能有一个或两个主要贡献者和一个小的代码库。

像 Homebrew 或 Node-RED 这样的中型项目会有一些不同的公司或个人投资于该技术。而大型项目涉及数百个不同的公司,并且随着时间的推移,具有成千上万的提交者或贡献者。Apache Spark 就是这种规模项目的一个不错的例子。

某些开源项目会发展得非常之大,以致于它们下面还分为许多较小的项目,成千上万的公司和提交者通力合作,创造所有贡献者都能使用的技术。想一下 Kubernetes 以及这个生态系统下涌现的许多项目即使如此。

开源的力量

那么,为什么要开源?是什么让开源如此强大?

在 IBM,我们相信开源的力量在于围绕一个开源项目的社区。

当具有不同的背景、种族、多样的培训历史以及观点独特的开发者乃至公司围绕技术创造进行协作时,最终无疑会让代码更加丰富、更加安全、更具创新性。

这将会造福于所有人。

本文翻译自:What is open source?(2020-09-22)