I don't understand why people seriously use Java. I know that most colleges and schools teach kids to program in Java, but that doesn't mean it should be used in the real world (how much stuff do you learn in school that really is meant to be used in the real world?). It is a "gateway language" if I had to choose a name for it. If you are doing web development, use OO/PHP or Ruby (I don't recommend ASP simply because I write in it almost everyday and it isn't that great). If you are doing desktop development, use C++ and make it portable.
A) PHP and Ruby are (nearly) completely OS independent, and I have never run into problem moving from one OS to another (with PHP, I am just learning Ruby, so I have no personal experience with moving it. I have heard good stories though).
B) C++ is like a hairy Java on steroids. No, it isn't as clean, but it is much faster and more powerful.
C) You can run C++ apps on embedded devices without the bloat of a virtual machine to run the bytecode.
I would greatly enjoy someone explaining to me why Java is taken seriously. It is something that has been bugging me since high school.