
In the past half year i have been doing two projects, of which one in .NET (C#) and one in Java. As far as i can tell now I certainly prefer Java over .NET. Although with "out-of-the-box"-programming in .NET (with "out-of-the-box" i mean simply installing Visual Studio) you will get a result in less time, .NET misses the big (Open Source) community that Java has. While there are expensive IDE's for Java, like IntelliJ, there are also various Open Source alternatives, of which NetBeans and Eclipse are the two most well known.
Especially Eclipse is an extremely beautiful IDE, if not the best IDE ever created. But Eclipse is more then just an IDE. In fact it is a platform to create IDE's. And by default, when you download the official Eclipse release, it comes with JDT, the Java Development Tools. The architecture of Eclipse is completely build on the idea of plugins. Almost every part of Eclipse is a plugin, including the Eclipse core. This is one of the reasons why Eclipse is so nice. It is very easy to add new functionality to the IDE, or even to completely create a new IDE build on top of the platform. Because of the license of the Eclipse platform, both Open Source and commercial plugins are allowed. And as you can see on sites like eclipse-plugins.info there are *a lot* of plugins available, of which a vast amount is developped as Open Source.
Although a lot of people use Eclipse to develop Java you can use it for a lot more because of the plugins. Examples include: C++, COBOL, PHP & Python, Haskell, NSIS or even UML and more...