从早期开始,源代码的可用性就是开源软件的定义性特征之一。实际上,Apache 网络服务器项目的 Brian Behlendorf,作为早期开源软件的成功案例,赞成“源代码可用的软件”。
另一个重要方面与用户权利有关。因此,出现了 Richard Stallman 的 GNU 宣言和 GNU 通用公共许可证 (GPL) 中提出的“自由软件”术语。正如简而言之,自由是关于自由,而不是价格。 Christine Peterson 后来提出了“开源” 作为一种替代方案,以避免经常在这两种自由含义之间产生的混淆。而这个术语是当今使用最广泛的。
这些和其它历史背景仍然影响着今天许多人对开源的看法。开源的起源应该仍然为今天的开源思考提供信息。但它也不应该过度限制这种思考。
有了这些背景知识,以下是一些开源不是什么,或者至少对于开源的核心以及其发展方向来说并非至关重要的方面。
开源不是许可证
许可证作为一种法律概念仍然是开源软件基础的重要组成部分。但是,尽管最近在这个话题上引起了轩然大波,许可证在很大程度上已经不再是像以前那样中心的话题。人们普遍理解,从像 GPL 系列这样的 copyleft 许可证到像 Apache、BSD 和 MIT 许可证这样的各种免许可许可证,都各有优缺点。
今天的项目倾向于基于实际考虑选择许可证——新项目普遍更多地使用免许可许可证。鉴于人们普遍认识到 开源定义 (OSD) 已被现有许可证选项充分覆盖,因此新开源许可证的激增也已基本消退。
(OSD 和开源促进会 (OSI) 维护的一系列批准的许可证,是构成开源软件许可证的普遍接受的标准。核心原则包括自由再分发、提供获取源代码的途径、允许修改,以及不禁止任何人出于任何目的使用该软件。)
开源不是一个流行语
文字很重要。
开源软件因多种原因而受到用户欢迎。他们可以免费获取软件并根据需要进行修改。他们还可以购买商业产品,这些产品打包了开源项目,并在生命周期内为它们提供支持,这对于许多企业生产部署来说是必需的。
许多开源软件用户也认为它是获取上游社区项目中所有创新成果的好方法。
换句话说,“开源”一词带有普遍积极的氛围。
但是,根据前面提到的 OSD,“开源”也有明确的定义。因此,如果你的许可证和软件实际上不是开源的,你就不能只是贴上一个开源标签就称之为开源。好吧,没人能阻止你,但他们可以指出你的错误。带有开源标签的专有软件不会为你或你的用户带来任何开源方法的优势。
开源不是查看代码
获取和查看开源代码的能力是开源定义固有的。但查看并不是有趣的部分。
如果我写了一些东西,并以开源许可证将其发布在公共仓库中,然后就此结束,这不是一个很有趣的行为。有可能仅仅代码本身就具有足够的价值,以至于其他人会 fork 该软件并用它做一些有用的事情。
然而,在大多数情况下,如果我不邀请贡献,或者不努力围绕项目和代码库形成社区,它就不太可能获得关注。而且,如果没有人在查看代码,那么是否有可能这样做真的重要吗?
开源不是一种商业模式
经常听到人们谈论“开源商业模式”。我将稍微吹毛求疵地争辩说,根本没有这种东西。
并不是说开源不与商业模式交叉并影响商业模式。当然,它确实如此。最明显的是,开源往往会排除那些完全或很大程度上依赖于限制访问未以某种方式购买的软件的商业模式。
反之,参与上游开源社区可以创造原本不存在的机会。例如,公司可以与竞争对手分担编写通用基础设施软件的工作,同时专注于他们认为可以增加独特价值的业务领域——如果你愿意,可以称之为他们的秘方。
然而,我认为,将开源本身视为一种商业模式是错误的框架。它将注意力从根据可持续的公司目标和差异化来思考商业模式上转移开。
开源是...
这引出了开源的一个关键方面,因为它已经发展成为软件领域如此重要的组成部分。
开源保护用户自由,并为用户提供战略灵活性,使其能够在一定程度上转换供应商和技术,这在专有软件中很少有可能。这是理所当然的。
开源也已成为协作软件开发的绝佳模型。
但是,充分利用该模型需要拥抱它,而不仅仅是采用一些肤浅的表象。
今天,创建和执行在很大程度上依赖于开源软件的商业模式是否存在挑战?当然。但即使大型云提供商可以说已经提高了难度,这些挑战也一直存在。而且,真正地,建立可持续的软件业务从来都不是一件容易的事。
开源软件正日益成为大多数软件业务不可或缺的一部分。这一事实带来了一些新的挑战。但也开启了新的可能性。
观看:戈登·哈夫和斯彭德·克鲁姆讨论这个话题 IBM Think 2019
2 条评论