当前位置: X-MOL 学术Empir. Software Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Helping or not helping? Why and how trivial packages impact the npm ecosystem
Empirical Software Engineering ( IF 4.1 ) Pub Date : 2021-03-02 , DOI: 10.1007/s10664-020-09904-w
Xiaowei Chen , Rabe Abdalkareem , Suhaib Mujahid , Emad Shihab , Xin Xia

Developers often share their code snippets by packaging them and making them available to others through software packages. How much a package does and how big it is can be seen as positive or negative. Recent studies showed that many packages that exist in the npm ecosystem are trivial and may introduce high dependency overhead. Hence, one question that arises is why developers choose to publish these trivial packages. Therefore, in this paper, we perform a developer-centered study to empirically examine why developers choose to publish such trivial packages. Specifically, we ask 1) why developers publish trivial packages, 2) what they believe to be the possible negative impacts of these packages, and 3) how such negative issues can be mitigated. The survey response of 59 JavaScript developers who publish trivial npm packages showed that the main advantages for publishing these trivial packages are to provide reusable components, testing & documentation, and separation of concerns. Even the developers who publish these trivial packages admitted to having issues when they publish such packages, which include the maintenance of multiple packages, dependency hell, finding the right package, and the increase of duplicated packages in the ecosystems. Furthermore, we found that the majority of the developers suggested grouping these trivial packages to cope with the problems associated with publishing them. Then, to quantitatively investigate the impact of these trivial packages on the npm ecosystem and its users, we examine grouping these trivial packages. We found that if trivial packages that are always used together are grouped, the ecosystem can reduce the number of dependencies by approximately 13%. Our findings shed light on the impact of publishing trivial packages and show that ecosystems and developer communities need to rethink their publishing policies since it can negatively impact the developers and the entire ecosystem.



中文翻译:

有帮助还是没有帮助?微不足道的软件包为何以及如何影响npm生态系统

开发人员通常通过打包代码片段并通过软件包将其提供给他人来共享他们的代码片段。一个包装的大小和大小可以看成是肯定的或否定的。最近的研究表明,npm中存在许多软件包生态系统是微不足道的,可能会带来高依赖性开销。因此,出现的一个问题是,为什么开发人员选择发布这些琐碎的软件包。因此,在本文中,我们进行了以开发人员为中心的研究,以实证研究了为什么开发人员选择发布这种琐碎的软件包。具体来说,我们问以下问题:1)为什么开发人员发布琐碎的程序包; 2)他们认为这些程序包可能带来的负面影响; 3)如何减轻此类负面问题。对59个发布琐碎的npm软件包的JavaScript开发人员的调查反馈表明,发布这些琐碎的软件包的主要优点是提供可重用的组件测试和文档以及关注点分离。即使发布这些琐碎软件包的开发人员也承认在发布此类软件包时遇到了问题,其中包括维护多个软件包,依赖地狱,找到正确的软件包以及在生态系统中增加重复的软件包。此外,我们发现大多数开发人员建议将这些琐碎的程序包归类,以解决与发布它们相关的问题。然后,定量研究这些微不足道的软件包对npm的影响生态系统及其用户,我们将对这些琐碎的程序包进行分组检查。我们发现,如果将总是一起使用的小程序包进行分组,则生态系统可以减少大约13%的依赖项。我们的发现揭示了发布琐碎软件包的影响,并表明生态系统和开发人员社区需要重新考虑其发布政策,因为这可能会对开发人员和整个生态系统产生负面影响。

更新日期:2021-03-02
down
wechat
bug