The Nightmare Before Christmas

as an allegory of how experienced programmers write their first graphical user interface

--------

Warnings

If you haven't seen the movie, I suggest you do so before reading this so it spoils neither the plot nor the message. After having seen it, read this and then watch it again. I'm no C. S. Lewis, so I can only write the headliner to point you in the right direction. True allegory, as Lewis points out, is mythical and speaks to a much deeper part of us than any dry discussion ever can.

This must be read from the point of view of the average user. If you are a UNIX hacker and you look at it from your own viewpoint, it won't make any sense because you like command line programs. To the average user, Halloween Town represents the producers of command line programs because such programs are a nightmare to use.


Plot summary

Analysis

At the beginning of the story, Jack comes back from another successful Halloween, praised by everyone as the best one yet. However, it soon becomes clear that he is getting tired of the same old thing year after year. Jack is the best hacker in town, but the same old grind is beginning to bore him.

He wanders off feeling glum and happens upon Christmas Town. "What's this?!" he exclaims, delighted by the wondrous sights. This, he decides, would definitely cure his ennui.

When he experiences a really well done graphical user interface, he gets excited and decides that it would be a great new challenge to write his next program this way.

When he gets back to Halloween Town, he tries to explain it to the others, but it is clearly too alien for them to grasp. He resorts to turning Santa Claus into the terrifying Santa Claws.

He is unable to explain even the experience to other seasoned UNIX hackers.

In preparation to replace Santa Claus, he begins to study Christmas. Unable to learn anything from reading Christmas books, he turns to the Scientific Method and begins an exhaustive empirical study. Among other experiments, he crushes a Christmas tree ornament, drops it in a beaker of boiling fluid, and observes a glow. "But what does it mean?!" he exclaims in frustration. He eventually turns to theory, with equally dubious results.

He is unable to grasp what others have written about designing GUI's because the paradigm is so completely different. He is also unable to understand it via cold logic.

With the deadline almost upon him, he does eventually come to believe that he has grasped the concept and dresses himself in a red suit. He has Santa Claus kidnapped and ignores his pleas that this is madness. "But there is still something missing," he muses. "Aha!" he exclaims and steals Santa's cap.

The shipping deadline is approaching. This forces him to act and produce whatever he can. He hires a GUI designer and forces him to beautify the result in a meaningless way.

The result is a disaster. He rides in a flying coffin pulled by three skeletons and a ghost dog. The presents he gives out terrify the children because they turn out to be ghouls and severed heads. Eventually, the town fights back, refusing to let him in and finally shooting him down.

The result is a disaster. The users clearly see that is is not the real thing. It is still a nightmare to use. The users refuse to use it, and the company goes bankrupt.

The ending is still happy, however, because Jack returns to Halloween Town and frees Santa Claus, whose magic is powerful enough to save the day.

Don't count on a happy ending! Experienced GUI designers can't salvage a program designed around the wrong paradigm. In real life, it has to be throw out and re-written from scratch.


Copyright © 1997 by John Lindal.

References

Tognazzini, Bruce. Tog on Interface. Reading, MA: Addison-Wesley, 1992.

Cooper, Alan. About Face, The Essentials of User Interface Design. Foster City, CA: Programmers Press, 1995.

Norman, Donald A. The Design of Everyday Things. New York, NY: Currency Doubleday, 1988.

Glass, Robert L. Software Runaways. Upper Saddle River, NJ: Prentice Hall, 1998.