对不同开源项目的思考:为爱发电真的值得吗
去年我见到我一个同学在某个GitHub一个著名的项目提交了一个PR,具体是什么同学以及是什么项目暂且保密。他为项目新增了一个功能,并且成功地被负责人Merge了。
由于项目更新时间极其缓慢,所以直到很久之后,这个项目更新了新版本,他满怀期待地看着更新日志,希望出现他的名字,然而在新版本的Release里并没有提到他新增的功能。
此时我安慰他说:“没事,要么负责人可能觉得你的PR作用不是很大,要么负责人可能因为太多条PR所以忘记了,总之别难过就好,这就当作是给自己的一次鼓励和证明的机会了。”
后来,几乎在非常近的时间点里,我注意到另一个功能都比较垂直的项目里,由于项目刚刚启动,我过了很久才注意到这个项目,在我尝试使用这个项目的时候,我注意到了另一个让我感觉很不舒服的地方:这个项目里,我另一个比较要好的朋友竟然出现在鸣谢列表上,而原因仅仅是“提出了宝贵的建议”,我对他的了解就是他的技术栈根本不太可能去从代码层面维护这个项目,至少我觉得他和我的那个同学完全不同,他没有进行任何的PR就会坐在“关于”页的人员名单上,甚至与核心开发者在同一个级别。
这两件事如果是单独出现,那么我可能不会想太多,但巧合的是这两件事刚刚好在同一个时间,同一个领域,并排搁置在这里,后者的行为给我一种我在本科期间时,通过自己的技术完成了小组作业,安排了另一个同学演讲,结果最后所有人都在拥抱和维护那个同学一样,在我看来充满了明显的不公。
(这里补充一句:并不是我对后者的项目眼红,虽然对我来说C#技术栈很可能与VB.net很像,但是我认可他的开发能力,单从开发能力的角度看待后者项目的负责人,是没什么问题的。)
我让AI为我分析了这件事,它得出结论:
前者项目:缺乏系统化的贡献者感恩文化。
后者项目:认可标准的主观性与不透明性。
综合总结:开源世界中的“认可分配”往往不基于客观贡献价值,而基于维护者的个人偏好与项目文化。
自那之后,我感觉我从来没有这么清醒过,这让我知道这个世界本身就是充满不公的。这两件事结合在一起,产生的化学反应带来的辛辣的讽刺感油然而生。
开源的本质是为爱发电,如果我们无法在自己热爱且维护的项目里得到爱,那么作为维护者的我们有理由停电。
我不想将个人恩怨上升至群体对立,这是我非常不提倡的行为,所以我不会回答任何关于具体事件细节的信息。我通过这篇博客是想告诉大家:
- 对于项目负责人: 可能需要更清晰透明的贡献者显示,因为有些贡献者的背后的情感很可能也是代码的一部分。
- 对于项目维护者: 在贡献之前,请先看看这个项目与贡献者关系的健康程度,从而综合考虑是否需要贡献,这是一种特殊的情感投资。
从更为哲学的角度来讲:我们为什么要贡献?我个人觉得,或许我们不应该对项目投入太多的情感,否则如果发生这样或那样的事情,我们会变得很难受。
对于这两个项目,我虽然不会放弃使用,但我很大概率是会加入我个人贡献黑名单中了,在很长一段时间内我不会为这两个项目提供任何贡献(即使某个BUG是我能够修理的)。
希望借此文警醒读者:维护开源项目时,请寻找理想与现实之间的平衡。人的一生很短暂,请为了自己而活,不要将自己的精力投入到那些不值得维护的项目中。