论文标题
交织生态系统:跨软件生态系统的库的大规模实证研究
Intertwining Ecosystems: A Large Scale Empirical Study of Libraries that Cross Software Ecosystems
论文作者
论文摘要
多样化的技术堆栈和第三方图书馆使用的增加,导致开发人员不可避免地会切换技术。为了协助这些开发人员,维护人员已经开始将其库发布到多种技术,即跨生态系统库。我们的目标是探索这些跨生态系统库在生态系统之间交织在一起的程度。我们对来自五个不同软件生态系统的110万库,即Python的Python,R,R,R,Maven for Java,Rubygems,Ruby的Rubygems和JavaScript的NPM来识别4,146 Github项目,以识别这些五个生态系统的图书馆。在分析他们的贡献时,我们首先发现这些跨生态系统库的贡献者中的大部分(中位数为37.5%)来自一个单个生态系统,同时也从其目标生态系统以外获得了很大一部分贡献(中位数为24.06%)。我们还发现,使用多种编程语言编写了跨生态系统库。具体来说,五个生态系统中的三个(即PYPI,Cran,RubyGems)具有大部分源代码,使用该语言编写的语言并非特定于该生态系统。随着生态系统的交织在一起,这开辟了新的研究途径,例如跨生态系统库是否会解决搜索替换库的搜索,或者这些库如何适合每个生态系统中的搜索。
An increase in diverse technology stacks and third-party library usage has led developers to inevitably switch technologies. To assist these developers, maintainers have started to release their libraries to multiple technologies, i.e., a cross-ecosystem library. Our goal is to explore the extent to which these cross-ecosystem libraries are intertwined between ecosystems. We perform a large-scale empirical study of 1.1 million libraries from five different software ecosystems, i.e., PyPI for Python, CRAN for R, Maven for Java, RubyGems for Ruby, and NPM for JavaScript to identify 4,146 GitHub projects that release libraries to these five ecosystems. Analyzing their contributions, we first find that a significant majority (median of 37.5%) of contributors of these cross-ecosystem libraries come from a single ecosystem, while also receiving a significant portion of contributions (median of 24.06%) from outside their target ecosystems. We also find that a cross-ecosystem library is written using multiple programming languages. Specifically, three (i.e., PyPI, CRAN, RubyGems) out of the five ecosystems has the majority of source code is written using languages not specific to that ecosystem. As ecosystems become intertwined, this opens up new avenues for research, such as whether or not cross-ecosystem libraries will solve the search for replacement libraries, or how these libraries fit within each ecosystem just to name a few.