How Does Bug-Handling Eort Dier Among Dierent Programming Languages?

Jie M. Zhang,Feng Li,Dan Hao,Meng Wang,Lu Zhang
2018-01-01
Abstract:Handling bugs is an essential part of so‰ware development. Œe 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 e‚ort. Œis paper presents the €rst large-scale study to investigate whether the ecosystems of di‚erent (categories of) programming language would require di‚erent bug-handling e‚ort. Œe 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 €ndings. First, di‚erent languages require di‚erent bug-handling e‚ort. For example, Java and C# tend to need less time but more line/€le modi€cation, Python and PHP tend to need less time and less line/€le modi€cation, while Ruby and JavaScript tend to need more time as well as more line/€le modi€cation. Second, weak/dynamic languages tend to need more time than strong/static languages, while static languages tend to need more absolute line/€le modi€cation. A toy predictive model also provides proof that the inclusion of programming languages could improve the e‚ectiveness when predicting the bug-handling e‚ort of a project.
What problem does this paper attempt to address?