Recently, the Institute of Electrical and Electronics Engineers, or simply IEEE, published an article which ranks the presently existing programming languages according to their popularity. IEEE claim to have created the 2016 ranking using 12 metrics from 10 sources and have also given the user the ability to switch between ranking modes (such as “trending”, “jobs” and even “custom”, thus rearranging the chart according to their needs). However, what matters to us now is the pure IEEE Spectrum ranking (Spectrum is IEEE’s issue), so you can have a look over 40 of the 48 contenders that participate in the IEEE Spectrum study:
First of all, before examining the ranking itself, we must pay attention that IEEE have carefully given us hints what language can be used for what purposes by sticking one or more of the following icons – a globe denoting the language is used for web development, a screen (or monitor) which indicates that the language can be used for desktop and scientific applications, a mobile phone icon representing the ability of the language to be used in mobile applications development and finally – an icon of a chip meaning the language is suitable for embedded programming.
If we inspect the results, we can state that the most popular language for mobile, desktop and embedded development is C, followed by Java (which fits for web, desktop and mobile apps), Python (for web and desktop apps) and C++ (for mobile, desktop and embedded programming). Considering the ranks themselves and especially the first place winner, I am totally fine, since everything we do have at our disposal as programming technologies today is, one way or another, related to C. Furthermore, because C is a low-level language and works mind-blowingly fast, all operating systems also make use of its velocity. The second language in the chart – Java – surely deserves the silver medal, since it is a truth several billion devices in the world run Java, as well as it is characterized by, on the one hand, an easy-to-use syntax, numerous functionalities, controls and constructs coming out-of-the-box and the ability to magically take care for important stuff instead of you and, on the other hand, a really good performance figures. Third place for Python – I agree with that too, since Python is really quick for processing large amounts of data, thus making it a perfect choice for the server-side language of web applications which work with big lumps of data and must handle a great number of user requests simultaneously. It is a fact that Python has already been displacing PHP from the throne of the most widely-used server-side language for web applications and the chart asserts that, placing PHP at 7-th place. I am, however, not entirely sure the brains at IEEE have been fair about their criteria for PHP and have remembered that PHP 7 is already out and has outstanding performance compared to the older versions’ capabilities – that’s, at least, what developers say. But let’s not forget – the people at IEEE are looking more from the perspective of scientists and not developers.
However, what astounds me the most are the already mentioned icons denoting what language is used for what kind of development according to IEEE, because, at some points, they are a bit…nonsensical. Have another look at the winner – C – and ask yourself – have you ever heard of someone using pure C for mobile applications? Hey, IEEE, I think you are getting things wrong here – I know almost everything can be decomposed to C, I already said that, but then, why making a ranking anyway, when we could just say “everything about programing in this world is based on C, so it is the most popular language, the end”. Furthermore, since when can Arduino be considered as a programming language, when it’s a hardware development platform which is actually designed to be programmed on C/C++? And, if you have a quick peek at the chart, do you think HTML can be categorized as a programming language, do you believe more people need Arduino than SQL worldwide and are you sure Java is not suitable for embedded devices as well (think of smartcards and connected devices)?
To summarize, I can state that IEEE’s ranking for 2016 could have been really good if, firstly, the interactive features on the page were better designed and more user-friendly and, secondly, it divided languages into their respective fields of usage in the right way (and not saying C is perfect for mobile apps). Don’t get me wrong, but my general personal opinion is Stack Overflow’s Developer Study is way more accurate since, with no offence to scientists whatsoever, it reflects a more realistic point of view – this of the developers who actually use these programming languages on a daily basis and don’t take irrelevant criteria into account. I stand behind this point although IEEE claim their “pragmatic ranking approach” uses measures that are based on Google Search and deep analysis of data throughout Stack Overflow, GitHub and several other sources.
Anyway, if, after reading this article, you are feeling passionate about the C language which is the winner, go ahead and learn to use it – it’s tough, that’s for sure. You have to allocate memory for everything you do yourself, you have to then clear unused memory resources alone and so on and so on (that’s just a quick example). But still, C is the pearl in the crown of programming, so, go for it – it is and will always be awesome!