开源软件在软件业中发挥着重要作用。早期,开源代码行和项目数量曾经呈现出了一个多项式甚至指数式增长的趋势。然而,在资源有限的情况下,这种增长不可能无限持续。Blekinge 理工学院的 Michael Dorner 等人近期发布的一项报告指出,其研究结果表明:开源领域已不再增长。
该团队研究了过去 25 年中出现的超 224,000 个开源项目,测量了每一个项目代码行数、commit 量、贡献者和生命周期状态随时间的变化。最后发现,自 2016 年以来,活跃的开源项目数量一直在萎缩,而贡献者和提交者的数量也自 2013 年的峰值以来有所减少。
“开源--虽然最初以指数级的速度增长,但现在已经不再增长了。我们认为它已经达到了饱和状态。”
数据显示,开源代码行的体量是巨大的:现存已有超过 170 亿行的开源代码。截至 2018 年底,开源项目中共包含有 17,586,490,655 行代码,包括 14,588,351,457 行源代码和 2,998,139,198 行注释。
然而报告指出,自 2011 年以来,代码行数的增长就开始持续放缓;2015 年之后,代码行数则完全停止增长。同时,commit 的数量也在随时间的增长而下降。2015 年之后,commit 量进入自由落体状态,跌回了 2007 年时的水平。
另一方面,研究发现,绝大多数开源项目都处于一个被废弃的状态。“截至测量的最后一个月(2018 年 12 月),我们总共发现了 224,342 个开源项目。 其中 196,009 个处于非活动状态,13,085 个处于废弃状态,还有 58 个新增项目。在 25 年的时间范围内,有 15,046 个被删除”。下图描述了一段时间内的开源项目生命周期状态:
可以说的是,相较于正在进行中的项目,被放弃的项目数量还在继续增长。
此外,开源贡献者的数量也在逐步减少。与 commit 量一样,贡献者的数量在 2013 年达到顶峰后开始出现下降。2013 年 3 月,贡献者数量达到高峰值,共有 107,915 名。但截至 2018 年,开源贡献者的数量已经下降至了 2008 年时的水平。
总的来说,可以看到的是,大约在 2000 年到 2010 年这一时间段,开源领域在很多方面都呈现出了指数级增长的趋势。但在之后的几年间,其除了停止了指数级增长外,还出现了大幅下跌。针对这一行业变化,该论文则提供以下几个可能的原因:
- 在志愿参与贡献的开发人员减少的同时,有偿开发工作岗位没有相应增加;
- 由于公司资源管理,从志愿捐款改为有偿捐款,减少了为每个参与者捐款的有效时间;
- 偶发性参与增加,更多的人倾向于减少志愿服务;
- 从集体志愿服务到反思性志愿服务的世代转换(2005 年贡献者的平均年龄为 31 岁,2017 年为 30 岁),这可能是由于开源活动在职业发展中的作用日益增加所致;
- 代码复杂性的对开发人员的要求越来越高,对新手并不友好;
- 贡献内容质量下降,导致接受率降低,审核者和提交者的负担越来越大。
报告全文:https://arxiv.org/pdf/2008.07753.pdf
针对上述解释,一位开源项目贡献者 Mike James 也表达了自己的看法称,“作为一名失败的开源贡献者,我对其中一些原因表示认同”。同时,他还从自身参与过的一些开源项目出发,给出了自己停止为开源做贡献的三个原因。
- 第一个案例是一个 Apache 项目,James 表示,“治理问题似乎比我提出的补丁更复杂,更让人不知所措”。
- 第二种情况是,因为项目强加了一套他在编码中从来没有使用过的编码风格,而他并不认同这一举措。“花时间和精力把我的 mods 放到他们的规范格式中,这并不值得且无聊。”
- 第三种情况则是因为项目的记录做的太差。作为一个贡献者,他搞不清楚自己做的事情是否合理。向项目维护者反应这一情况,结果却收到了让他自己想办法解决的回复,从而导致了他放弃继续为该项目做贡献。
所以,你还在继续为开源项目做贡献吗,如果不是的话,那你放弃的原因是什么呢?
猜你喜欢: