It's always a popular pastime to take the piss out of Java. Fans of other languages continually point of the advantages in productivity given by dynamic languages such as Python or Ruby. These are in some cases very real, although they do tend to prejudice their case with silly things like 'lines of code' as a metric. Others go further and use 'Java Programmer' as an term of degradation, such as Paul Graham, (which is a shame as he does have some very interesting things to say). But all miss the points on which Java succeeds best and hence is a language that is an essential for a huge number of developers.

Firstly, libraries. A quarter of the projects on SourceForge are Java. The Apache Foundation offers a plethora of libraries which make finding well testing reusable code very easy indeed. And there's a large enough community that there's a lot of discussion on how to avoid the gotchas of Java.

Secondly, corporate support. Those who claim Ruby should take over the world obviously haven't run up against corporate bureaucracy, especially in government. When I was young and naive and worked for Unisys they were in the process of changing from a Microsoft shop to a Java shop. Why? Because the government clients demanded Java solutions. You may very well think that the supposed experts designing and writing the software should chose the most appropriate solution. Unfortunately, clients have been told they're always right so often they now believe it in all circumstances.

But the most important thing is the tools. In particular Eclipse (free and good) and IntelliJ IDEA (cheap and beats the bollocks off Eclipse). Where are the development tools for Ruby and Python? You may say that as they're dynamic languages there's less need for an IDE, and that may be so, but nevertheless at the end of the day I'm not so interested in the language – I'm writing software and the end result is the interesting bit. An IDE does the boilerplate for me
(this alone writes off the Python 'lines of code' metric – Java may be verbose, but it doesn't cost me time), manages source control, runs my tests, in short, everything but make the tea. And the person who writes a plug-in for that shall become the richest person in the UK.

Enough rambling. At the end of the day it comes down to tools. A programming language is just one tool among many. And it's the tools that make Java an excellent language for enterprise development.

And I'm not alone in this – Sixth and Red River are considering an IDEA plug-in for Ruby. I's a pleasure to see people putting some effort into filling these holes in the Ruby environment. Maybe if more people acted in a similar manner instead of arguing those silly religious arguments (don't even get me started on Windows vs. Linux vs. Mac zealots) Java would have been dead and buried long ago and we'd all live in a development wonderland. Just a thought…