As every year, IEEE has released the rankings of the top programming languages in 2016 as well. These rankings are based upon the trends that were noticed over the last year and take into account several metrics. You can find more details at the IEEE Spectrum page, but here is a snapshot of what the top-20 rankings look like:
In of itself, these rankings don’t tell much except what languages were popular over the last year. But, if you look closely at the rankings some interesting details can be found and can even help point towards the trends our industry is heading.
The most interesting trends start to become visible when you compare these to the rankings in 2015. The top three spots in 2015 were occupied by Java, C and C++, specifically in that order. The ranking score for these top-three languages was also between 0.5 in 2015. Python and C# occupied the fourth and fifth spots respectively.
However, this has all changed and in some cases by quite impressive margins. It is interesting to find C dethroning Java on the top spot this year. Despite the age-old legacy of C and lack of object-oriented features, it continues to be used in industry for high-speed computing, and OS/system level work. But the fact that IEEE found it being used in the mobile and enterprise space is quite interesting. Of course, the popularity of C in the embedded computing space is quite undeniable.
Even though it was dethroned, Java is holding strong in second place this year. This is unsurprising considering its popularity in mobile and web environments, not to mention it being a major part of (semi-) legacy enterprise systems as well. What is more interesting is that Java went from having a score of 100, from a maximum possible of 100, in 2015 to just 98.1. This slip of 1.9 points is indicative that while Java remains popular in the web, mobile and enterprise spaces, other languages are starting to eat into its popularity.
The meteoric rise through the charts of Go (from Google) and Swift (from Apple) could very well account for some of the loss that Java has suffered, not to mention gains from other languages. But this fast rising popularity of these two languages definitely makes them something to keep an eye on in the future.
One of the biggest positive surprises is the gain that Python makes this year by overtaking C++! One of the OOP favorites, C++ has fallen from a score of 99.6 to just 95.8; making it a loss of 3.8 points. This fall is even more remarkable than Java’s, especially given how deeply entrenched C++ is in some fields. This makes the rise of Python to the third spot, from fourth, with a score of 97.9 even more impressive.
If you examine the IEEE data more closely it is evident that the biggest growth in application of Python seems to be in the web and enterprise fields. For what has been seen by industry as mainly a scripting language, this gain speaks volumes about the quality of this language. It combines the ease of scripting languages, with the performance of C, and this it appears is something industry is growing fond of. The fact that Python has no presence in the massive mobile space makes this 3rd place even more astounding honestly and only goes to show the momentum behind this amazing language.
Most interesting of all is the relative gain/loss between Java and Python. This is especially highlighted by the score gain by Python and the loss by Java. It seems that we are seeing the rise of a future giant. Will it dethrone Java next year? Highly unlikely. But it wouldn’t be surprising if Python continues its upwards march.
The world keeps talking about Big-data and the IoT, but seeing the trends in programming languages is definite proof that these fields have arrived and will be a major part in the future of our industry.
R is a language that was designed for statistics and it replaced C# at fifth place. This really signals the rise of big data, statistics and data-mining and reinforces the view that a big part of the medium- to long-term future of the computing business remains in data-mining. Consider that overtaking C#, which is used in enterprise, web and mobile spaces, was extremely difficult for R since it is only used in enterprise computing.
The rise of C and its popularity in the IoT space already points towards the emergence of this hyper-connected computing paradigm. But it is the gain that Arduino makes, rising from 17th position in 2015 to 11th position this year that underscores the speed at which our industry is heading towards the realizing of the IoT as a reality. Even the archaic Assembly Language programming gains a spot due to its use in the IoT.
The fact that some older giants like COBOL, Lisp, FORTRAN, ActionScript and Ada are still around is also interesting. It might seem that this points towards academic uses, but it is important to keep in mind that academia usually lives at bleeding edge of programming languages.
So the truth is that these languages find niche applications even today. COBOL and FORTRAN still power some legacy systems in the financial markets. They are the kind of systems where no one wants to turn them off because no one knows exactly what will break. Java has been replacing them over the years, but the niche still remains.
LISP is no surprise since functional languages have been making a comeback and with interest in chatbots and conversational AI rising, this could be pointing to that. But, at this point is more academic and scientific than actual enterprise.
ActionScript is a strange one. The fast evaporation of Flash from the market should have spelled an end to it, but yet it remains, lurking on the web where Flash still remains too.
Ada is still quite popular in government projects due to their rigorous certification processes/requirements many vendors prefer to remain with the known.
Web, Enterprise and Mobile are areas that NAVOMI has strong presence in. Our day-to-day work is in these spaces and looking at the trends it is reassuring to see that we remain well-versed with the latest technologies.
Choosing the most effective language and technologies is extremely important for us at NAVOMI, because not only do we wish to deliver efficient and timely solutions to our clients but we believe that common sense and laws of mother nature still apply in our industry as well. Sticking to these beliefs enables us to deliver solutions in keeping with technology trends.