开源的界限在哪里?

发表时间: 2022-03-22 15:26

你认为开源人的“底线”是什么?你如何看待开源社区中,项目作者、维护者和使用者之间的关系?欢迎在评论区留言讨论~


作者 | 宋林飞 责编 | 张红月
出品 | CSDN(ID:CSDNnews)

相信不少小伙伴,尤其是开发者,都对开源多多少少有所耳闻,甚至亲身使用、参与过开源软件的开发。在使用过程中,开源软件给我们最直观的印象就是免费和自由,也就是使用者可以在遵守开源软件许可证的情况下免费让这些开源软件为我们的目的服务,甚至在它们的基础上进行二次开发。这也意味着大多数开源软件都是它们的作者以及社区中贡献者们默默“为爱发电”的成果。但是,面对着需要频繁维护的项目、层出不穷的Issue和问题,以及寥寥无几的收入,开源人的“爱会消失”吗?

前段时间,名为Joel Denning的开源开发者发出一篇题为“My boundaries as an open source developer”(“我作为一名开源开发者的底线”)的博文在网络上引发了大家热议。文中,Joel Denning列举了一系列他作为开源项目作者和维护者的这一路所遇到的“下头”瞬间。尽管作为一名开源人,他最初对开源的热爱无可厚非,但时间久了,任何人都会感到疲惫。因此,他认为开源人也需要有自己的底线,他们并不是一块砖,哪里需要哪里搬。这个观点在论坛中引起了大量开源参与者的讨论和共鸣。

让我们先一起看看Joel Denning都说了些什么。



“我爱开源,但我真的很累”


文章的开篇,Joel Denning就表示了他热爱并相信开源。最初他也会耐心地逐一回复别人给他的留言,帮助社区内的成员解决他们的Issue和问题。但是,随着项目使用者和社区内人数越来越多,慢慢地他开始感觉到力不从心。他说“我每周都会收到几十个不同的留言,让我回答他们的问题,给他们技术支持,修复bug或构建新功能等等“。

这类留言如今已经成为Joel Denning的负担,因为这些留言使他感觉到别人在要求他做事。这也使他时常萌生出“逃离开源”的想法。“从2020年左右开始,这种逃离开源的想法使我花在维护开源项目中的精力减少了一半以上,因为这些要求的确让我很有压力。”Joel Denning回忆

谈到自己倍感压力的原因,Joel Denning列出了以下几点:

  • 每天都要同时和很多人打交道,却从来没有和他们中的任何一个人有过稳定的关系。

  • 每天收件箱都会有很多收件,作为强迫症不看的话感到很难受。

  • 参与开源的同时生活中也担负着其它责任。

  • 因为看到自己的开源项目使很多企业受益,自己却没有收到应有的回报。

  • 感觉到别人的奉承只是,想利用自己来达到他们的目的,对此很失望。

图片付费下载自东方IC





“我不欠你的,所以别给我提要求”


面对这些压力,Joel Denning渐渐地总结出了自己的底线来帮助自己在精疲力竭的情况下继续在开源环境中生存,而不被淹没。他在文章中列出了以下三条“红线”:

  • 你没有资格要求我回应你的留言。

  • 你没有资格让我为你做你认为重要的工作。

  • 无权给我设期限,如果你的系统出现问题,与我无关。哪怕我一天、一周甚至一个月不回复你,我也不欠你任何东西。

图片付费下载自视觉中国


同时,Joel Denning还仔细地列出了开源社区的参与者们在什么情况下可以/不可以直接给他发消息,以及什么时候可以在GitHub、Slack中提及他。总的来说,任何以给他提要求为动机的对话都不要私信他。这包括要求他Review PR,修复Bug,创建新功能,发版,咨询他软件的使用方法等… 同时,Joel Denning也提到了他会关注他维护的GitHub Repo以及Slack,并且会在他愿意的时候回复里面的消息,因此,一般情况下没有必要在消息中提及他。



论坛中引发大量讨论


Joel Denning的博文在论坛中引发了大量讨论和共鸣,很多网友都表示在开源中有过类似的经历并且能感受到Joel Denning的无奈。同时,他们也分享了各自在经营开源项目时遇到的“大无语”事件以及他们对开源“底线”的看法。

ID为Jurassic的网友说:“我之前也有专职维护开源项目的经历,刚开始也是热情饱满,但是不到两年,这份工作把我的热情消耗殆尽。”这其中最主要的原因是开源用户不断地通过私信和邮件给他提各种问题和需求,但提的很多问题在项目文档中都可以找到。而当他对这些问题不予回复或回复不及时,社区中就会有人给他恶意评论甚至对他进行人身攻击。因此,最后他不堪重负,从此彻底放弃了开源。

ID为Wildmanx的网友分享到:“我们可以从开源许可证中理解开源的底线。”他认为开源许可中阐明了项目作者和使用者的权力和责任。使用者可以免费、自由地使用作者提供的开源软件。但与此同时,开源作者对软件不负任何责任,所以任何人没有权力要求项目作者或维护者提供任何服务,这就是开源的底线。

同时,也有网友提出了不同的看法。名为Stdbrouw的网友认为管理预期比设立底线更重要,他提出:“假如一个项目明了It is no longer maintained,使用者们也不会再给作者提出各种需求,同时,多数人也不会再使用这个项目”。使用者之所以会提出各种需求,是因为在最初开源项目作者给了他们高预期,他们相信项目会大有可为。因此,假如开源项目作者不想花费过多精力在项目维护上,最初就不要给使用者们太高预期。



结语


在看完Joel Denning的博文和网友们的留言后,笔者联想到了之前Faker.js作者Marak删库跑路的事件。虽然因为心理不平衡,对开源项目动手脚从而伤害使用者利益的做法固然不对,但站在开源项目作者的角度,他们为了维护项目付出了多少心血或许只有他们自己知道。所以,笔者也想把这些问题抛给大家:

  • 你在开源中遇到过什么类似的“大无语”事件?

  • 你如何看待开源人的“底线”?你认为开源的“底线”是什么?

  • 你如何看待开源社区中,项目作者、维护者和使用者之间的关系?

欢迎大家在评论区留下你的观点!

END


新程序员001-004》全面上市,对话世界级大师,报道中国IT行业创新创造


成就一亿技术人