Skip to main navigation Skip to search Skip to main content

A Study of Bug Resolution Characteristics in Popular Programming Languages

    Research output: Contribution to journalArticle (Academic Journal)peer-review

    16 Citations (Scopus)
    536 Downloads (Pure)

    Abstract

    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.
    Original languageEnglish
    Pages (from-to)1 - 1
    Number of pages15
    JournalIEEE Transactions on Software Engineering
    Volume0
    Issue number0
    Early online date24 Dec 2019
    DOIs
    Publication statusE-pub ahead of print - 24 Dec 2019

    Research Groups and Themes

    • Programming Languages

    Keywords

    • programming language
    • bug resolution
    • empirical study

    Fingerprint

    Dive into the research topics of 'A Study of Bug Resolution Characteristics in Popular Programming Languages'. Together they form a unique fingerprint.

    Cite this