Programming Languages and Code Reuse—The Long-Term Trends
From its infancy, the software development industry has struggled to reduce costs, improve time to market, promote product quality and maintainability, and allocate resources to their most efficient uses. QSM recently completed a study to look at the changes in the software development industry from 1980 to the present. The results of the study help us understand how the use of various programming languages has changed over time, to what extent code is reused, and the impact of language on project size. This study was completed using QSM’s database of more than 8,000 business projects completed since 1980 and resulted in several interesting insights:
1. Java, though popular, accounts for only one quarter of all development projects. For projects put into production during the 80s and 90s, COBOL was the dominant programming language. In the early 2000s, the top three programming languages were COBOL, Visual Basic, and Java. Java ultimately eclipsed COBOL and has continued to be the most frequently used primary language, accounting for 26 percent of projects completed after 2008 (This study includes projects completed with more than 600 programming languages since 1980, including approximately 200 primary programming languages in use since 2000.) COBOL is the second most popular programming language accounting for 11 percent of projects completed in the same period. People are often surprised at the enduring presence of COBOL, but the majority of recent COBOL projects in our database represent maintenance releases of existing systems rather than new developments.
2. Single language projects are on the rise. The study also evaluated the use of single versus multiple programming languages (see figure 1). We expected the data to show that single language projects were on the decline, but our database had a surprise in store for us. We suspect that development class (whether a project contains entirely new functionality or enhances an existing system) may be influencing the results below. Over the past several time periods, enhancements to older systems have increased relative to new developments. Enhancements to legacy systems that used a single language may use single languages as well.
Figure 1: Single language versus multiple language projects over time
3. Projects are continuing to shrink due partly to code reuse and more powerful programming languages. On average, today’s developers deliver about one fourth as much new and modified code per project as they did thirty years ago. This size reduction most likely reflects a combination of factors. First of all, there is more unmodified code.Whether it takes the form of frameworks, reused/legacy code from existing applications, or generated code, reuse comprises an increasing portion of delivered applications. Secondly, programming languages and methods are more powerful and effective. Astechnologies and development environments continue to evolve, each line of code delivers more “bang for the buck” per line of code in terms of functionality.
Looking at the long term trends associated with programming language and code reuse is just one small way to improve upon software development and increase the number of successful implementations. But, programming languages and code reuse are just the beginning. We’ll also be looking at the long-term trends of project size, scope, and productivity in future research studies.