How Does Bug-Handling Effort Differ Among Different Programming Languages?

by   Jie Zhang, et al.

Handling bugs is an essential part of software development. The impact of programming language on this task has long been a topic of much debate. For example, some people hold the view that bugs in Python are easy to handle because its code is easy to read and understand, while some others believe the absence of static typing in Python will lead to higher bug-handling effort. This paper presents the first large-scale study to investigate whether the ecosystems of different (categories of) programming language would require different bug-handling effort. The focus is on correlation analysis rather than causal analysis. With 600 most popular projects in 10 languages downloaded from GitHub (summing up to 70,816,938 SLOC and 3,096,009 commits), the experimental results indicate various interesting findings. First, different languages require different bug-handling effort. For example, Java and C# tend to require less time but more line/file modification, Python and PHP tend to require less time and less line/file modification, while Ruby and JavaScript tend to require more time as well as more line/file modification. Second, weak/dynamic languages tend to require more time than strong/static languages, while static languages tend to require more absolute line/file modification. A toy predictive model also provides proof that the inclusion of programming languages could improve the effectiveness when predicting the bug-handling effort of a project.


page 1

page 2

page 3

page 4


Can Programming Languages Boost Each Other via Instruction Tuning?

When human programmers have mastered a programming language, it would be...

BuGL – A Cross-Language Dataset for Bug Localization

Bug Localization is the process of locating potential error-prone files ...

Understanding Resolution of Multi-Language Bugs: An Empirical Study on Apache Projects

Background: In modern software systems, more and more systems are writte...

On the Bug-proneness of Structures Inspired by Functional Programming in JavaScript Projects

Language constructs inspired by functional programming have made their w...

To Type or Not to Type? A Systematic Comparison of the Software Quality of JavaScript and TypeScript Applications on GitHub

JavaScript (JS) is one of the most popular programming languages, and wi...

Characterizing Bugs in Python and R Data Analytics Programs

R and Python are among the most popular languages used in many critical ...

Learning how to listen: Automatically finding bug patterns in event-driven JavaScript APIs

Event-driven programming is widely practiced in the JavaScript community...

Please sign up or login with your details

Forgot password? Click here to reset