As if reading my mind... ZD Net News has an article today called The convergence of .NET and Java which points out some of the way .NET is creeping into areas where Java's had the upper hand in the past.

There are also links from the article to two projects that take this potential convergence to their extremes.
Util to take CLR bytecodes to plain Java VM bytecodes, if I read it correctly, and...
Util to make native Java code compile to CLR like Visual J# but for Java code beyond 1.1.4, I imagine.

One quote near the end of the ZD Net article suggests the author hasn't quite "got it" yet:
You can expect IT budgets to develop for two predominant platforms: J2EE, and .NET

I somewhat think and hope not. .NET has made not only convergent evolution an easier task but also "outbreeding" (between species, in this case, which, natch, makes the metaphor fall apart a bit). Legacy Java code -- and long-time Java software houses -- can be made to work with new .NET systems. Legacy VB/VC++ code can now be made to talk SOAP, etc to today's new Java apps. My original point from earlier today was that MS's "in" with the client and the extra "VB-esque" shortcuts programmers can take (eg, web controls *shudder*) if they assume MS and only MS clients will take the phenom of convergence on the server side to dominance by virtue of the simple business truth of "If I can program two systems that reach 97% of my clients in the same time that I could program one system that reaches 99.9%, well, I'm selling out to Bill".

Get it? :^)