本文来自微信公众号:InfoQ(ID:infoqchina),作者: 唐小智,题图:Photo by Per Lööv on Unsplash
JS Standard 是一个月下载量超过 300 万的流行 JS 库,该项目在 GitHub 上也有接近 2.2 万 Star,但其同时也被诟病为误导新手。近期该项目陷入了争议的旋涡,理由是项目团队发现开源模式难以周转,因而选择在安装时植入广告以换取收入。
1.开源 + 广告,用户说别闹
JavaScript Standard Style 是一个月下载量超过 300 万的流行 JS 库,该项目在 GitHub 上拥有接近 2.2 万 Star。它是一个 JavaScript 代码规范,自带 linter & 代码自动修正,根据其 ReadMe 文档,该工具通过以下三种方式为开发者及其团队节省大量时间:
无须配置。史上最便捷的统一代码风格的方式,轻松拥有
自动的代码格式化。只需运行 standard --fix 从此和脏乱差的代码说再见。
提前发现风格及程序问题。减少代码审查时的反反复复修改过程,节约时间。
包括 GitHub、Node.js、MongoDB、Elastic 等在内的多个企业、组织在使用其作为 JS 开发规范。该项目在 GitHub 的代码检查类工具 展示列表中也排名第一。
但最近,该项目却陷入了舆论危机,因为该项目官方团队决定在项目中展示广告,以获取收入支持项目发展。
Standard 项目官方人员在 GitHub 上发布了 npm install funding #1381 的 issue,表达了目前团队维持开源的模式不可行,为了”更好地“运转,他们决定在项目中展示广告,显示来自开源赞助商的消息。
示例
该项目的成员 feross 写道:
无论何时安装 standard 14,我们都将显示来自支持开源的公司的消息。赞助的资金将直接支付维护人员用在编写新特性、修复 bug、回答用户问题和改进文档上的时间。这个实验的目的是回答一个问题,即:我们是否可以使用不跟踪用户或收集数据的广告,为开源软件募集资金?
截止目前,Linode 和 LogRocket 两个赞助商的广告已经生成。与此同时,来自社区开发者的反对声浪也开始此起彼伏。作者发起的讨论获得了 49 个赞,以及 713 个踩。
2.开发者怎么看?
在这个 npm install funding #1381 的 issue 下面,开发者们非常明确地表达了自己的反对意见,用数量堪称碾压的踩表明了自己的鲜明态度。
支持者留言的赞 / 踩情况
大多数开发者表示不能接受开源项目中出现其他赞助商的广告,因为这太奇怪了(It's weird)。
ID:morgansliman 的用户写道:
无可否认,我对这个开源项目没有做出过巨大的贡献,因此我可能没多少话语权。但我仍然不希望这个解决方案成为最后的标准。我认为在上面加广告不是解决问题的办法,起码在我看来不是。对我而言,Yarn 或者 Standard 13 将成为我的“标准”,直到广告被移除以后。
ID:mhogerheijde 的用户表示:
任何我不想看到广告的地方,我的终端绝对排名第一。另外我也搞不懂这个广告跟这个项目有什么关系,我花了很长时间才搞明白这个广告是怎么出现的。
而在 Reddit 上,开发者们表达了同样的关心:
如果广告开始出现在我的 build log 里,我会非常担心。我看不出作者是如何期望事情进展顺利的。
知道我想要什么吗?到处都是广告!想象一下,调试内核驱动程序问题时,必须每 30 秒停止一次,并观看一个 10 分钟的商业广告。爽不爽?
我为这类广告设计了一个广告拦截器,希望能阻止这种现象的发生。
https://github.com/kethinov/no-cli-ads
有一位 ID:crabbytag 的用户说得很有道理:
这让我想起互联网早期,网站通常只用添加一两个 banner 广告就能赚到收入,因为人们点击 banner 广告纯粹出于好奇。随着互联网的发展,这种新奇感消退,网站运营人员不得不添加更多具有侵略性的广告,比如动画横幅、弹出窗口、弹出菜单等等。
试想一下,该项目的团队可以通过这个广告植入获取收入,如果其他库的作者也有样学样,那么很快所有的开源软件就会变得跟现在的互联网广告一样。
ID:BadMoonRosin 的用户则更为犀利:
这个项目甚至都算不上一个软件项目,不就是一些 ESLint 的配置文件和脚本嘛,取了个名字搞了个网站好像就成了 JavaScript 的一部分了,对外包装得自己如何“权威”、“官方”、“认可”等等,这不误导人吗?他们居然还用这个赚了好几千美刀?简直了……
3.开源软件越来越商业友好,谁对开发者友好?
毫无疑问,开源软件的概念已经彻底改变了软件世界。在软件世界接受这种新的格局之前,它们花了数十亿美元与这个想法斗争了好多年。但是,现在有不少人开始怀疑开源软件的本质,几乎所有人都可以使用开源软件,并将它们用于任何目的。
开源与商业化似乎一直以来都是一对矛盾,许多开发者认为开源的就应该是免费的,但开源项目没有商业化的能力却始终难以为继。开源软件与文学作品版权的区别在于,旧文学作品不会因为时间的推移而丧失魅力,但软件项目却需要长时间的更新与维护。
小项目倒无关紧要,但像 Python 这样的大项目通常是需要由基金会提供全面的支持。然而,这些对整个世界起到至关重要作用的大型项目却资金匮乏。这些项目只有少数维护人员,而这些人在完成本职工作的同时还要花精力来维护这些开源项目。
2018 年,两家著名的开源软件厂商修改了开源协议,矛头直指云厂商,Redis Labs 首席执行官 Ofer Bengal 甚至直接表示:多年来,我们就像个傻子一样,他们拿着我们开发的东西大赚了一笔”。
MongoDB 总裁兼首席执行官 Dev Ittycheria 曾说:“每当一个新的开源项目变得非常流行时,云提供商就会剥夺我们的技术,将免费软件放在他们的平台上,然后从中获取大部分(如果不是全部)价值,但几乎不回馈开源社区”。
哪怕是这些大型的开源企业,在开源与商业化的探索中都艰难前行,更何况那些由个人维护的小项目。随着 Nginx 等开源厂商的“委身贱卖”,开源软件的商业化前景更加不容乐观。有观点表示,现在的开源软件越来越商业友好,开源软件们开始构筑自己的“付费墙”,未来会发展得更好。
可开源软件越来越商业友好,谁对开发者友好呢?值得深思。
本文来自微信公众号:InfoQ(ID:infoqchina),作者: 唐小智