- Java has a nice base for its platform. The compiler is very clear and objects make sense. However, the resulting binaries are still not a comfortable fit with any platform anymore. All evolution of the platform has come with its own alphabet soup of add on technologies that make developing a modern app much too confusing.
- C# is Java, only better. I love how you can bootstrap your own development environment by just installing the .NET SDK. However, it has the same disadvantage in seeming bloated and slow unless you start to delve into nonmanaged code, which loses its prime high-level advantage, as far as I’m concerned.
All in all, I’d choose from those three if I was to develop something. At this point it falls neatly into the Mac, Windows and Web platforms respectively, (and, with jQTouch, the latter also works into mobile development too). That’s the way it will remain for the time being until I can get some Objective-C under my belt.