4.6 Article

A Large-Scale Study of Programming Languages and Code Quality in GitHub

期刊

COMMUNICATIONS OF THE ACM
卷 60, 期 10, 页码 91-100

出版社

ASSOC COMPUTING MACHINERY
DOI: 10.1145/3126905

关键词

-

资金

  1. National Science Foundation [1445079, 1247280, 1414172, 1446683]
  2. AFOSR [FA955-11-1-0246]
  3. Direct For Computer & Info Scie & Enginr [1247280, 1414172] Funding Source: National Science Foundation
  4. Direct For Computer & Info Scie & Enginr
  5. Division Of Computer and Network Systems [1445079] Funding Source: National Science Foundation
  6. Direct For Computer & Info Scie & Enginr
  7. Division of Computing and Communication Foundations [1446683] Funding Source: National Science Foundation
  8. Division of Computing and Communication Foundations [1414172, 1247280] Funding Source: National Science Foundation

向作者/读者索取更多资源

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.

作者

我是这篇论文的作者
点击您的名字以认领此论文并将其添加到您的个人资料中。

评论

主要评分

4.6
评分不足

次要评分

新颖性
-
重要性
-
科学严谨性
-
评价这篇论文

推荐

暂无数据
暂无数据