Stumbled over a link to this article called "Has Sun Given Up on the Desktop?" while surfing usenet tonight. Interesting commentary on the state of GUIs on Java. Java's not slow, and actually does quite well cross-platform, but Swing isn't quite the answer for bringing Java to the desktop. Here are some quotes:

And whether intentional or not, Sun's ambivalent attitude [towards the desktop] is tantamount to a forfeiture of the desktop software market to Microsoft.... Sun cannot be forever passive with regard to Swing and expect Java to hold and expand its prominence.

Sun needs to realize that the Java platform can't survive against Microsoft indefinitely as a server-side technology only.

... later...

Why isn't Swing the de facto standard for GUI development? The first reason is perception. Sun has allowed its competitors to successfully label Swing GUI applications as second class. Swing has a reputation for being a slow-performing, memory-consuming API.

I believe the author misses a bit here in this second quote. He mentions that Swing should be more and more usable as hardware gets faster. This is flawed logic. If Swing's performance is as good as native was two years, it's still not good enough today. There is something wrong with Swing, or IBM wouldn't have developed SWT and Apple's Java team wouldn't have wasted time hardware accelerating Swing on OS X (though OS X has its own performance problems).

But one place he's right on the money is by comparing the complexity of Swing with the ease of creating a GUI using VB 6.0 or Windows.Forms. If you could create Swing GUIs as easily as you can in VB, you'd be on to something. The author unfortunately isn't familiar with VB, however, as he apparently believes that the VB GUI IDE is superior in what it exposes than, say, GUI development in Netbeans. It's not. As with much of VB, you can get 80% of what you want with the GUI tools in about 20% of the time it'd take in another langauge, but that last 20% is a real pain in the arse, just as it is anywhere else. (There's also the issue of his saying that VB is, "VB is boring and limited as a programming language", which it isn't. It's all 0's and 1's, and once you get API calls down, there's really nothing you can't do in VB.)

Anyhow, interesting article.