Cross-Language Dependencies: An Empirical Study of Kotlin-Java
Qiong Feng, Huan Ji, Xiaotian Ma, Peng Liang

TL;DR
This empirical study investigates Kotlin-Java interactions in real-world Android projects, revealing frequent cross-language dependencies, common mistakes, and providing insights to improve developer understanding and project stability.
Contribution
Introduces DependEx-tractor, a tool for extracting Kotlin-Java dependencies, and provides the first comprehensive empirical analysis of cross-language interactions in Android projects.
Findings
Frequent Kotlin-Java interactions with dominant access and call dependencies.
Cross-language files undergo more commits than same-language files.
Identified seven common mistakes in Kotlin-Java interactions and their fixes.
Abstract
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 inter-operability 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 DependEx-tractor, 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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsArtificial Intelligence in Games
