Java Strikes Back
Hot on the heels of Silverlight (perhaps too close to avoid calls of 'catch-up') comes JavaFX, Sun's answer to Flash and like (and hopefully solution to some of the joys of J2ME). One does, however, wonder if they've heard of brand dilution.
Unlike J2ME, however, this isn't Java but the scripting language formerly known as F3. However, the mobile part appears to be OEM-only, so we'll have to wait and see if it appears on many devices.
In other Java news, Sun are apparently starting to take the desktop seriously. There are good reasons why Swing hasn't done well: it has a steep learning curve and requires the threading of all but trivial tasks to get good performance, and in the past platform fidelity has been rubbish (the GTK+ theme is still extremely dodgy). Java 6 resolves most of the fidelity problem, and JSRs 295 and 296 should resolve some of the former. Of course, this still leaves the widespread belief that Java is rubbish on the desktop, which may be the hardest bit to overcome. All the more reason to ensure that your Swing application integrates with the desktop and thus that the user doesn't know (or care) what powers it.
Why C# is better than Java....
Can't quibble
I fondly remember writing JNI code for system tray integration for the very first Swing project I ever worked on. I'd have to therefore concede the point - and it is still, over six years later, unacceptably hard to get a Swing application transparently integrated into the desktop of your choice.
I'm currently playing with Objective-C again - even less cross-platform than C#, but rather neat, with both the blessing and curse of being able to be mixed with C. XCode isn't a patch on IntelliJ though.