Adoption and Evolution of Code Style and Best Programming Practices in Open-Source Projects
Alvari Kupari, Nasser Giacaman, Valerio Terragni

TL;DR
This study analyzes how open-source Java projects adopt and evolve code style and best practices, revealing widespread violations and highlighting areas for improvement in maintaining code quality over time.
Contribution
It provides an empirical analysis of code style adherence and violations in 1,036 open-source Java projects, offering insights into their evolution and common issues.
Findings
Widespread code style violations, especially in Javadoc and Naming.
Significant violations of GOOGLE Java Style Guide often missed by static analysis.
Projects claiming to follow style practices show higher adherence.
Abstract
Following code style conventions in software projects is essential for maintaining overall code quality. Adhering to these conventions improves maintainability, understandability, and extensibility. Additionally, following best practices during software development enhances performance and reduces the likelihood of errors. This paper analyzes 1,036 popular open-source JAVA projects on GITHUB to study how code style and programming practices are adopted and evolve over time, examining their prevalence and the most common violations. Additionally, we study a subset of active repositories on a monthly basis to track changes in adherence to coding standards over time. We found widespread violations across repositories, with Javadoc and Naming violations being the most common. We also found a significant number of violations of the GOOGLE Java Style Guide in categories often missed by modern…
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
TopicsSoftware Engineering Research · Scientific Computing and Data Management · Advanced Software Engineering Methodologies
