I'm a Java Developer who have a few months experience in .NET. Since everybody is pointing out that we can't compare Java and .NET (since C# is just a language) in one too simplistic statement, why don't we make the comparisons a little bit more nuanced? If the question is "which is better?" and the answer is "it depends on what you want to do?", why don't we make a list of which tool (platform) is better than the other for what purpose?
In my experience, C# language since it came later had the benefit of hindsight and so beats Java the language in almost every way
- Properties, Delegates, Virtual keyword since it implements tighter control for subclassing, implementation of Generics
If you're going to use Windows, Windows Forms definitely beat out Java Swing, if only for IDE support (drag and drop really makes for fast development). If not, then of course Swing beats out Windows Forms.
My main skills are primarily J2EE web development but the problem is I don't know ASP.NET so I can't really make a comparison
.NET produces added features and functionalities efficiently because Microsoft unilaterally makes the decision. On the Java side, there is a bit more mess with the Open Source Democracy going on. But I feel like the Open Source model produces more innovation. The problem for the Java Developer is you're on your own to assess the pros and cons of all the frameworks walking around while in Microsoft everything is delivered out of the box.
It would be great to hear other insights