Characterizing the Usage, Evolution and Impact of Java Annotations in Practice
Zhongxing Yu, Chenggang Bai, Lionel Seinturier, Martin Monperrus

TL;DR
This paper presents a large-scale empirical study of Java annotations in open-source projects, revealing their usage patterns, evolution, and impact on code quality, providing insights for developers and language designers.
Contribution
It is the first comprehensive empirical analysis of Java annotations, covering their usage, evolution, and impact across over a thousand open-source projects.
Findings
Annotations are widely used for various purposes in Java projects.
Annotations evolve significantly during software development.
Annotations have a measurable impact on code quality.
Abstract
Annotations have been formally introduced into Java since Java 5. Since then, annotations have been widely used by the Java community for different purposes, such as compiler guidance and runtime processing. Despite the ever-growing use, there is still limited empirical knowledge about the actual usage of annotations in practice, the changes made to annotations during software evolution, and the potential impact of annotations on code quality. To fill this gap, we perform the first large-scale empirical study about Java annotations on 1,094 notable open-source projects hosted on GitHub. Our study systematically investigates annotation usage, annotation evolution, and annotation impact, and generates 10 novel and important findings. We also present the implications of our findings, which shed light for developers, researchers, tool builders, and language or library designers in order to…
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.
