维护开源项目太难了,请对这群不在乎收入、只想写代码的程序员好一点!

虽然开源正在吞噬世界,但开源维护者却都身处水深火热之中。

开源项目 Docz(Star 数:21.7k)地址:https://github.com/doczjs/docz

Docz 的作者 Pedro 就通过 Issues 称繁重的开源维护工作不可持续,自己曾处于“崩溃”状态。

维护开源项目太难了,请对这群不在乎收入、只想写代码的程序员好一点!

Pedro 表示最初为了开发 Docz,他可以提前 3 小时起床,推迟 3 小时睡觉,全力以赴地创建这个项目的经历让他“感觉很棒”。但随着项目的发展,使用的人越来越多,需求也日渐增多,维护开源变成了一件非常困难的事情。很多人只想索取,而不是提供帮助,这让他感到“崩溃”。

而且 Pedro 除了自己的本职工作外,还得抽时间维护自己的开源项目,最后却损害了自己的身体健康。他不得已在“保持开源项目活跃度”和“保持健康”之间选择了后者。这给项目带来了一种非常糟糕的状态,导致很长一段时间里没有人来维护它。

对此,众多开源维护者纷纷表示有同感,包括 Redis 之父 antirez 也发表了自己的看法。

Redis 之父 Salvatore Sanfilippo(又名 antirez),是资深的开源维护者,开发了很多不同规模提供基础服务的开源项目,如 Redis、Hping、Jim Tcl、Visitors web analyzer 等等。antirez 以他丰富的维护经验说道,开源维护并不是要满足所有人的要求,也不是什么都不做,而是需要挑选你想要解决的问题,“只做自己想做的 (just do what you want)”,并且“花固定时间,甚至每天几分钟都行,在这段时间只做你喜欢做的事情”。

antirez 表示自己正是通过这样的方式写出了 Redis ,这个由他一个人写出的产品在市场上击败了许多数百名开发者一起打造的同类项目。同时,他还提出了几个要点:

  • 不要以为别人在没有付出的条件下向你索取是在犯错或是在滥用“权力”。事实上,人们可以提出任何要求,但你也可以忽略这些要求。
  • 不要因为软件是免费的而陷入对软件质量不负责任的陷阱:只做自己想做的事,认真完成工作,并形成良好的文档。不要因为因为“它是免费的”就发布一些糟糕的东西,另外就是按照你想要的方式做事,但要带着爱。
  • 当被人攻击时,平静地回答自己的想法,不要陷入争论。
  • 在参与开源过程中结交好朋友。因为当遇到困难的时候,他们会给你极大的帮助。请记住:聪明人往往都是友好的。
1开源项目维护者的窘境:工作忙,薪水低

2011 年,Mosaic 的创始人‍‍马克·安德森说过这么一句话:软件正在吞食整个世界;2013 年,‍‍麦克·斯考克对这句话进行了扩展:开源软件正在吞食整个世界。但这些开源软件背后的维护者却都身处水深火热之中。

活儿多,工作强度大

此前,坐拥百万用户的开源项目 Babel 引起开发者关注。Babel 宣布,尽管有 Airbnb、Facebook、Salesforce、Gitpod、GatsbyJS、Discord 和 Elastic 等企业的赞助,但由于花钱速度继续高于获取捐赠的速度,项目储备资金目前只够维持到 2021 年底。

去年,Redis 之父宣布退出开源项目维护,他说:“最近几年来,我每天的工作内容发生了很大变化。我把大部分精力花在检查其他开发者提交的 Redis 代码、改进代码质量以及提升软件正确性、速度与安全性方面。但我真的不喜欢这类维护工作。”

更重要的是,这种全年无休的上班生活让他无法放松,从而无法做一些创造性的工作。

开源项目维护工作是一项艰巨的任务。如果说开发者的职责在于修复 bug、新建功能,而审查者的职责在于把控代码质量,那么维护者(项目作者)就是要让开源项目长久稳定地持续下去。

可以想见,正常的开源项目中必然是开发者多于审查者、审查者又多于维护者。维护者(项目作者)相当于一支管弦乐团中的指挥角色。如果开发者没能修复 bug,维护者需要及时救场;如果代码未经审查,维护者也得尽快介入。

大多数开源项目维护者“穷的可伶”

根据 Tidelift 发布的调查报告显示,近 50% 开源项目维护者拿不到任何报酬。

大多数开源项目维护者“穷的可伶”。虽然 Linus Torvalds 和 Kroah-Hartman 等 Linux 顶尖维护者的收入确实可观,但是 Tidelift 的一项最新调查发现,46% 的开源项目维护者根本拿不到任何报酬。即使在拥有报酬的维护者中,也只有 26% 的比例年均工作收入超过 1000 美元。

根据 Linux 基金会开源安全基金会(OSSF)与哈佛创新科学实验室(LISH)最近发布的 2020 年 FOSS 贡献者调查报告显示,开发者参与开源项目的首要原因,在于添加自己需要的功能或者是改进正在使用的功能;第二大原因就是享受学习感、满足感、创造性以及令人愉悦的工作内容。最后一条,才是获取报酬。

2写在最后

虽然开源已经成为一股来势汹汹的潮流,但潮流之下的暗潮和礁石,只有深处开源社区的人、真正在做开源的人才能明白其中酸楚和困难。就是这样一群不求收入、只想写自己想写的代码、喜欢傻笑地看大家用他的程序和项目的程序员。他们大概率经历过:项目没人用、伸手党、同类项目找茬儿、版权问题、无知的谩骂等等。也正是这些原因让太多项目逐渐停止维护、被人遗忘,说真的:任何一个能够坚持更新和维护的开源项目,背后都一位值得尊敬的程序员,希望大家对他们好一点。

我接触过很多开源作者,他们大多都是一群纯粹且崇尚技术的人,希望借助开源的力量和自己的双手让世界变得好一点。

如果你是一个开源项目使用者:请尽可能伸出援手,为项目做贡献。

如果你是一个开源作者:请再坚持一下,阳光就在不远处。

我最近在维护 HelloGitHub 时,也陷入了沮丧:很多事情力不从心,做了太多不喜欢的事情。我现在每天最快乐的事儿就是写几行自己想写的代码,哪怕只有一行,哪怕只有一瞬间,我知道自己是自由的。

相关文章

暂无评论

暂无评论...