You said Â C# and .NET which allows any language to compile to the CLI assembly are arguably even more powerful than Java right now Â
Wrong, "any" language can not compile to CLI. Any .net language flavor can. There is a huge difference, when you code VB on .net, this is no more VB but an ersatz of C# : same structure, same paradigms, same API. Same for Cobol.net ... this is not Cobol my friend ! By the way when working on .net everybody ends up doing C#. Like everybody does it on Windows thru the .net and not Mono ... and people ends up doing MS SQL Server sometimes ;)
About C# beeing "more powerfull", this remember a "I got a bigger one than yours" story so I am not even discussing the question. The question is not the size or power, but how clean it is and what you do with it. At the end of the day, most people think theirs are the more powerfull ;-)
About lang, there half a dozen of language that could blast C# and Java in each of their alleged "power" domains. But none are used and none have reached the masses.
If C# was not made by MS, it would have already died, because the clone is too close from the original to survive.
But fortunatly for you MS is still spending some cash and giving some to Novell to try to make people dream of an hypothethical .net outside an MS OS.
Guys, wake up : this will never happen for obious strategical reasons. Do you think that MS will kill windows biggest platform advantage for nothing ? C'm'on, MS does cool things but this whole .net story is realy a self-trap for MS : they did not managed to lock Java (remember the JDirect/RNI/WFC) and could not let it go alone or it could have swallow all their developers (do you liked MFC ?)... so they decided to go the dolly way : go & clone that thing :)
Now they are in a no-no situation : no, we can not make it really cross platform and no we can not get rid of it. Funny situation isn't it ?
I would really like to know how this would end : portability and windows killed or .net killed by MS to prevent harm to Windows... who knows ;)