Re: Languages you know
I'm not going to dispute that there are a lot of applications for which Java is nto appropriate. However, I will dispute that Java applications have to be slow. I've spent quite a bit of time at my current job proving otherwise.
A lot of people are concerned with what they've heard about Java and think the performance of the VM and garbage collection is a risk... but what I've found is that actual execution performance of Java is rarely the bottleneck. One reason for Java's perceived slowness is again, Swing... and it's lack of desktop hardware acceleration support. It's more likely to be I/O, poor memory management (again, a lot of Java developers think you can ignore this, which often results in bloated, leaky, nasty code), or poor selection of algorithms... though I suppose any of these can vary based on your app's profile. Garbage collection is much less of an issue than it used to be, too, though there's still room for improvement.
All things considered, I'd prefer C++ for most projects (mostly b/c it gives the programmer more control, and I hate Java's attempts to hide pointers from you), but that doesn't mean Java doesn't have uses.