开源是否已经达到饱和状态?

发表时间: 2020-09-12 10:10

作者 | David Rosenthal

译者 | 弯月,责编 | 郑丽媛

头图 | CSDN 下载自视觉中国

出品 | CSDN(ID:CSDNnews)

以下为译文:

最近,Michael Dorner、Maximilian Capraro和Ann Barcomb联合发表了一篇论文《Quo Vadis, Open Source? The Limits of Open Source Growth》(地址:
https://arxiv.org/pdf/2008.07753.pdf),文中呈上了一份统计数据,并探讨了影响开源发展局限性的实质性问题。

下面是部分节选:

开源软件在软件行业中起着重要作用。之前的研究表明开源正在成倍增长,这种增长趋势甚至接近指数级。然而,在资源并非无限的情况下,这种增长不可能无限地持续下去。在此次研究中,我们以过去25年中224,000多个开源项目为研究对象,对开源的规模以及增长进行了四次累积测量。我们测量了这些项目的代码行数、提交次数、贡献者以及生命周期状态随时间的变化,最后得出了三篇研究结果,这些研究结果被大量引用。我们发现,自2016年以来,活跃的开源项目数量一直在减少,贡献者的数量和提交次数于2013年达到峰值以来一直在下降。尽管最初开源项目曾以指数级的速度飞速增长,但如今已不再增长。我们认为开源已达到饱和。

如下图所示,论文的作者观察到,直到2010年每月的提交率都在呈指数级增长,并于2013年达到峰值,然后一路下滑,截止到2019年与2007年的持平。

我认为这符合W. Brian Arthur的技术经济模型。当一个新型的小众市场刚刚出现时,人们会为之付出大量的努力。然而,随着时间的流逝,规模收益的增加将推动其中的少数几个,也许只有一个,来主导这一市场。

那些能够快速添加功能(提交)的项目会迅速增长并逐渐占领这块市场。失败者无法跟上步伐,因此他们的提交率会下降,逐渐变得越来越不活跃,直至最后被抛弃。随着优胜者的竞争减少,他们添加的功能也会减少。他们的提交越来越多地侧重于bug修复或解决漏洞,因此bug发生率也会降低,最终以较慢而又恒定的速度稳定下来。请注意,该模型不适用于少数大型聚合项目,例如Linux内核。

下图最为有趣,它展示了开源项目在整个生命周期不同阶段的人数。原论文的作者观察到:

我们能够确认截止到2013年,所有项目都呈指数级增长,但大多数项目处于非活动状态,往往在某个月里一个提交都收不到……大部分非活动状态的项目都拿不到资助,他们都被抛弃了。

此外,还有:

积极开发的开源项目(即至少每个月都能收到一笔资助的项目)的比例很小,并且随着时间的推移大致保持不变。

如果我没猜错的话,这些活跃的项目包括那些大型项目,通常是基础设施,以及一些较小的项目,它们仍在争夺各自的市场。如果按照年龄和规模对Dorner等人的活动项目数据进行分组,那么可能会得到两组:

● 规模较大,年龄较长,积极维护的项目。

● 规模较小,较新的项目,这些项目在经过一段时间后逐渐变得不活跃。

请注意,规模较小的非活跃项目可能已经被广泛使用。它已经占领了自己的市场,具备了所有重要的功能,并修正了所有易于发现的bug。一小部分小项目可能会保持这种成熟状态,直到被淘汰。

此外,原论文的作者还观察到,每月活跃贡献者数量的行为与每月提交数量相似,如下图所示。直到2010年,贡献者数量一直呈指数级增长,并于2013年达到峰值,然后一直下降,直到2019年其增长率与2017年持平。

当然,如果所有贡献者的生产力都一样的话,那么这个统计数据也符合人们的期望。然而,众所周知,程序员的生产力呈长尾分布。但是,假设这个分布不会随时间发生很大变化,那么生产力的均值与中位数之间的差异相对稳定,因此得出的结果也相同。

论文的作者针对他们观察到的开源饱和现象,给出了如下解释:

● 愿意贡献代码的开发人员减少,而付费开发工作没有相应增加。

● 由于公司资源管理的缘故,许多自发贡献转变成了付费贡献,导致每个贡献者付出的有效时间减少。

● 越来越多的项目需要连续的参与,因此越来越多的人倾向于减少自发贡献。

● 从集体志愿行为到利己志愿行为的两代人转变(2005年贡献者的平均年龄为31岁,2017年为30岁),这可能是由于参与开源对职业发展起到的积极作用日益增加的结果。

● 代码复杂性的提高,导致拥有相应技术的开发人员越来越少,并且不鼓励新来者。

● 软件项目的正规化程度越来越高,开发人员需要付出大量努力才能遵守提交或基础准则。

● 贡献质量下降,导致接受率的降低,也导致审核者和提交者不堪重负。

这些理由似乎都很合理,但我还想根据W. Brian Arthur的模型再增加一条。随着时间的流逝,新领域与现有赢家的领域接近的可能性越来越高。因此,新功能的需求更有可能由现有项目的常规贡献者之一向现有项目添加少量提交来满足,而不是由几个新贡献者进行大量提交来启动新项目。这就好比由于缺乏反托拉斯,因此技术寡头压制了来自新创公司的竞争。

最后,我要向Glyn Moody表示感谢,他总结道:

这项新研究表明,无私奉献了几十年的开源社区表现出利他主义疲劳的迹象。各个公司都应该反思对开源项目的回馈,并付出前所未有的努力。

原文:
https://blog.dshr.org/2020/09/open-source-saturation.html

本文为 CSDN 翻译,转载请注明来源出处。

点分享