I'm a java developer so I'm partial to it. Java 5 (1.5 sdk) is an excellent language, it's come a long way and has finally, IMO, become the language we were promised a decade ago.

I develop in Eclipse (eclipse.org) which is an open source and very powerful IDE. There are hundreds of plugins out there that well help you with just about any project. The [url= http://"http://www.eclipse.org/vep/WebContent/main.php"]visual editor project[/url] adds a RAD-type environment for developing appliations.

The nice thing about Java is your appliation will run on more platforms than just windows. You can target any OS with a JVM available, and there's also J2ME devices such as Blackberries and many phones you can develop for.

There's nothing wrong with C#, either, I work with several .NET developers, but my opinion is it's not quite as flexible, and doesn't have nearly the support of the open source community that Java does today. C#.NET is very standardized though, and most projects don't rely on non-MS libs, so that's an advantage in corporate environments. Java on the other hand, has a plethora of tools and libraries out there you can include in your applications.

If you decide to go the C# route, the Visual Studio Express versions are the way to go. 3rd party tools for MS development just can't match up.