Java on the desktop could be (have been?) great, but Sun screwed the pooch on adding the details that a good Java desktop experience needed. The Swing/SWT thing aside, they were slow to, or never did, ship support for various popular audio/video codecs, system tray integration, support for various IO channels (serial ports back in the old days, later USB, Bluetooth, etc.) and probably a whole laundry list of other things I'm forgetting.
It's sad too, because I'd still much prefer to push Java for certain classes of solutions, and still - to this day - find audio/video support (among other things) lagging.
I guess, once Java took off as a server side platform, Sun just didn't have the vision or courage to seriously push Java on the desktop. Sad. :-(
>> to this day - find audio/video support (among other things) lagging
So somehow the small gang at Mojang pulled off the impossible with Minecraft? Or the excellent apps NASA used to make with Java before the past 3 years or so like WorldWind? Or FusionCharts? or IBM Symphony, or OpenOffice, or SameTime, or HP Virtual Rooms (the last few heavy, heavy media), Apache Directory Studio, Eclipse, NetBeans, soapUI, SQL Developer?
Just an an anecdote, Minecraft refuses to play audio on my desktop because the sound card is not supported, and cannot host a server because the network card is not supported. This is an off-the-shelf Asus desktop.
Looking through their forums, this is relatively common.
So somehow the small gang at Mojang pulled off the impossible with Minecraft? Or the excellent apps NASA used to make with Java before the past 3 years or so like WorldWind? Or FusionCharts?
I said "lagging", not non-existent. And clearly individuals can add support for things that aren't part of the JDK, using various OSS libraries, JNI, custom code, whatever. The point is, the lack of up-to-date, high-quality support for audio and video formats is a major detriment to "java on the desktop" for a wide range of applications.
Java desktop apps are just fine for about 99% of business apps - get some records from the database, make some changes, and store them. But yeah, I wouldn't use it for external customers.
Of course, where I work we're replacing pretty nice swing apps with far-less-nice web stuff. Why? Because the CTO read some trade mag that said nobody is doing fat clients anymore. Glad to see he's earning his salary. Sigh.
It's sad too, because I'd still much prefer to push Java for certain classes of solutions, and still - to this day - find audio/video support (among other things) lagging.
I guess, once Java took off as a server side platform, Sun just didn't have the vision or courage to seriously push Java on the desktop. Sad. :-(