|COBOL being in the top 20 (at 20) means it gets its own|
long term trend graph!
A lot of people will say 'not much' because blar blar blar.
The simple fact is that Tiobe is fun in one way, a bit rubbish in another but a useful indicator non the less. For COBOL to be at 20 and for Java to have re-emerged as number one will cause many people cognitive distress.
- How come Scala is at 28?
- How come Clojure is not in the top 50.
- Why are legacy imperative and OO languages in resurgence?
Before we go any further let us tackle the 'Tiobe is bollocks' argument.
There is supporting evidence; indeed.com shows the long term decline in COBOL jobs being reversed then flattened.
We also see upticks in C++ and Java on indeed. Interestingly we do not see the same uptick for C; I have no idea why but it does show how all these things are just indicators and nothing more.
We can see Scale and Clojure are growing fast in the job market but are still an order of magnitude behind the big players. Right now Scala is similar to COBOL indeed but sits a few steps below on the Tiobe (not in the top 20 yet).
|Tiobe Top Twenty For November 2015|
What does all this mean?
Personally I think it means the language revolution is over. Indeed, the distributed computing revolution is over. This does not mean progress has stopped, it is just no longer revolutionary. Languages like Java and C++ are so well evolved that they do not need to be replaced (I can hear people shouting at me already). They are the Otto cycle engines of the computer age. One day something fundamentally better will appear or, more likely, some change outside the industry will force a paradigm shift which will reflect its self in new programming techniques (think electric cars and global warming).
How can I go around saying the revolution is over or that Java and C++ are good enough? Also, how is this relevant to COBOL. The COBOL issue is down to two things: People realise it is going nowhere but the people programming it are; new people need to be hired and learn the skills. COBOL is going nowhere because the alternatives have not turned out to be enough better to justify the cost of rewriting all the existing systems which use it.
This is relevant to Java, C++ and C etc, because the same is true of these. They are all legacy languages now and they are all good enough. Again, how can I go around saying that? Well, the revolution in languages is over but the information technology revolution has not ended; it has moved. Revolutionary development is now in big processing, big data and now ways of applying prodigious parallel programming. The truth is that algorithmically processing terabytes of data is modelled at a higher level than programming languages and so any language (within reason) is as good as the next. Conversely, getting the nodes in a compute grid to communicate very quickly indeed is the sort of low level challenge these legacy languages are rather good at.
It is possible that middle ground semi-functional languages like Scala might slowly replace the true legacy incumbents. I personally doubt it given current trends but who knows, maybe in 10 years time that will be the case. Equally, in ten, twenty and even 30 years time there will still be tens of billions of lines of C, C++, COBOL and Java out there and jobs available for people to write in them.
The revolution is dead, long live the revolution.