I've recently been to a few interviews at various companies, and the topic of Java vs .NET seems to be a popular topic to discuss... so it seemed like a good blog post!
There are plenty of comparisons of Java vs .NET on the net. Those with personal preferences can argue the merits of each and back them up with good solid reasons.
As an architect and technology leader, I'm more interested in the practical side of comparing the two. I do have a broad and deep background in IBM and Microsoft technologies and have worked with .NET / Visual Studio IDE, and Java / Eclipse IDE as well.
My career has lead me down the direction of working with .NET more than Java. It's not necessarily that I "decided" or had a preference to do so, but that was the path my career took. I have worked with many talented developers over the years (many with deep experience with both Java and .NET). My observations and feedback on the two languages are that it seems that teams can accomplish more in less time with .NET compared to Java. It also seems that there are greater resources and support for .NET as compared to Java, as well as availability of talent. Perhaps this is because Microsoft is a large company with vast resources (and $) which evangelizes .NET and all of the Microsoft portfolio of products. I realize this is simply based on my personal career experiences and everyone has unique perspectives on this.
However, many systems are built on Java for a variety of good reasons. J2EE is a large scale enterprise programming platform that can handle the most robust projects and situations. It really comes down to looking at the particular goals and requirements of the system(s), organization(s), and evaluating staffing and costs for each.
I remain technology agnostic and open minded on the Java vs .NET debate, and believe every situation is unique and should be evaluated for the best programming platform.