I would like to state my views on couple of points mentioned on this thread.
1) It is generally claimed by Microsoft that any language can be made to
produce IL code and thus .NET has many languages compared to java that
has only one language. This is only partly true because of the following
reasons:
i) Same can be done with java also, if the specifications for java byte
code are available. ( I don't know if they are). This isn't something
revolutionary about .NET
ii) Languages sometimes have to be heavily modified so as to make them
compatible with the .NET platform. Take VB for example. There is hell
lot of a difference between vb 6 and vb.net. In fact vb.net is like
learning a new language. The only advantage you might have is *some*
similarity in the syntax between the original language and .NET
compatible language. And some languages can't produce IL code at all if
they aren't strongly typed like java script, vb script.
2) another advantage claimed by .NET is that is uses JIT compiler. JIT
compilers are also (freely) available for java.