Posted by javakiddy
on May 1, 2007 at 4:12 AM PDT
Is there any point to flashy GUI effects? Clearly, given they're all the rage at the moment, they must fulfill some need, but what? (Includes gratuitous Amiga-inspired drop shadow example.)
Car manufacturers have known for a long time that it's the little things which can make or break the sale of a vehicle. The reassuringly solid clunk of the doors as they close. The satisfyingly robust feel of the knobs, switches and handles. Even that strange hybrid plastic/fabric/wood/solvent smell which greets a potential buyer upon opening the door of a brand new car.
Of course, once the buyer is five miles down the road, the dealership a distance spec in the rear view mirror of his brand new car, the relevance of these little details begins to fade. Pretty soon that new car smell will be replaced by the odor of the family dog, snatched cups of service station coffee, and the guilty memories of a late night 'drive-thru' meal. Eventually the door will develop a slight creak, and the once virgin switches will become tainted from the imprint of a hundred fingertips. But car manufacturers know it's worth the extra effort, because at that crucial make-or-break moment when the potential owner is casting yet another uncertain eye over the glistening vehicle on the dealership forecourt (with the saleman's eyes burning into the back of his neck) it is these little irrelevant details which can make all the difference.
But what does this have to do with Swing?As desktop operating systems mature, we are told it is increasingly hard to sell upgrades. "But all the major usability potholes were filled a couple of releases back", say the users. And so OS manufacturers must find other ways to woo customers. because no matter how hard the code monkeys work under the hood, if the bodywork looks identical many users simply walk away. (Hmm, wonder how far I can stretch the car analogy before it snaps?)
Ask any non-techie computer user to list what's new in Windows Vista and chances are the first words out of their mouths will include "transparent windows" and "3D effects". If "enhanced security" features at all, it's likely to be far down the list. Glossy 3D effects and flashy transitions are the software equivalent of that new car smell: functionally rather pointless, but a real deal-breaker when it comes to shifting units.
And what goes for desktop OS's, also goes for the applications which run on them. Bling is king, when it comes to grabbing attention.
Now, regulars of this blog may already be asking "where's this installment's obligatory pointlessly-flashy and overly-CPU-bound Swing Bling demo?" Hmm, okay, a slight detour. (*Twang*! Whoops, there goes the car analogy!) Here's a little something inspired by the legendary Commodore Amiga — surely the computer which, above any other, epitomised the notion of style over functionality (or, "you're all fur coat and no knickers", as my father used to say to the family cat.)
[Download source ]
I remember seeing the Amiga's drop shadow enhancement (or "Workbench Hack" as they were universally known) close to twenty years ago. The shadows flowed over the desktop windows flawlessly, and without any noticeable hit in performance. Even though I knew enough about the Amiga to realise the video hardware was doing most of the work (the shadow was just another bitplane) this simple effect still stands out as a powerful demonstration of just how impressive the Amiga was at that time.
I wonder how many people bought Amiga's on the strength of such bling demos , only to discover the Amiga's non-gaming software library was woefully lacking compared to its rivals? Given that the machine survived over a decade on the strength of its AV capabilities alone, I suspect quite a few. Indeed the platform's slow demise tracks its slowly eroding lead in the audio/video field, as PC graphics cards improved.
So if bling helps sell, why is opinion so divided within the desktop developer community?
Kirill Grouchnikov's Blog a few weeks back questioned whether developers really wanted to use subtle UI transition effects outside of demos. Developers probably aren't bothered — but then I doubt automobile engineers spend their days fretting about the sound of the doors or the feel of the console buttons. Even so, someone (probably some anonymous middle-management drone from marketing) makes sure they pay attention to those details.
Okay, not all bling is eye candy. There are those 'guiding' effects which help the user to navigate the user interface. Examples include soft scrolling a viewport rather than jump cutting, or flipping panels to imply a forward/back movement. But drop shadows and translucent windows don't fall into this category, and unlike the sporadic navigation effects they are permanently on screen. I suggest the following 'good practice' rules should apply:
- Effects should not drive user interface design. The UI should never be tailored to fit some 'kewl' eye candy effect (I can think of one or two major applications which are guilty of this.)
- Effects should be configurable. Face it, no matter how cute they look, sooner or later the user will get bored of them. The user should not have to restart the application to remove them.
- Effects should be easy to add into an application. Developers should spend their time on the application's core functionality, not its garnish.
And it is this last point, the ease of use, where Flash scores big. Ah yes, sooner or later you just knew the F word was going to rear it ugly head.
In many ways Flash/Flex is like the Amiga: it lives in that strange no-man's land between multimedia and 'serious' (non-entertainment) software development, it has a widespread band of followers who's devotion borders on religion, and the available API support resembles Swish cheese: most of the important bases are covered but some useful bits are lacking or constrained (cryptography...?)
As it currently stands (right now, this very moment!) Flash is still predominantly, in my humble opinion, "all fur coat and no knickers" when it comes to large scale desktop/RIA software. But I suspect few would deny it shows great promise. While its usefulness outside of web service orientated applications must be questioned, like the Amiga its 'bling heavy' origins have gifted it one powerful weapon --
-- that 'new car smell' is far far sweeter for Flash/Flex apps than it has ever been for Swing!