Microsoft’s Widgets

31 Jul

I’ve spent too much time developing web applications recently, and
getting fed up with the constraints of designing user interfaces on
the web. Try imagining having to write Microsoft Excel for the web to
run in Netscape, not using Java, and you’ll know what I mean.

So in order to compensate, I’ve been toying with some Windows
application development, just for fun. And it struck me how
Microsoft have always been really, really good at writing complete,
solid UI widgets
. From simple things, like the standard text entry
field, or the menu widget that most application windows sport, to more
complicated things like the file open dialog or the Excel spreadsheet.

This becomes apparent when you’re suddenly exposed to an application
that doesn’t use the standard components, such as Netscape 6, or
applications built on Java Swing, or even worse, Gnome. They just
don’t work as well as Microsoft’s ones.

So what is it that makes Microsoft’s widgets better? Several
things. They always allow for as many channels of interaction as
possible
: Normal typing, arrow keys, special keys, such as
Alt-Backspace, arrow keys, shift-control-tab and other special keys,
alt-shortcuts, cut, copy, paste, keyboard selection, mouse selection,
moving selection, right click, drag and drop, animation, sound, you
name it. They always display without flicker, something that
makes them seem more robust. This is very basic, yet many
widget developers overlook this factor. And they always have a
professional, if boring, graphic design to them. It always
shows when the graphic design of a widget isn’t done by a
professional.

Now, the interesting thing, of course, is that none of Microsoft’s
main applications use their own supplied standard widgets
. Their
toolbars and menus can be docked and un-docked. Their menus have icons
in them. Their scrollbars have this little tooltip thing pop up to
show you where you’d currently be scrolled to if you let go.

This is obviously easier for Microsoft to do than for any other
company in the world, since they have the source code to the original
components, so they can merely extend them, while all other
companies will have to rewrite them
. And when rewriting, you’re
likely to introduce subtle differences that are going to present
themselves as annoying inconsistencies in the user experience. Another
exploitation of their monopoly power.

Bottom line is that it makes sense to invest heavily in these building
blocks of the graphical user interface, since they’re going to be
used in application after application
. Microsoft is constantly
evolving their widget library, cross-using it between applications,
and they always keep the latest iteration to themselves, only
gradually releasing them for third-party developers after they’ve been
exclusive property of Microsoft for a year or two. Unfair, but clever.

LocalWords:  pinds

Comments are closed.