What questions do developers ask about Julia?

What questions do developers ask about Julia?
复制标题

DOI:
10.1145/3476883.3520205
复制
发表时间:
2022-04
期刊:
Proceedings of the 2022 ACM Southeast Conference
影响因子:
--
通讯作者:
Dibyendu Brinto Bose;G. Gannod;A. Rahman;Kaitlyn Cottrell
Dibyendu Brinto Bose;G. Gannod;A. Rahman;Kaitlyn Cottrell
中科院分区:
其他
文献类型:
--
作者:
Dibyendu Brinto Bose;G. Gannod;A. Rahman;Kaitlyn Cottrell

文献摘要

被引文献

相似文献

Julia编程语言旨在解决“两种语言问题”,编写科学软件的开发人员可以在不牺牲生产力的情况下实现所需的性能。自2012年成立以来,一直使用其他编程语言的开发人员已经过渡到Julia。对开发人员询问的有关Julia的问题进行系统调查,可以帮助了解开发人员在使用Julia时面临的挑战。这样的理解可以帮助(i)工具工匠可以构建工具,以便开发人员可以最大限度地使用Julia的经验,(ii)Julia语言维护人员可以在改进语言和Julia生态系统的领域获得经验证据。我们对3,093个Stack Overflow帖子进行了实证研究,其中我们确定了与基于Julia的软件开发相关的13类问题。我们观察到开发人员询问各种各样的主题,例如GC,Julia的垃圾收集器,JuMP,使用Julia构建的特定于域的语言,以及Symbols,Julia中的元编程实用程序。基于我们的新结果,我们建议使用基于Julia的工具和技术来增强对开发人员的支持,以实现跨语言迁移、类型相关的帮助和包解析。
The programming language Julia is designed to solve the 'two language problem', where developers who write scientific software can achieve desired performance, without sacrificing productivity. Since its inception in 2012, developers who have been using other programming languages have transitioned to Julia. A systematic investigation of the questions that developers ask about Julia can help in understanding the challenges that developers face while using Julia. Such understanding can be helpful (i) for toolsmiths who can construct tools so that developers can maximize their experience of using Julia, and (ii) for Julia language maintainers with empirical evidence on areas to improve the language as well as the Julia ecosystem. We conduct an empirical study with 3,093 Stack Overflow posts where we identify 13 categories of questions related to Julia-based software development. We observe developers to ask about a diverse set of topics, such as GC, Julia's garbage collector, JuMP, a domain-specific language constructed using Julia, and symbols, a metaprogramming utility in Julia. Based on our emerging results, we recommend enhancing support for developers with Julia-based tools and techniques for cross language transfer, type-related assistance, and package resolution.