But I do see an upswing in .NET job openings.

I've seen that also, but most of that is just companies that where serving ASP moving to serving ASP.NET. When it comes to large scale development, I still see a lot more Java then .NET.

I definitly think Java is beginning to calcify in a big way. The platform (which is an evolutionary dead end) is stagnating. Building J2EE apps feels like running through a swamp in heavy boots.

I think Java is failing under the load of it's own dead weight. They need to take the latest version of Java, nuke the backwards compatability stuff, clean up the cruft of backwards compatability, fix the basic errors that couldn't be addressed because of backwards compatability, and then update whatever is left over.

The industry is ripe for a new thing, .NET might be the new shiny for awhile.

What I would like to see is somebody take the multi-platform virtual machine theory and optimize it for different classes of machines. There is a fundamental difference between a client for users and a client for servers.

It would also be nice to have a virtual machine that didn't write language assumptions into the machine. I know both Java and .NET support multiple languages, but in both cases languages other then the primary one had to be adapted for the virtual machine. And yes, some of that probably can't be avoided, as older languages generally didn't handle security as a basic language feature. But the current generation of virtual machines are not general enough.

Jay