Interesting link from InfoWorld, worth at least a brief read.
Java increasingly threatened by new app dev frameworks
I can't really disagree with his supposition and he pulls a lot of numbers to support his case. But from a high-level view, what the heck is happening?
I remember 1998, when Java was still a fledgling "web" language. I was around in 2000 when I became the last class at my University to use C++ for first year courses. And here we are in 2008 talking about the "death of Java" and comparing it COBOL. The article explains that Java is effectively being supplanted by .NET, Ruby on Rails and PHP, but I don't think that it's capturing why?
Here's my theory: languages are alive but Java hasn't really fought to survive. Microsoft's .Net is a comparable technology, but the last few years have seen several innovations from MS: WCF, WPF, LINQ (and and everything underneath it), MVC (i.e.: struts) and all kinds of other things that seem to be just around the corner. Even VS 2008 doesn't feel done. Most people are barely rolling out .Net 3.0 and MS is already pushing around 3.5 and elements of future versions.
But Java just doesn't have that developer backing. Sure IBM evangelizes the stuff and educational institutions like to use anything they can find for free, but it's still "behind the curve". Eclipse is definitely becoming competitive, but I just don't see the whole framework of tools/language/support being pushed as hard or as fast by IBM/Sun as MS is doing with their tools.
Of course, we'll see how PHP and Ruby (the apparent heirs) actually perform over the coming years. All of the arguments I've heard for/against the technologies seem mostly ideological. People don't like tools that make them uncomfortable.
But at some point the language becomes just as relevant as the tools around that language. And I'm not convinced that Java is really dead, so much as Java needs a better toolset.
Of course, YMMV