== Don't make your 'I am processing' animation too complex 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 http://en.wikipedia.org/wiki/Human%E2%80%93computer_interaction]] 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 AmigaBusyCursor]], 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 http://en.wikipedia.org/wiki/Sprite_(computer_graphics)]], 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.)