Title
A Large-Scale Study Of Programming Languages And Code Quality In Github
Abstract
What is the effect of programming languages on software quality? This question has been a topic of much debate for a very long time. In this study, we gather a very large data set from GitHub (728 projects, 63 million SLOC, 29,000 authors, 1.5 million commits, in 17 languages) in an attempt to shed some empirical light on this question. This reasonably large sample size allows us to use a mixed-methods approach, combining multiple regression modeling with visualization and text analytics, to study the effect of language features such as static versus dynamic typing and allowing versus disallowing type confusion on software quality. By triangulating findings from different methods, and controlling for confounding effects such as team size, project size, and project history, we report that language design does have a significant, but modest effect on software quality. Most notably, it does appear that disallowing type confusion is modestly better than allowing it, and among functional languages, static typing is also somewhat better than dynamic typing. We also find that functional languages are somewhat better than procedural languages. It is worth noting that these modest effects arising from language design are overwhelmingly dominated by the process factors such as project size, team size, and commit size. However, we caution the reader that even these modest effects might quite possibly be due to other, intangible process factors, for example, the preference of certain personality types for functional, static languages that disallow type confusion.
Year
DOI
Venue
2017
10.1145/3126905
COMMUNICATIONS OF THE ACM
Field
DocType
Volume
Procedural programming,Confusion,Programming language,Functional programming,Commit,Computer science,Visualization,Software quality,Sample size determination,Personality
Journal
60
Issue
ISSN
Citations 
10
0001-0782
7
PageRank 
References 
Authors
0.44
12
4
Name
Order
Citations
PageRank
Baishakhi Ray173734.84
Daryl Posnett257819.11
Premkumar Devanbu34956357.68
Vladimir Filkov4150375.32