别把软件开源当成理所当然

早上刷推特的时候看到了一个文章,是 core-js 作者在前两天写的一篇 文章,关于他开发开源软件的一些经历,其经历确实让人大开眼界,感到心酸。最让人感到感到震惊和心酸的是,作者投入许多精力开发和维护的 core-js,确实收获大家的关注和认可(GitHub 上有接近 20k 的 stars),而且这个软件库也被广泛使用(npm 上总下载量达到 90 亿,top 1000 的网站有 52% 使用 core-js,top 100 的网站有 75-80 使用)。

然而这样的广泛认可和使用,并没有给作者带来什么收益,高峰期每个月几百刀的赞赏,跟维护该项目所需要的时间和精力根本就匹配不上。加上作者还处于一个无工作的状态和在一个比较敏感的国家,收入确实有点缺乏,甚至可以算得上贫困潦倒。这导致作者在出了交通事故后,没有筹到足够的钱进行赔偿,还进去坐了十个月的牢。很惨,但对于一些使用人员来说,觉得跟他们并没有什么关系,甚至觉得作者在项目当中提出的求助和求打赏的信息,是对于开源生态的污染,也因此收获了许多的 haters.

这样看下来,个人的开源真的是太难了,如果是没有一份正职且固定的收入,或者是能够将开源变现成收入和流量的方式,单靠开源项目这一条路,实在是难以养活自己,实在是难以坚持用爱发电,一直保持良好的开发和维护质量。尤其是对比于互联网行业 / cs 开发的高收入,实在是过于劝退。

或许是开源项目使用起来过于简单和轻松了,在开源社区上面一搜,命令行一敲,别人的努力成果便能够马上为自己所用,使用者很容易忽略开源项目开发和维护所需要的精力和成果了。大家对于开源项目的态度也变得很理所当然,作者写出来给大家用是应该的,给大家提供维护和需求开发支持是应该的,甚至使用上的问题解答和技术支持,部分用户也觉得是作者和维护者的义务。而大多用户会用什么回报呢?给一个 star 以表赞赏。

前几个月,我还在沉浸于开源生态的美好,觉得开源社区里面互助,分享,奉献的氛围很好,对于开发者而言很友好,甚至以前的自己也考虑要不要选择一份跟开源软件相关的工作,为社区做贡献。残酷的现实使人清醒,还是得考虑多点。也希望大家也能考虑多点,为开源社区和开源的开发者,don't take it for granted.