UCL Discovery
UCL home » Library Services » Electronic resources » UCL Discovery

A Study of Programming Languages and Their Bug Resolution Characteristics

Zhang, J; Li, F; Hao, D; Wang, M; Tang, H; Zhang, L; Harman, M; (2019) A Study of Programming Languages and Their Bug Resolution Characteristics. IEEE Transactions on Software Engineering 10.1109/TSE.2019.2961897. (In press). Green open access

[thumbnail of PLStudy_arXiv.pdf]
Preview
Text
PLStudy_arXiv.pdf - Accepted Version

Download (2MB) | Preview

Abstract

IEEE Bug resolution is an essential part of software development. The impact of programming language on bug resolution has been a topic of much debate. Taking Python as an example, some hold the view that bugs in the language are easy to handle because its code is easy to read and understand, while others believe that the absence of static typing leads to more bug-handling effort. This paper presents the first large-scale study that investigates the connection between programming language and bug resolution characteristics. It follows the recent trend of empirical scientific reformulation of long-standing, but hitherto anecdotal, `great debates' about the influence of programming language and paradigm on software engineering concerns. We analyse bug resolution data from over 70 million SLOC drawn from 3 million commits to 600 GitHub projects in 10 languages. The results suggest that statistically significant differences in resolution time and patch size exist between different languages and language categories. In particular, Java bug resolution consumes less elapsed time from raise to resolve, while Ruby consumes more. We also found that patches tend to touch significantly more files for strongly typed and for static languages (as one might expect given the need to maintain type annotations). However, despite this apparent extra effort, we found evidence for a significantly lower elapsed resolution time for bug resolution committed to projects constructed from statically typed languages. This finding sheds further empirical light on the debate about the importance of static typing. Indeed, more generally, we found no evidence for any correlation between bug-resolution time and size (lines or files touched), nor any evidence for correlation with other potential confounding factors, such as problem features (e.g., size, age, and commit number) and target domain.

Type: Article
Title: A Study of Programming Languages and Their Bug Resolution Characteristics
Open access status: An open access version is available from UCL Discovery
DOI: 10.1109/TSE.2019.2961897
Publisher version: http://dx.doi.org/10.1109/TSE.2019.2961897
Language: English
Additional information: This version is the author accepted manuscript. For information on re-use, please refer to the publisher’s terms and conditions.
Keywords: Computer bugs, Software engineering, Java, Correlation, Software, Data mining
UCL classification: UCL
UCL > Provost and Vice Provost Offices > UCL BEAMS
UCL > Provost and Vice Provost Offices > UCL BEAMS > Faculty of Engineering Science
UCL > Provost and Vice Provost Offices > UCL BEAMS > Faculty of Engineering Science > Dept of Computer Science
URI: https://discovery.ucl.ac.uk/id/eprint/10099088
Downloads since deposit
223Downloads
Download activity - last month
Download activity - last 12 months
Downloads by country - last 12 months

Archive Staff Only

View Item View Item