The TIOBE index is strange and hasn't got any absolute meaning, but changes are always interesting because they generally mean that something is going on. This month we have to explain why assembly has suddenly made it into the top ten.
Assembly language in the top ten languages in 2016 - doesn't seem credible does it?
Of course we know that assembly isn't a single language. It is different for each machine - only the general approach stays the same. So really it is "assemblers" that have made it to the top ten.
People have been musing on why assembly might be making its way back into the programming world after having been banished by high level languages since the late 1950s. The assumption is that it is connected with the IoT - the Internet of Things. There are so many small devices finding their way into gadgets that previously had no electronics inside, let alone anything a marketing man might want to call "intelligence". The argument goes that these tiny devices have so little memory and power that they demand that programmers produce the most efficient programs possible and this means that they have to use assembler.
This isn't an impossible scenario but there are a few difficulties with it. The first is that most IoT devices are not that small and puny. Devices such as the Raspberry Pi, Intel Edison and most Arduinos have enough processor power and memory to make high level languages adequate for the job. Even the tiny ESP266 is very happy being programmed in C. In fact most IoT devices are happy being programmed in C, which turns in nearly the same performance as handcrafted assembler - not quite but almost. To do much better than C you not only need handcrafted but obsessively polished assembler to do significantly better.
So we have a mystery, made worse by the fact that not only do we have to explain a sudden entry into the top ten languages by assembler, but the fact that it has been on the increase since TIOBE included it in its measurements.
If you compare it to the curve for C it is clear that C has fallen recently - which, if the rise in assembler is driven by the IoT, is very strange. C is a much more important language to the IoT than assembler. As already suggested, you really only move to assembler on the rare occasions when C runs out of steam. Also notice that C++ shows no real trend since 2008.
What is it that is responsible for the increased activity on assembler?
Is it that people are searching for information just because they are curious? If you try to find out about programming in assembler, almost any assembler, then you will discover that there is no single route to success. You are going to have to search some more and then some again. Perhaps it is something to do with the poor state of assembly language documentation that spurs on increasingly desperate searches for more information, even if few people are really actually doing anything as a result?
If you have any ideas what is going on make your suggestions in the comments.
As to the rest of the languages there isn't too much to say.
Top of the pile is Java, followed by C and C++. PHP continues its slide, despite jumping up a little. C# isn't looking too healthy and Swift still hasn't made it into the top 10 - it is currently at number 14 with Objective C just below at number 15. Outside of the top 20 it is interesting to note that Scratch is at number 21, which is probably something to do with the IoT and its popularity on the Raspberry Pi .
Google's Go is still going and its latest destination is the new 1.8. After more than seven years of existence thing have settled down and the new version is as much about consolidation as anything el [ ... ]