作为一名使用开源软件的开发者,你是否曾思考过开源软件是如何盈利?如何运营下去的?本文作者从正反两面给出自己看到的案例和建议,思考让开源软件持续下去的方式,一起来看看吧。
作者
TJVanToll
译者
香槟超新星,责编
伍杏玲
以下为译文:
作为一名软件开发者,你可能并不会意识到,对大多数人来说开源背后的商业逻辑完全不合常理。
比如说,几天前我与一个“普通人”的对话如下:
我:“对不起,我来晚了。今天工作忙的焦头烂额的”。
朋友:“没事没事。工作遇到什么问题了吗?”
我:“我们要在三个不同的JavaScript框架中选出一个用于项目开发,下周就Deadline了,所以必须尽快选择。”
朋友:“哦哦,明白了。哪个框架最便宜呢?”
我:“哦,它们都是免费的,不要钱。”
朋友:(°°)
在大多数行业中,你需要为能够帮助你完成工作的工具付费,但软件的世界里我们大多数人都能使用各种免费工具来搭建应用程序。
最受欢迎的文本编辑器?VisualStudioCode,免费。
最受欢迎的源代码管理提供商?Git,免费。
最受欢迎的JavaScript库?React、Angular、Vue以及其他竞争对手全部免费。
付费软件并不稀奇,但令人惊讶的是,仅仅在过去的几年中,我们就已经把很多重要的基础架构转移到了免费和开源的软件上。
这种向免费且开源的工具的转移对开发人员和整个软件行业都有极大的益处,但这种转变也带来了其他后果。在本文中,我将就其中的一种后果进行讨论:即一个有问题的经济模型和我们可以采取的措施都有哪些。
首先让我们先简要回顾一下,我们最终是如何获得今天这样的开源模型的。
开源是如何来的?
为了能让你体会到时代的变迁有多么巨大,我们来看下年代初期微软高管们说的话:
开源是对知识产权的严重破坏。我想象不到还有什么会比开源对软件业务和知识产权行业的伤害更大。”——前Windows主管JimAllchin
“历史证明,尽管这种类型的模型(开源)可能会占有一席之地,但对于建立一个大众化的市场,以及搭建面向消费者们的功能强大且易于使用的软件,这种模型并不成功。”——前微软高级副总裁CraigMundie
站在今天的角度来嘲笑这些言论很容易,但在当时这种观点并不能算得上是激进。到年,开源已经是一个已经立足并在逐步增长的概念了,但大多数公司主要还是选择使用付费方案来搭建应用程序。
我在软件行业的职业生涯始于年代初期,当时我的第一份工作涉及一个基于IBM的IDE,用于编写Java代码,一个付费的源代码管理方案(我倒宁愿不记得),以及一个托管我们的生产程序的IBM大型机。
IBM的RationalApplicationDeveloper,我在年代初期用过,直到今天这个软件还存在。
所有这些工具都需要花钱,很多钱,但这种支出被认为是可以接受的,因为这些工具提供了足够的价值,能够保障付出的成本是值得的。
在之后的十年中,业界慢慢地转向开源。公司越来越能够意识到,像MySQL和Apache这样的开源代码工具不仅是可行的,甚至比花大价钱买的商业产品更好。
我向开源转移的经验是关于Web的,与今天的Web相比,年代中期那时候的Web像是未经开发的蛮荒西部。Web开发人员的任务内容包括支持一堆令人眼花缭乱的浏览器,从最新发布的InternetExplorer7到古老的IE6,以及Firefox,开源浏览器开始挑战微软对浏览器市场的束缚。
开发人员搭建的旨在用来管理跨浏览器开发复杂性的工具包括Dojo、MooTools、jQuery以及许多其他工具等等。
年6月的jQuery主页
这些框架都采用了不同的方法,使用了不同的API,但它们都有一个重要的共性:免费以及开源。
更多成熟的开发生态系统,如Java,.NET等,在那时候面对开源的益处时还在纠结,但Web从一开始就是建立在免费且开源的软件的基础上。
这对像我这样的Web开发新手来说是个福音,因为这意味着我在家里就可以立马用Dojo和jQuery上手做点东西了,我在公司也可以开始使用它们了——我曾经习惯于掏钱来购买自己需要的软件工具。
不只有我一个人能立即抓住使用这些新库的机会。jQuery的使用率在年代后期激增,催生了一个庞大的jQuery插件生态系统,这些插件在jQuery的基础上添砖加瓦。这些插件中的绝大多数都免费且开源,因为到了那个时候,免费且开源已经成为了人们对所有Web框架以及插件的期待。
新一代的Web软件激发了许多开发人员(包括我自己)的灵感,并帮助Web变成现在。“所有软件都必须要免费且开源”的预期导致了当今开源界的一个困境:经济和资金结构方面是有问题的。
开源与经济学
在最开始时,开源项目是个人或小团体的兴趣项目,发展到后面免费分享给世界。这种现象在软件世界中很普遍,是很棒的一件事情。
但这并不意味着这些开发人员所做的工作%都是为了无私奉献。时至今日,人们参与开源项目的主要动力是为了自己的职业发展。例如,jQuery团队的前成员们现在很多都在大型科技公司中担任重要角色。MooTools的几个贡献者现在Facebook,从事React方面的工作。我曾参与jQueryUI两年,后来这段经历帮助我得到了今天在Progress的这份工作。
本来把职业发展作为参与开源的主要动力无可厚非,但当项目作者取得一定成功时,可能就会出现问题。因为事实证明,一旦你已经得到了自己想要的知名度,突然间就会觉得,处理那些GitHub的随机issues已经不再是你度过星期六晚上的理想方式了。
在这种情况下,许多开发人员会试图通过收集捐款来覆盖他们自己所花的时间和精力。例如,如果你回顾年的jQuery网站,请注意看,屏幕的左下方已经出现了一个捐赠按钮。
Dojo项目也从差不多那时候开始在网站上设置了捐赠选项。
如今,捐款通常是通过Patreon或某种形式的赞助来收集的,ESLint和Vue.js等项目就是这样。也许最臭名昭著的例子是流行的core-js库,在每次安装时都会显示一个公开的捐赠请求,这引发了一些争议。
感谢您使用core-js(