Romain Guy, a prominent contributor to many open-source Swing projects, was recently interviewed on InfoQ. The brief video interview focuses on what makes a client "filthy rich," convergence of various media formats in client applications, and whether applets will enjoy a resurgence.
Romain Guy has contributed to many Swing projects, including those in SwingLabs, and together with Sun's Chet Haase, is working on a book on developing Java "filthy-rich clients."
In a recent interview, Guy told InfoQ's Floyd Marinescu that while Swing apps don't look good right out of the box, they can be made to shine if you know just what knobs to turn:
It looks bad by default. You have to change it to [get] a good-looking application. Swing makes that really easy. You can override everything, the behaviors, the feel, you can change the look.
You have the powerful Java2D API [that] gives you all the drawing tools you need to create very rich user interfaces, with animation and nice effects. It’s the same technology we see in the old-style Swing applications, [and] with the same technology we can create things [that look] similar to the Vista [UI].
On the choice between Ajax and Swing, Guy pointed out that:
Swing doesn’t need to compete with Ajax. [The two] can complement one another. I use the Flickr Web site often, and there is a lot of Ajax there... When I upload my photos to Flikr, I use a rich client, because that’s just easier. Ajax and rich-clients should find the tasks they are the best at, because in the end, it’s for the user. Forget about all the hype, and just focus on what the user wants.
Guy noted that a new generation of user interfaces are going beyond the traditional notion of a thick client, and morph into what he and Chet Haase term "filthy-rich" UIs:
When you bring up Windows, most rich clients aren’t that rich, actually. They’re just gray and dull and have a lot of buttons and text fields. We needed to find a term to talk about clients that go beyond that—rich clients with animation and 3D. The kinds of stuff you see on Vista today. We used the term filthy-rich clients to talk about those clients that tried to go beyond the existing user interfaces...
Rich-clients are getting better and better. They steal ideas from the Web, so we are now at this integration of several media. You have 3D, you have video, it goes beyond just the images we've had so far.
What do you think of the role of "filthy-rich" clients in enterprise applications? Do you think that richer user interfaces add value to enterprise users, or are they merely eye candy?
I think that Windows shows that the more visual elements are appealing; and (for example) Mac has often focussed on the looks.
That being said, there were a number of apps written prior to Web 2.0 that spent more time figuring out how to 'skin' the application to look good; and almost always ended up having a highly customisable user interface that was a serious displeasure to work with.
The thing is -- there's a difference between a good UI from a usability point of view, and one that simply has a lot of graphics and flashy sections. Some would say that actually Macs achive both, not just one of them.
In general, I think that Romain's point is well made; a good looking app can certainly be nice to look at; but it's got to have the good user interaction too.
First, remember that the best GUI interface is no interface at all: If you, the programmer, can make a reasonable decision on behalf of your user and spare them from having to twiddle knobs and switches, then do it.
Second, I believe that Alex is correct that both good user interaction AND visual appeal are important.
I don't care for the terms "rich" or "filthy-rich" because they seem to refer to only the visual appeal aspect of a GUI. To me, a good interface is one that doesn't make the user think about the interface rather that what they're trying to accomplish with the interface.
Sometimes you need the extra power to make something simple. (The amount of effort it takes to make something pleasant and simple to use for a user is often underestimated and undervalued). The problem comes when people abuse that power to make a "look at me aint I great" application rather than a product that helps the user do things as simply and intuitively as possible.
The question for me is.. even though the capabilities of Swing are so impressive these days, why is there so little adoption compared to less capable technologies? Perhaps Java is suffering from the same "look at me aint I great" syndrome, rather than concentrating on the simplicity of using it from a user's perspective. If I could write a swing applet as simply as I could a flex component (I got a flex app running in 5 minutes from a standing start), and have a high degree of confidence it would run on 95% of browsers, I'd be using swing.