TY - GEN
T1 - Assessing programming language impact on development and maintenance
T2 - 33rd International Conference on Software Engineering, ICSE 2011
AU - Bhattacharya, Pamela
AU - Neamtiu, Iulian
PY - 2011
Y1 - 2011
N2 - Billions of dollars are spent every year for building and maintaining software. To reduce these costs we must identify the key factors that lead to better software and more productive development. One such key factor, and the focus of our paper, is the choice of programming language. Existing studies that analyze the impact of choice of programming language suffer from several deficiencies with respect to methodology and the applications they consider. For example, they consider applications built by different teams in different languages, hence fail to control for developer competence, or they consider small-sized, infrequently-used, short-lived projects. We propose a novel methodology which controls for development process and developer competence, and quantifies how the choice of programming language impacts software quality and developer productivity. We conduct a study and statistical analysis on a set of long-lived, widely-used, open source projects - Firefox, Blender, VLC, and MySQL. The key novelties of our study are: (1) we only consider projects which have considerable portions of development in two languages, C and C++, and (2) a majority of developers in these projects contribute to both C and C++ code bases. We found that using C++ instead of C results in improved software quality and reduced maintenance effort, and that code bases are shifting from C to C++. Our methodology lays a solid foundation for future studies on comparative advantages of particular programming languages.
AB - Billions of dollars are spent every year for building and maintaining software. To reduce these costs we must identify the key factors that lead to better software and more productive development. One such key factor, and the focus of our paper, is the choice of programming language. Existing studies that analyze the impact of choice of programming language suffer from several deficiencies with respect to methodology and the applications they consider. For example, they consider applications built by different teams in different languages, hence fail to control for developer competence, or they consider small-sized, infrequently-used, short-lived projects. We propose a novel methodology which controls for development process and developer competence, and quantifies how the choice of programming language impacts software quality and developer productivity. We conduct a study and statistical analysis on a set of long-lived, widely-used, open source projects - Firefox, Blender, VLC, and MySQL. The key novelties of our study are: (1) we only consider projects which have considerable portions of development in two languages, C and C++, and (2) a majority of developers in these projects contribute to both C and C++ code bases. We found that using C++ instead of C results in improved software quality and reduced maintenance effort, and that code bases are shifting from C to C++. Our methodology lays a solid foundation for future studies on comparative advantages of particular programming languages.
KW - developer productivity
KW - empirical studies
KW - high-level languages
KW - software evolution
KW - software quality
UR - http://www.scopus.com/inward/record.url?scp=79959917916&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=79959917916&partnerID=8YFLogxK
U2 - 10.1145/1985793.1985817
DO - 10.1145/1985793.1985817
M3 - Conference contribution
AN - SCOPUS:79959917916
SN - 9781450304450
T3 - Proceedings - International Conference on Software Engineering
SP - 171
EP - 180
BT - ICSE 2011 - 33rd International Conference on Software Engineering, Proceedings of the Conference
Y2 - 21 May 2011 through 28 May 2011
ER -