And the Programming Language of 2006 is …

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.

Published
Categorized as Java

By Greg Luck

As Terracotta’s CTO, Greg (@gregrluck) is entrusted with understanding market and technology forces and the business drivers that impact Terracotta’s product innovation and customer success. He helps shape company and technology strategy and designs many of the features in Terracotta’s products. Greg came to Terracotta on the acquisition of the popular caching project Ehcache which he founded in 2003. Prior to joining Terracotta, Greg served as Chief Architect at Australian online travel giant Wotif.com. He also served as a lead consultant for ThoughtWorks on accounts in the United States and Australia, was CIO at Virgin Blue, Tempo Services, Stamford Hotels and Resorts and Australian Resorts and spent seven years as a Chartered Accountant in KPMG’s small business and insolvency divisions. He is a regular speaker at conferences and contributor of articles to the technical press.

2 comments

  1. I`m surprised JavaScript didnt gain any popularity, considering that it is the most popular language for doing Ajax.

  2. 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.

Comments are closed.