At ZDNet, there is an opinion piece must read titled Tempest in a Teapot. A brutal indictment of Java on the desktop.
Java is getting squeezed on two fronts. One, it’s never put forth a succesful desktop platform. Don’t talk to me about applets. They are cool. But that’s about it. And Swing is too hard for the Windows VB and Delphi influenced world. And too damn slow. Why no desktop compiler that optimizes performance for the platform? That won’t damage write once run anywhere. Idealism be damned. Why no VB like IDE? Now there *is* progress on that front, but maybe it’s too late. Two, you now have .NET attacking Java where it has found a huge degree of adoptance, server side apps, and it will surely be simpler and easier to use. J2EE is extrememly powerful, but complex.
No, I don’t think Java is dying. Far from it. But I hope to see some real progress made on those these fronts in the future. I really think the Java platform is becoming bloated, the focus has been to encompass as many functionalities in it’s APIs as possible, and if the focus would shift to the big fundamentals – ease of development, ease of deployment, and speed (on the desktop – server side apps are just fine thank you), well Java would be really kick ass and it’s future secure.