在 Linode 取消赞助后,StandardJS 暂停终端中的广告实验

已发表: 2019-08-29

Feross Aboukhadijeh 是 StandardJS 库、JavaScript 样式指南、linter 和自动代码修复程序的维护者,上周启动了一项实验,在终端中放置广告以资助开发。 该实验在收到开发者社区的负面反馈后暂停,导致最初赞助商之一的 Linode 删除了其广告。

“我认为当前维持开源的模式行不通,我们需要更多的实验,”Aboukhadijeh 说。 “这是一个这样的实验。” 他开发了一个模块,可以在安装 Standard 14 时插入广告。 赞助资金用于支付维护人员的时间,他将其定义为“编写新功能、修复错误、回答用户问题和改进文档”。

Aboukhadijeh 是一位多产的开发人员,他在 npm 上编写了 100 多个包,每月下载 100+ 百万次。 Standard 是他最受欢迎的开源项目,并被知名项目和公司使用,包括 Node.js、npm、GitHub、Automattic 等等。

Aboukhadijeh 说,他的实验目标是让 Standard 和其他开源项目更健康。

“出于复杂的原因,公司通常会犹豫或不愿意直接资助 OSS,”他说。 “当它发生时,它永远不够,它永远不会到达传递依赖的包(即没有人明确安装的包,因此没有人知道存在)。 从本质上讲,我们拥有一种被大量用户消费的公共产品,但几乎没有人为此付费。 幸运的是,有一种融资模式通常适用于像这样的公共产品——广告。”

以下是作为初始实验一部分的 LogRocket 广告示例:

虽然一些开发人员表示支持开源维护者以他们选择的任何方式将其项目货币化,但 GitHub、Hacker News、Reddit 和社交媒体上的大多数反馈强烈批评了这种特殊方法。

Stoplight 的开发者 William Hilton 推测这种类型的广告成为一种流行的融资模式的后果:

我确实担心 npm install 最终会成为一长串横幅广告,并且不会扩展。 因为如果每个 npm 包都添加广告,那么每个广告的显着性都会降低。 (有趣的是,最有价值的“不动产”将是最后显示横幅的软件包,因此如果它变成字面上的“竞相到底”,人们可能会在他们的安装后脚本中添加睡眠语句,以便它们显示在最靠近底部。多么反乌托邦的安装体验!)

他还指出,Yarn 会阻止安装后脚本的输出,在这种情况下,这些脚本将用作内置的广告拦截。 Yarn 的维护者在线程中加入了更多上下文。

“作为 Yarn 的维护者,我强烈反对这种模式,尽管不是出于你想象的原因,”Mael Nison 说。 “安装后脚本会取消优化包并破坏工作流程。

“Yarn 已经不会打印构建日志,除非它们使安装崩溃,因此这个安装后脚本不会对我们的用户产生任何可见的影响。 尽管如此,从维护者和用户的角度来看,我仍然非常重视生态系统的健康,我很乐意讨论我们如何以更集成和更少干扰的方式满足这个用例。”

由于这是一个较新的实验并且还没有成为主流,因此尚不清楚 npm 是否会决定在未来阻止所有通过终端提供广告的方法。 为响应 Aboukhadijeh 的资助模块,创建了一个名为 No CLI Ads 的新模块。 它阻止广告出现在控制台输出中。 npm-adblock 是一种以不同方式运行的替代方案。 阻止这些类型的广告的简单但不方便的方法的存在可能是干涸任何潜在收入来源所必需的。

对该实验的反馈表明,人们普遍支持寻找开源资金问题的解决方案,但大多数人同意终端广告不是一个可行的选择。 事实上,许多评论者认为这种方法是包维护者可以做的最烦人的事情,除了删除包。 开发人员不希望在安装依赖项时收到垃圾邮件。 一位评论者将他的终端描述为“最后一个据点”和“和平的避风港”,不提供来自企业霸主的广告。

“销售广告空间并不具有创新性,”开发商 Matthias Hogerheijde 说。 “而且这在我的日志中特别无用。 对我来说,问题更多的是我不想要那些对我的日志没有帮助的东西。 我完全同意将您的“由 X 公司支持”放在自述文件中。 这有助于我理解,当我看到某些公司向 OSS 捐款时,它确实引起了我的共鸣。 我也想生活在一个完美的世界里,每个开发者都可以生活、支付租金并且只从事他们喜欢的项目。 对我来说,完美的世界不包括终端中的广告。”

Reddit 评论者对这个想法进行了幽默的抨击,撰写了中断构建过程的示例广告:

Linode 从 Standard 的终端广告实验中撤出赞助

对终端广告不满意的 Standard.js 用户向赞助商投诉,Linode 决定将其广告从实验中删除。

“在反映了开发者社区的反应后,我们重新考虑了,”Linode 代表在 Twitter 上说。 “我们仍然与@feross 一起热情地支持开源软件,但我们会更加谨慎地在未来进行试验,同时继续创新。”

在暂停实验之前,Aboukhadijeh 报告说他已经筹集了 2,000 美元,足以资助他花五天时间发布标准​​ 14。

“如果我们能够筹集到额外的资金,接下来我想关注的是 StandardJS 中开箱即用的 TypeScript 支持(最常见的功能请求之一!)以及各种文本编辑器插件的现代化(其中许多目前没有维护),”Aboukhadijeh 说。 “如果社区中的其他人有兴趣在这些问题上发挥带头作用,我想向你提供一些资金。”

该实验并没有完全脱离桌面,因为它似乎已经达到了 Aboukhadijeh 的直接目标之一,尽管开发者社区很烦(并且在某些情况下会激怒)。

四天前,Standard 因讨论新的融资模式变得太热而锁定了 GitHub 线程。 该项目的维护人员现在正在评估该实验的迭代,但讨论超出了开发人员是否喜欢其终端中的广告的简单问题。 该项目的 repo 上有一个新线程,标题为“现在开源有什么问题?” 已经将一些负面反馈转移到更广泛、更有成效的讨论中。

该实验重新引发了关于开源可持续性以及项目维护者希望看到它在未来走向何方的重要对话。 在最近的一条推文中,Aboukhadijeh 分享了一个链接,指向一位维护者在支持免费语法高亮库时面临的特定情况。

highlight.js 的原作者 Ivan Sagalaev 在收到因错误导致依赖关系中断的发布后收到紧急评论和电子邮件后,恰当地总结了企业与开源项目之间关系的当前状态:

亲爱的工程师们,请以此为契机,向您的特定业务人员解释他们的全部知识产权只是在由业余爱好者懒惰维护或由其他企业支付费用的摇摇欲坠的开源代码基础之上的一个薄层心中有自己的目标。

如果他们真的想要稳定性,他们必须通过例如雇佣工程师来处理无数的依赖关系、维护本地稳定的分支、向上游贡献补丁或其他方式进行投资——关键是它不应该看起来像“只是在仙尘上工作。