开放源码的可持续性

2020-07-02 00:08:19

当我们进入这个最不寻常的2020年下半年时,发生了两件影响我和我的开源工作的事情:CodeFund宣布他们将关闭,社会压力迫使Tanner Linsley和我从我们的开源库中删除了围巾分析服务。

多年来,CodeFund对我意义重大。我是一个早期采用者,它产生的月收入-从来没有超过我日间工作一天的工资-真的很激励人。当我完成了最终形式的MVP的85%时,我在动力上停滞不前,看到我可以从另一个受欢迎的图书馆中获得一些潜在的收入,这给了我到达终点线的耐力。

我仍然认为,广播、电视、互联网、社交媒体、YouTube和播客已经向我们表明,制作人们想要的东西,免费提供给他们,但加上广告,对于生产者-消费者关系来说是一个可行的战略,这种关系与我们的大脑如何做出决策相一致。仔细阅读开放源代码库文档页面的眼睛对广告商来说非常有价值。开发人员不仅可以影响雇主采用哪些SaaS解决方案的决策,而且一般来说,他们的工资也很高,而且有可支配收入,可以花在小工具和东西上。

在未来,我希望更多像CodeFund这样的公司涌现出来,提供自己作为开放源码软件开发人员和广告商之间的中间人;我认为这个领域仍然有钱可赚。我认为,作为GitHub和NPM的所有者,微软在通过广告在开源可持续性方面发挥作用方面处于独特的地位。

在来自SCARF的Avi找到我谈论这件事之前,我从来没有想过在我的开源库中安装一个分析跟踪器。它的工作方式很简单。就像这个网页,你完全不知道,而且没有你的同意,很可能导致你的电脑下载了六个(或更多)小1x1px gif,允许一些不认识你的公司三角测量,只使用这些请求的HTTP头,你在哪里,你在什么设备上,有时一直到你的实际身份,包括围巾作为我的库中的一个依赖项,导致每当任何人在包含我的文件的项目上运行NPM安装时,都会触发一个HTTP请求。然后,SCARF将仅根据国家的解析来确定请求的位置,并尝试推断IP地址是否属于公司,然后记录公司和国家的名称,丢弃IP地址本身。

我对这个想法的最初反应与我与之交谈过的大多数开发人员的反应相似。哎呀!恶心!每次我运行NPM安装时,都有一个库向某个第三方报告,这真是令人毛骨悚然。当我运行NPM install时,隐含的约定是,我希望我的计算机从NPM获取一些元数据,可能还会从NPM获取发布的库代码,并且仅从NPM获取。但后来阿维解释说,围巾的长期目标是接洽这些公司以请求资金支持,对于这篇文章所涉及的看似棘手的问题来说,这是一个新的想法,所以我同意试一试。

在接下来的几周里,结果令人震惊。微软、谷歌、亚马逊和苹果都在使用我的库!它极大地证实了这一点,也极大地激励了人们。.但它也使更突出的事实是,在Github赞助商和Open Collective之间,图书馆每月总共收到不到30美元的赞助。

最后,我很高兴,丝巾曾短暂地作为开源分析的一种测试,并感受到了这个问题的攻击途径,但与所有正在从我的图书馆中获得价值的硅谷巨头不同,我不能真诚地继续迫使我的消费者放弃任何关于他们的信息,以换取使用我的图书馆的交换条件。在这一点上,我感到很高兴,但与所有正在从我的图书馆获得价值的硅谷巨头不同的是,我不能继续迫使我的消费者放弃任何关于他们的信息,以换取使用我的图书馆。

NPM拥有所有这些分析,但并不共享它们。我认为,作为NPM的所有者,微软在通过分析在开源可持续性方面发挥作用方面处于独特的地位。

出于讨论的目的,我将忽略这一点,在我的平台上,一直到内核的大部分代码都是开源的。让我们从网络应用层面开始吧。您希望构建一个可以接收超文本传输协议请求并返回超文本标记语言的Web应用程序。就我个人而言,我的年纪已经足够大了,我还记得什么时候Web应用程序是/cgi-bin目录中实际编译的可执行文件(或脚本),它确实做到了这一点:侦听HTTP请求的端口并输出HTML。如果你每次都必须从这个级别开始,仔细检查HTTP规范,来设计你的Web应用程序,你永远不会有任何进展。网络之所以存在,是因为它从一开始就是协作性的,人们分享他们的代码,并让其他人对其进行改进,比如“学术中的科学”。

