Predicting the most popular programming languages
| Sieuwert van Otterloo |
Software researcher Erik Bernhardsson is trying to predict which programming languages are popular in the future, by counting the number of ‘switch from A to B’ blogs on the Internet. The results are surprising. The top 5 consists not only contains new language Go but also the older languages Python, Java, C and C++.
Why predict programming language popularity
Predicting which programming languages will be popular is interesting for two reasons. First of all when you develop a new system that is intended to work for a long time, it is important to choose a programming language that is long-lived. Secondly developers like to upgrade their CV with upcoming languages. Unfortunately, predicting language trends is difficult. Language choices depend not just on the language itself but also on availability of tutorials and libraries. Secondly, choosing a language is often a matter of taste, as it is difficult to prove that a language is truly superior.
Within ICT Institute we do keep track of language popularity. We do this for instance by checking report on usage, such as this one on Hackathon research. We also check the job adverts, check PYPL on Github (see illustration), ask developers in our IT DD projects. Based on this, we maintain an informal buy-hold-sell list.
Using this list we can advise companies which languages are recommended, which are ok and which should be avoided. However this list only describes the current state. We would like to know what is ahead, but as the old saying goes: “predictions are hard, especially about the future”.
Predict popularity using eigenvectors
Software researcher Erik Bernhardsson (@ on twitter) has found a clever way of making predictions. He counts blog titles describing a language switch from A to B. He uses a small python script for counting the number of search results for all combinations of A and B. The results of all these searches are combined in a giant matrix, showing how people are likely to switch. All this data, combined with some eigen-vector data analytics, can be used to compute a final ranking.
The full matrix can be seen in Erik’s original blog post ‘The eigenvector of Why we moved from language X to language Y‘. The image on top of this page shows the top rows of the results. Here you can see the final ranking: lisp and perl will be the least popular language according to this analysis. Node, Rust, C#, Python, C++, Java, C and Go will become the most popular languages.
By looking at the values in the full matrix, one can see which transitions are often described in blog posts on the Internet. Assuming that these blog posts are representative for broader trends, we can make the following bold predictions:
- Everyone will switch from Objective C to Switch for iOS development. In our view, Switch simply is better.
- .NET developers will all switch from Visual Basic to C#.
- Cobol will be replaced by Java, making Java the new legacy language
- Pascal will be replaced by another old language C, and not by any fancy new language
- SQL databases will not be replaced by NoSQL databases
Dr. Sieuwert van Otterloo is a court-certified IT expert with interests in agile, security, software research and IT-contracts.