Understanding Java Usability by Mining GitHub Repositories

Author Mark J. Lemay

Thumbnail PDF


  • Filesize: 319 kB
  • 9 pages

Document Identifiers

Author Details

Mark J. Lemay
  • Boston University, Boston, MA, USA

Cite AsGet BibTex

Mark J. Lemay. Understanding Java Usability by Mining GitHub Repositories. In 9th Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU 2018). Open Access Series in Informatics (OASIcs), Volume 67, pp. 2:1-2:9, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2019)


There is a need for better empirical methods in programming language design. This paper addresses that need by demonstrating how, by observing publicly available Java source code, we can infer usage and usability issues with the Java language. In this study, 1,746 GitHub projects were analyzed and some basic usage facts are reported.

Subject Classification

ACM Subject Classification
  • Human-centered computing → Empirical studies in HCI
  • programming languages
  • usability
  • data mining


  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    PDF Downloads


  1. Muhammad Asaduzzaman, Muhammad Ahasanuzzaman, Chanchal K Roy, and Kevin A Schneider. How developers use exception handling in Java? In Proceedings of the 13th International Conference on Mining Software Repositories, pages 516-519. ACM, 2016. Google Scholar
  2. Steven Clarke. Chapter 29. How Usable Are Your APIs? In Andy Oram and Gregn Wilson, editors, Making software: What really works, and why we believe it. O'Reilly Media, Inc., 2010. Google Scholar
  3. Roberta Coelho, Lucas Almeida, Georgios Gousios, and Arie van Deursen. Unveiling exception handling bug hazards in Android based on GitHub and Google code issues. In Mining Software Repositories (MSR), 2015 IEEE/ACM 12th Working Conference on, pages 134-145. IEEE, 2015. Google Scholar
  4. Valerio Cosentino, Javier Luis, and Jordi Cabot. Findings from GitHub: methods, datasets and limitations. In Proceedings of the 13th International Conference on Mining Software Repositories, pages 137-141. ACM, 2016. Google Scholar
  5. Edsger W Dijkstra. Letters to the editor: go to statement considered harmful. Communications of the ACM, 11(3):147-148, 1968. Google Scholar
  6. Robert Dyer, Hoan Anh Nguyen, Hridesh Rajan, and Tien N. Nguyen. Boa: A Language and Infrastructure for Analyzing Ultra-Large-Scale Software Repositories. In Proceedings of the 35th International Conference on Software Engineering, ICSE'13, pages 422-431, 2013. Google Scholar
  7. Robert Dyer, Hridesh Rajan, Hoan Anh Nguyen, and Tien N Nguyen. Mining billions of AST nodes to study actual and potential usage of Java language features. In Proceedings of the 36th International Conference on Software Engineering, pages 779-790. ACM, 2014. Google Scholar
  8. Tony Hoare. Null references: The billion dollar mistake. Presentation at QCon London, 298, 2009. Google Scholar
  9. Vassilios Karakoidas, Dimitris Mitropoulos, Panos Louridas, Georgios Gousios, and Diomidis Spinellis. Generating the blueprints of the Java ecosystem. In Proceedings of the 12th Working Conference on Mining Software Repositories, pages 510-513. IEEE Press, 2015. Google Scholar
  10. Mary Beth Kery, Claire Le Goues, and Brad A Myers. Examining programmer practices for locally handling exceptions. In Mining Software Repositories (MSR), 2016 IEEE/ACM 13th Working Conference on, pages 484-487. IEEE, 2016. Google Scholar
  11. Ralf Lämmel, Ekaterina Pek, and Jürgen Starek. Large-scale, AST-based API-usage analysis of open-source Java projects. In Proceedings of the 2011 ACM Symposium on Applied Computing, pages 1317-1324. ACM, 2011. Google Scholar
  12. Meiyappan Nagappan, Romain Robbes, Yasutaka Kamei, Éric Tanter, Shane McIntosh, Audris Mockus, and Ahmed E Hassan. An empirical study of goto in C code from GitHub repositories. In Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering, pages 404-414. ACM, 2015. Google Scholar
  13. Suman Nakshatri, Maithri Hegde, and Sahithi Thandra. Analysis of exception handling patterns in Java projects: An empirical study. In Proceedings of the 13th International Conference on Mining Software Repositories, pages 500-503. ACM, 2016. Google Scholar
  14. Martin Odersky, Olivier Blanvillain, Fengyun Liu, Aggelos Biboudis, Heather Miller, and Sandro Stucki. Simplicitly: foundations and applications of implicit function types. Proceedings of the ACM on Programming Languages, 2(POPL):42, 2017. Google Scholar
  15. Demóstenes Sena, Roberta Coelho, Uirá Kulesza, and Rodrigo Bonifácio. Understanding the exception handling strategies of Java libraries: An empirical study. In Proceedings of the 13th International Conference on Mining Software Repositories, pages 212-222. ACM, 2016. Google Scholar
  16. Andreas Stefik and Susanna Siebert. An empirical investigation into programming language syntax. ACM Transactions on Computing Education (TOCE), 13(4):19, 2013. Google Scholar