如果我想构建一个追踪新冠肺炎数据的单页应用程序,而构建这一应用程序包括从头开始设计一个制图库,那我永远做不到。但是外面有太多的制图库,人们花了很多很多小时来建造和完善,只是给了我……没有任何附加条件。所以,我可以在一两天内迅速开发出我的新冠肺炎跟踪应用程序!我是在偷海图开发人员的东西吗?不,当然不是。他们把他们的代码张贴在公共广场上,让任何人都可以使用。如果我是一个有思想的人,我可能会非常感激他们的努力,我会扔给他们一张20美元的钞票,以感谢他们为我节省了200个小时的工作。

如果我的病毒跟踪应用程序开始每月赚取100万美元的经常性收入,如果图表开发人员停止维护他们的库,我可能会损失10万美元的收入,然后再损失5万美元的开发时间来迁移到另一个库或尝试在内部构建一个库,这在道德上会变得更加模糊。这些激励措施不合常理。这应该是ViralCorp的最大利益,以确保图表开发人员得到很好的补偿,而不会烧毁或失去兴趣。

在任何其他行业,如此大的公司都不会如此严重地依赖单身人士而没有报酬。你能想象一家汽车制造商从街那头的一个家伙那里得到了发动机上的一个重要齿轮吗?这个家伙真的很喜欢制造这些齿轮,然后把它们放在这个前廊里,免费的,你想要多少就拿走多少!";盒子,如果这个家伙倒下了或者决定开始制造另一件东西,他没有后备计划,你想要多少就拿多少!";盒子,而且没有后备计划。会计师和股东们会在屋顶上高喊OMFG Risk!!&34;(OMFG Risk!!&34;OMFG Risk!!&34;)。然而,这就是软件行业的运作方式。

对我来说,开源的价值在于它节省了我们所有人的时间,让我们所有人都能让应用程序起步并运行起来。盈利的公司应该回馈,这有点像公司纳税,因为他们的业务建立在税收支付的道路上…。哎呀,糟糕的比喻……他们也不纳税!

这就是目前的模式,我甚至不认为这个显而易见的事实值得争论。

有些人建议使用这样的系统:您可以每月向某个仲裁员支付X美元,然后您Package.json中有75个依赖项的每个库每个月都会收到X/75美元。这种使用模式就是Spotify付给艺人的钱,也是Egghead付给内容制作人的钱。问题是,这种模式激励了像臭名昭著的Leftpad这样的小公用事业,而抑制了实际上节省开发人员时间的复杂逻辑。

不要误会我的意思;我很高兴我再也不用考虑如何解析或格式化查询字符串了。我可以在几分钟内编写该函数,但是用测试正确地编写它将接近一个小时,即使那样,我也肯定会遗漏一些我确信查询字符串或QS已经面对和解决的边缘情况。

也就是说,接受字符串并将其转换为对象的函数不应获得与复杂日历小部件相同的补偿。我挑战你去找一个不包含辛德雷·索胡斯(Sindre Sorhus)的一些代码的网站。他应该得到每年100万美元的经常性版税,但不是10亿美元。

这就是问题所在。我猜一定是使用它们的开发人员最欣赏哪些库。我的建议是,公司应该向他们的开发人员提供礼券或某种信用,让他们分发给开源图书馆。Open Collective已经支持代金券,但我不明白为什么Github赞助商计划不能创建GitBucks之类的东西。我认为,作为NPM和GitHub的所有者,微软在通过礼券在开源可持续性方面发挥作用方面处于独特的地位。

最近,一家初创公司与我接洽,提出为我处理所有经常性的账单和访问限制,让我拥有两个版本的库,一个是免费的开源版本,另一个是需要许可证才能使用的更多功能的版本。我聚精会神地听着他们的演讲,然后直接指着皇帝裸露的生殖器:是谁强制执行这一规定的?他们的回答是,是的,好吧。图书馆消费者的内部法律团队要记住,他们必须付钱给你,这就是为什么我们预计只有大约2%的所谓付钱客户会实际付钱。哇!开始吧。在……上面。这个。地板。大笑!

如果我明天从麻省理工学院转到GPL,80%的人不会注意到,19%的人不会在意,剩下的1%会抛弃我的库,迁移到另一个API稍差、捆绑包更大的免费库中,然而,100%的人会恨我。开放源码许可是一个笑话,至少目前是这样。我想知道,作为NPM和GitHub的所有者,微软在通过许可在开源可持续发展方面不是独一无二的吗?

福特基金会(Ford Foundation)的一份报告不足以证明现状已被打破;这对小人物来说很糟糕,对利用他的公司资本家来说也很糟糕,即使他们还不知道这一点。我真的没有一个可靠的行动方案可以建议。我猜这是为了提高人们的意识,并向你的老板申请一些资金,让他们去你用过的图书馆;你可以把它框定为保险:你希望永远不会发生灾难,但你每个月都会付一点钱,这样,如果/当灾难发生时,情况就不会那么糟糕了。如果有人能想到一家定位独特的公司来帮助解决这个问题,请让我知道。