Cross-Language Dependencies: An Empirical Study of Kotlin-Java
Background: Since Google introduced Kotlin as an official programming language for developing Android apps in 2017, Kotlin has gained widespread adoption in Android development. The interoperability of Java and Kotlin’s design nature allows them to coexist and interact with each other smoothly within a project. Aims: However, there is limited research on how Java and Kotlin interact with each other in real-world projects and what challenges are faced during these interactions. The answers to these questions are key to understanding these kinds of cross-language software systems. Methods: In this paper, we implemented a tool named DependExtractor, which can extract 11 kinds of Kotlin-Java dependencies, and conducted an empirical study of 23 Kotlin-Java real-world projects with 3,227 Java and 8,630 Kotlin source files. Results: Our findings revealed that Java and Kotlin frequently interact with each other in these cross-language projects, with access and call dependency types being the most dominant. Compared to files interacting with other files in the same language, Java/Kotlin source files, which participate in the cross-language interactions, undergo more commits. Additionally, among all Kotlin-Java problematic interactions, we identified seven common mistakes, along with their fixing strategies. Conclusions: The findings of this study can help developers understand and address the challenges in Kotlin-Java projects.
Fri 25 OctDisplayed time zone: Brussels, Copenhagen, Madrid, Paris change
16:00 - 17:00 | Empirical studies for programming languages challengesESEM Technical Papers / ESEM Emerging Results, Vision and Reflection Papers Track at Telensenyament (B3 Building - 1st Floor) Chair(s): Julian Frattini Blekinge Institute of Technology | ||
16:00 20mFull-paper | Cross-Language Dependencies: An Empirical Study of Kotlin-Java ESEM Technical Papers Qiong Feng Nanjing University of Science and Technology, Huan Ji Huawei Nanjing Research Center, Xiaotian Ma Nanjing University of Science and Technology, Peng Liang Wuhan University, China Pre-print Media Attached | ||
16:20 20mFull-paper | Broken Agreement: The Evolution of Solidity Error Handling ESEM Technical Papers Charalambos Ioannis Mitropoulos Technical University of Crete, Maria Kechagia University College London, Chrysostomos Maschas GRNET, Sotirios Ioannidis Technical University of Crete, Federica Sarro University College London, Dimitris Mitropoulos University of Athens | ||
16:40 15mVision and Emerging Results | Rusty Linux: Advances in Rust for Linux Kernel Development ESEM Emerging Results, Vision and Reflection Papers Track |