Don't make your 'I am processing' animation too complex

June 19, 2010

This is a lesson from long ago, one that I learned from the very first Amiga word processor. This word processor's mouse busy-cursor animation was of a bird leisurely flapping its wings; because the original Amiga was kind of slow, people wound up seeing this animation fairly often. Several years after the Amiga was released, I wound up talking to one of the people who had designed this (she was my HCI teacher) and she asked me whether us actual Amiga users had liked the busy cursor; the team who built the word processor had apparently been proud of that particular feature.

I had to tell her that we'd pretty much universally hated it. The problem was that it sure looked like the word processor was sitting around wasting its time slowly animating a (complex) cursor instead of spending that time actually doing whatever the slow operation was. That things were slow was bad enough; to have the bird slowly flapping away was salt on the wound, and intensely irritating.

This held true even for us Amiga programmers, who knew perfectly well that this cursor animation was actually a very cheap operation that took basically no time. We may have known better intellectually, but it didn't help the emotional impression; we still wanted the program to stop being fancy and get on with it.

The whole thing left a powerful impression on me. I'm sure that you can draw a lot of lessons from it, but the obvious one for me is that you don't want to make your busy-cursor or other processing animations too complex (or rather, you don't want them to look too complex). Regardless of the actual work it takes, a complex animation will leave the emotional impression that your program is spending a bunch of effort on it instead of other, more important things.

The Mac's classic spinning-clock busy cursor may have been very simple and basic, but it had the virtue of looking simple and cheap. I suspect that a similar thing holds true for Firefox's throbber animation (which is subtle in any case).

Sidebar: how the animated cursor was cheap on the Amiga

The Amiga display hardware had hardware sprites, and one of them was used for the mouse cursor. Changing what any sprite looked like was a simple matter of updating the address where the display hardware should fetch its bitmap data. The net result is that you could cycle through a fixed, precomputed mouse cursor animation by just writing a control register every so often.

(This also made moving the mouse cursor a very fast and cheap operation; you just wrote a couple of control registers to change the X and Y position of the cursor sprite.)

Written on 19 June 2010.
« ZFS and multi-pool shared spares
How my mail notifier avoids interrupting me »

Page tools: View Source, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Sat Jun 19 01:43:28 2010
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.