Simon Hofmann 是开源 UI 自动化/测试工具 nut.js 的核心开发者和创始人。
近日他发表文章《I'm giving up — on open source》讨论了对开源项目可持续性和收费的看法。
Simon在博客中提到,他一直对开源项目持有积极的态度,但最终决定收费是因为他在开发新插件时投入了大量时间和金钱,并且遇到了一些不愉快的经历。他认为开源项目的维护者也应该得到应有的回报,而不应该被指责为追求金钱。他还表示,他将继续维护nut.js,但会对新功能和更新进行延迟发布,并且决定对部分功能进行收费。
以下为文章译文。
为什么?
自从我开始使用Linux以来,开源的理念就一直吸引着我。我自己几乎所有的作品都是开源的,而且如果我遇到可以改进的地方,我仍然在为我所使用的上游项目做贡献。
我第一次赞助开源项目是在十年前,当时我还在大学,因为我始终相信,如果一个项目对我来说有价值,那么它就值得支持。如果我沒有时间亲自为它做出贡献,至少我应该支持那些去做的人。
当然,有些人明确表示不希望任何形式的赞助,但如果他们愿意,我乐意帮忙。从事开源项目仍然是工作,如果你做得好,你应该得到回报。我也一直相信,如果你启动了一个对公司有价值的项目,他们会以支持你作为回报,至少我的公司每月赞助Verdaccio的原因是这样,以及我赞助我所依赖的库的维护者的原因也是如此。
基于上述的“天真”信念,我开始在Apache-2.0许可下开发nut.js,因为我认为如果公司和个体可以自由地使用我的软件,他们也会愿意反过来支持我。现在,在你开始评判我只为金钱而做这件事之前,你不认为全职从事开源项目并且还能支付账单听起来很棒吗?
那最后我成功了么?没有。我收到的只有抱怨。在起初,人们抱怨图像搜索插件被硬嵌入到nut.js的核心中,他们被迫使用特定兼容版本的node或Electron。
随后,他们又开始抱怨图像搜索插件与Apple Silicon不兼容。我明确表示,在没有机器进行测试的情况下,我无法解决这个问题。所以,如果没有人愿意借给我一台机器或者赞助我,让我自己购买一台,这个问题是不会得到解决的。
你觉得有人行动提供帮助了吗?没有。
一旦我决定自己承担投资,并对新插件收费,我突然变成了那个贪婪的混蛋——不再免费提供一切。
对公司来说也是如此。只要一切顺利,没有人会在意你,但一旦他们遇到问题,猜猜谁会来敲我的门?
在nut.js仓库的这个公开问题中,我被公开指责完全不真实的事情,成为了最后一根稻草。
这已经发生好几次了。因为我用nut.js做的事情,我在Discord、Reddit上受到了侮辱,现在又在GitHub上,但这次,我不会再忍气吞声。
在你看来,开源很棒,因为它可以免费使用。事实是,它肯定不是免费的。有人为此付出代价,如果不是用户,那就是维护者。
每个人的时间都很有价值,你可能会希望明智地利用它。如果在一件事上花费时间是快乐的,那太好了。但如果它变成了负担,那就不再有趣了。
如果你因为空闲时间做的事情而开始受到别人的侮辱,那么是时候停止了。
开源是伟大的,但他并不可持续。我们多年来自我破坏,现在已经到了难以回头的地方。为了更大的利益发布源代码是一项崇高的事业,但坦白说,我认为多年来,“开源”已经成为避免为软件付费的借口。并且,如果出了问题,当然要由维护人员来承担责任。
我已经用nut.js玩“开源”这个游戏差不多六年了,但现在要结束了。
接下来是什么?
我所有的围绕nut.js的包将在npm上不再公开存在。现成的包将只能通过私有的nut.js包注册表获得,使用它需要有效的订阅。
GitHub仓库将保持公开,因此如果您想继续在本地使用nut.js,您需要自己处理构建、测试和托管包的工作。
如果您想节省时间和精力,您应该今天就获取一个许可证,因为随着附加插件的发布,价格也将上涨。现有订阅用户不会受到此次价格上涨的影响。
我会完全停止在nut.js上的工作吗?
当然不是。
我将继续致力于nut.js的工作,但仓库的更新会有所延迟。新功能、补丁、错误修复和安全更新将首先提供给订阅者。
正如我所说,如果你想继续使用nut.js,你必须自己负责构建、测试和托管软件包。