Skip navigation.
Home

Widgets versus Bling aka rich GUIs

Widgets versus Bling aka rich GUIs

Recently, mostly inspired by the iPhone(tm) GUI, a discussion in user
interface design and the roadmap to new graphical user interfaces burned up
and starts to divide the user and developer communities.

Some think that the rich user interfaces with new user interaction methods
are the one and only new way of user interface presentation and interaction.
This goes along with animations, three demensional effects, transisitons,
object interaction, physical models for realising this kind of interfaces,
like gravity and acceleration/deceleration, etc.

And to some extend I would think this is correct. The way we presented user
interfaces expecially whole desktops to the user was until now artificial
and non intuitive. Nowhere in our real experience world
something suddenly out of the blue appears and disappears, most of the time
fully dicsonnected from any direct context and even if it has one it is
sometimes very hard to recognise it. In our real world everything that
appears in front of our eyes has a "from" and a "to", like it comes from the
left and moves towards us. A dialog window suddenly popping up is not
natural. To represent a larger desktop on a virtual surface and being able
to hover over that surface in an animated manner is intuitive. The user can
understand the "from" and "to" and can much easier navigate.

In this sense I think that those rich GUIs we see now popping up all over
the place are, for certain use cases, the absolutely correct approach. They
make interaction of users with their devices much easier and more intuitive.

We now only have to find a proper way to develop such kind of GUIs. Giving
the applicaiton developers all freedoms creates two problems. First of all
having too many grades of freedom is a pain for developers. In most cases it
is not the user interaction they want to develop an application for but
rather they want to create an applicaiton to solve a certain problem. Having
to completely reinvent a new model of user interaction and GUI design for
each and every application keeps them from doing their real work. It delays
application development and eventually even causes whole applications not
being developed because the GUI initial burden is too high. Many, if not
most, application do not care about the GUI design that much. They want to
give a solution to a problem. If a GUI system provides ready made solution to
the most common user interaction cases then they will use rather that than
creating a nice animated GUI with an inventive interaction pattern. The
latter is not bad at all as invention is always good, but it is not helpful
if you do not want to invent but want to simply solve.

Second I am also convinced that this is not productive for users either.
Nice GUIs are very attractive and appealing, they triger the play instinct
if well made. But at a certain point you do not want to play anymore you have
to do real business, have to get work done because that is why you switched
on your computer in the first place. Imagine a word processor done in "bling"
style. Imagine a real cool animated font chooser swirling the fonts around
while you select them, dropping your text with gravity character by
character on a paper like work area presented in 3D etc. This will look
awefully cool, will be fun to play with for some hours but after that?

But the most critical sentence I heard these days is that "the days of widget
style UIs are over". I think this to be a dangerous thought.

If we think back several years when X11 was invented there were no widget
sets, the screen was white and void ;) If you wanted to develop a user
intercative application you only had the X11 graphics primitives at hand,
drawing lines, circles, blitting, you name it. You also got events from
input devices, button presses at coordinates. This makes application
development pretty hard, similarly like it is today with the rich UIs. You
have to create your own interaction model, your own "parts" to form your UI.
This allone is already critical, as layed out above, as it keeps the
developer from doing his primary work. But it also leads to a multitude of
different user interactions, looks and feels.

Plentitude is in general good but it is non productive for the end user. The
user has again and again get used to new user experiences.

Widgets solve a large part of these issues. They give the developer a nice
framework and guideline what applications can contain and how those UI
objects work and can interact. For the user they offer consistency, i.e. the
user knows what to expect when pressing a button, when dragging a list, etc.

So I think the days of widget based UIs are not at all over. What we now
need is:
- Create rich widgets for easy creation of consistent rich UIs
- Proper coexistence between "rich" parts and real widget style
applications, maybe "enriching" old style apps where appropriate, but
keeping up the productivity users and developers expect from widget style
apps.