Microsoft is leaving Java in the dust, but the company still has room to grow in the developer arena, a key executive said. Speaking at the Microsoft FAM (Financial Analyst Meeting) on July 27 in Redmond, Wash., Bob Muglia, Microsoft's senior vice president of Server and Tools business, said Microsoft's .Net platform has outpaced Java, particularly the Java Enterprise Edition, over the past five years to become the development platform of choice for enterprise development.

No.
.net isn't much of a competitor to Java, it's a replacement for the Windows API. Microsoft is hardly competing, they didn't implement a runtime environment for any OS besides Windows and they couldn't care less whether mono is compatible with the latest .net implementation and APIs or not.

Can you imagine the damage it would do to Microsoft if after the majority of applications for Windows have been ported to .net, someone could get a Microsoft developed, properly implemented, and up to date version of the .net rumtime environment to run those applications perfectly under Linux or OS X. Windows would loose a lot of it's major selling points if it had no exclusive software any more.

Java's selling point is portability across platforms, .net on the other hand was never implemented by Microsoft outside of Windows. If you ask me they decided .net was a good idea because it means that .net applications will run on *windows* regardless of the cpu architecture and hardware.

Microsoft is trying to replace the Windows API with .net and people know it, so of course the large share of people who were already using the Windows API will migrate to .net considering it's the future of what they're already using. If that 60% figure is accurate, all it tells me is that Microsoft is effectively replacing the older Windows API with what they envision as a way of having people compile their Windows apps only once before distributing to every hardware configuration capable of running Windows.

Calling .net a competitor to Java is true on a technical basis, but Java's target is one that .net alone isn't interested in, and that's people who want to compile a program once for it to run on several different operating systems. For all it's worth, .net is the same threat the Windows API was, except more modern and easier to use.

I agree with this, in that the fight has always been between Java and the Windows platform. Of course, Microsoft's objective is to extend the Windows platform to every computing device, from server to desktop to mobile to home theatre. Java is but a drop in the bucket compared to that.

The best move to ensure Java's survival is to focus on interoperability with the Windows platform, IMO.