Assessing Programming Language Impact on Development and Maintenance: A Study on C and C++

Author(s): Bhattacharya, Pamela and Neamtiu, Lulian.
Venue: Software Engineering (ICSE), 2011 33rd International Conference on
Date: 21-28 May 2011

Type of Experiement: Case Study
Sample Size: 4
Class/Experience Level: Undergraduate Student
Participant Selection: 4 widely used open source software products
Data Collection Method: Observation


Authors were ambitious to know whether certain programming language choices can help cut the cost of software development since each year “Billion of dollars” are spent on constructing and maintaining software. Therefore, the authors validates the impact of programming languages on software project by looking at whether programs that were written in C++ are easier to understand, maintain, and less error prone than those written in C.

The study looks at four open source application, Mozilla Firefox, VLC Media Player, Blender Animation, and MySQL, which are written in both C and C++. These application were chosen because they have been under development for long period of time, have large number of issue reported, are actively developed and maintained, and widely used by the general public. Since application quality is strictly tied to developer’s expertise, the authors made sure to observe C and C++ source code files that were written by a developer who have been involved in software development for long period of time and were unbiased when asked which language they thought were superior. Through collection of file history and bug reports, the study relieved that the application were actively being replaced from its initial development language of C to C++; and t-test performed on measurement of code’s (as an standalone application and as a whole) cyclomatic and interface complexity, commit count, and number of defects lead to the conclusion of programs written in C++ being least error prone and is easier to maintain. This study is highly applicable to real world scenarios and indicates that software developer should pick their technology choices wisely, such as programming language, since it can cut down cost of software development and maintenance.