Open source machine learning (ML) libraries allow developers to integrate advanced ML functionality into their own applications. However, popular ML libraries, such as TensorFlow, are not available natively in all programming languages and software package ecosystems. Hence, developers who wish to use an ML library which is not available in their programming language or ecosystem of choice, may need to resort to using a so-called binding library. Binding libraries provide support across programming languages and package ecosystems for a source library. For example, the Keras .NET binding provides support for the Keras library in the NuGet (.NET) ecosystem even though the Keras library was written in Python. In this paper, we conduct an in-depth study of 155 cross-ecosystem bindings and their development for 36 popular open source ML libraries. Our study shows that for most popular ML libraries, only one package ecosystem is officially supported (usually PyPI). Cross-ecosystem support, which is available for 25% of the studied ML libraries, is usually provided through community-maintained bindings, e.g., 73% of the bindings in the npm ecosystem are community-maintained. Our study shows that the vast majority of the studied bindings cover only a small portion of the source library releases, and the delay for receiving support for a source library release is large.
翻译:开放源码学习(ML)图书馆允许开发者将先进的ML功能整合到自己的应用程序中。然而,所有编程语言和软件包生态系统都无法以本地方式提供TensorFlow等受欢迎的ML图书馆。因此,希望使用其编程语言或选择的生态系统所不具备的ML图书馆的开发者可能需要使用一个所谓的具有约束力的图书馆。具有约束力的图书馆为源库图书馆提供跨程序语言和包件生态系统的支持。例如,Keras.NET连接系统为NuGet(.NET)生态系统的Keras图书馆提供支持,尽管Keras图书馆是用Python书写的。在本文中,我们深入研究了155个跨电子系统的装束及其开发,这些图书馆没有以其编程语言或生态系统所选择的生态系统选择,因此可能需要使用一个所谓的具有约束力的图书馆。对于大多数受欢迎的ML图书馆来说,只有一种包件生态系统得到正式支持(通常是PyPI) 交叉系统支持,通常通过社区维持的绑定的图书馆(NUL)生态系统图书馆,例如,73%的装订图书馆的73%的捆绑定部分显示我们所研究的大型生态系统源。