When you think of Java, you immediately think about server-side code. It's got a bad rap on the client and I don't feel like that perception will change much... not on a large enough scale.
The java community itself has to blame for the mess on the client side. They are doing some stuff on this front but will take time. Java's UI API, Swing is a bit slow. What really caused a mess for java on the desktop is dev's making UI designs. Many crappy, user -'UN'friendly apps were made. I suppose for larger complex UI's designers should be brought in.
If you guys have no real work; have a look at a few of the better Java desktop applications here.
Java has done a commendable job in keeping itself platform independent, but the costs seem to be quite high. There is this lowest common denominator rule it has to follow.
Another valid point. Java's strengths are it's weaknesses and I suppose same for the other languages/platforms.
It's really cool how each of us stuck out for our own lang. These discussions would have been slightly boring if all of us had been on the same side.
p.s. the same side would obviously be Java :)