Comparing observed bug and productivity rates for Java and C++
Software—Practice & Experience
The Mythical Man-Month: Essays on Softw
The Mythical Man-Month: Essays on Softw
Two case studies of open source software development: Apache and Mozilla
ACM Transactions on Software Engineering and Methodology (TOSEM)
Modernizing Legacy Systems: Software Technologies, Engineering Process and Business Practices
Modernizing Legacy Systems: Software Technologies, Engineering Process and Business Practices
Evaluating the Impact of Object-Oriented Design on Software Quality
METRICS '96 Proceedings of the 3rd International Symposium on Software Metrics: From Measurement to Empirical Results
Identifying Reasons for Software Changes Using Historic Databases
ICSM '00 Proceedings of the International Conference on Software Maintenance (ICSM'00)
Software Quality Issues when choosing a Programming Language
Software Quality Issues when choosing a Programming Language
Populating a Release History Database from Version Control and Bug Tracking Systems
ICSM '03 Proceedings of the International Conference on Software Maintenance
Use of relative code churn measures to predict system defect density
Proceedings of the 27th international conference on Software engineering
MSR '05 Proceedings of the 2005 international workshop on Mining software repositories
Challenges in Software Evolution
IWPSE '05 Proceedings of the Eighth International Workshop on Principles of Software Evolution
An empirical study of process discipline and software quality
An empirical study of process discipline and software quality
Automatic Identification of Bug-Introducing Changes
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
Working for Free? Motivations for Participating in Open-Source Projects
International Journal of Electronic Commerce
Number of Faults per Line of Code
IEEE Transactions on Software Engineering
Using software evolution history to facilitate development and maintenance
Proceedings of the 33rd International Conference on Software Engineering
Graph-based analysis and prediction for software evolution
Proceedings of the 34th International Conference on Software Engineering
Does language choice influence the effectiveness of online introductory programming courses?
Proceedings of the 14th annual ACM SIGITE conference on Information technology education
Hi-index | 0.00 |
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.