Java. Yes, Java.
http://www.tiobe.com/tiobe_index/index.htm is the monthly programming language index. It tracks the popularity of programming languages. Java won the 2006 Programming Language award because it was the language that increased in popularity the most during 2005. By 4.77%.
JDK 1.6
JDK 1.6 proved to be quite popular and caused an upswing.
Anecdotally the big news for me in 2005 was the movement of code written in C++ to Java. I spent time on a large project last year which was moving 12.5 millions line of C++ to Java. It was a performance critical desktop application. The performance gains of Java in recent releases were enough. The addition of generics was very attractive to the C++ guys. They thought the time to move to Java was “just right”.
Cold Fusion lives again
One interesting phemomenon is the rising popularity of Cold Fusion in Tiobe’s index. Cold Fusion is Java based an deployable as a WAR or EAR. Its big feature is productivity. I think of it as a Java based Domain Specific Language. Anecdotally Cold Fusion seems to be making headway again for web apps.
The Decline? of Dynamic Typing
The other Tiobe identified trend is the relative decline of dynamically typed languages.
Where does this trend leave the dynamically typed Ruby? From the O’Reilly conference and amongst my peers, there is quite a lot of interest in Ruby. However its popularity in the Tiobe index is only 22, though it is increasing in popularity at the expense of Perl. So, perhaps the book series should be called “Beyond Perl”, rather than “Beyond Java”.
Dynamic vs Static Typing is a subject of programming language textbooks. Which is why I am reading one. Some good stuff on this topic is available here. Robert W. Sebesta, in his Concepts of Programming Languages has this to say:
- Dynamic type binding causes programs to be less reliable, because the error detection capability of the compiler is diminished…
- … languages with dynamic type binding… must be implemented with interpreters rather than compilers.
- Perhaps the greatest disadvantage of dynamic type binding is cost. The cost of implementing dynamic type binding is considerable.
And this on page 223:
“The penalty for static checking is reduced programmer flexibility. Fewer shortcuts and tricks are possible. Such techniques, though, are now generally held in low esteem”.
In his view, Java and C# are on the ascendancy partly because they make the right set of tradeoffs in language features. They combine the right mix of readability, writability and reliability. I have been tinkering with Ruby since the O’Reilly conference last year, when I attended a half day session with Dave Thomas. I am hoping to get the time to do a full comparison of Java and Ruby in those terms.
I`m surprised JavaScript didnt gain any popularity, considering that it is the most popular language for doing Ajax.
JavaScript should really be the only language for doing AJAX. If you did “AJAX” in some other scripting language, n, it would be ANAX!!
Or I could be really pedantic and say it should be AEAX, since ECMAScript is a better name.