Computer Metaphors

I doodled these funhouse mirrors while corresponding with a friend about empathy, computers, and design. The point I was trying to make was that we create computers in our own image because we have no other choice, but it’s a distorted reflection rather than a clean one because our metaphors tend to be colorful rather than precise.

Computers as a Reflection of Ourselves

Many of the organizing principles of computer science are metaphors that we’ve long forgotten are metaphors. For fun, I started making a list that quickly turned into a series of lists.

Expressive, colorful computer science metaphors:

  • zip/unzip
  • bug
  • spaghetti
  • scribbling
  • edge case/corner case
  • CamelCase
  • introspection
  • thrashing
  • native
  • firewall
  • virus
  • crash
  • dump
  • bootstrap
  • memory
  • clobber
  • handshake
  • client-server
  • breadcrumbs
  • brute force

Expressive with the side effect of adding extra meaning (we need to give it a name in order to talk about it):

  • red-black tree – Red and black have no intrinsic meaning, but assigning colors makes the concept easier to remember.
  • upload/download  – The direction is arbitrary, yet by now we’ve internalized it. By way of contrast, the Chinese words “shang” and “xia” for “up” and “down” also mean “previous” and “next.” This drives me crazy because to my Western mind, “up” should mean “next,” not “previous.” I assume that “up” means “previous” in Chinese because ancient calligraphers wrote from top to bottom, but I still have trouble wrapping my head around it.
  • Alice, Bob, and Eve
  • cyberspace – We think of virtual reality in terms of space and spatial dimensions because we need that anchor back to something we can understand – it’s just too abstract otherwise. Obviously, geography does have some meaning in cyberspace – the servers live somewhere physically, and so do the people – but I’m sure the reason people build such elaborate Second Life communities and environments is that we need that spatial grounding in order to make sense of an otherwise abstract virtual world.
  • foo, bar, baz, fred, barney, and all the other standins of this nature – We go crazy if we can’t give it a name.
  • parallel programming – Again, we automatically employ a spatial metaphor in order to facilitate understanding of abstract concepts.

Wordplay and puns and nonsense syllables with a poetic cadence:

  • deque
  • xkcd
  • xyzzy
  • gnu’s not unix
  • foobar

Metaphor is dead because it’s become it’s own word and lost its connection back to the original thing (this is obviously subjective)

  • window
  • mouse
  • desktop
  • icon
  • World Wide Web
  • Cold Fusion (my father the physicist never understood why anyone would name any product after a failed theory)
  • heap
  • bus
  • token
  • process
  • processor
  • volume
  • array
  • block
  • sector
  • partition
  • compiler

Colloquialisms invented to describe computer phenomenon

  • blue screen of death
  • spinning beach ball

I wonder if this is similar to how creole languages develop – we spontaneously “name” things. Hence creoles are full of words like “big teeth hit ’em and they sing out” for piano – it’s as if a pidgen becomes a creole the moment the vocabulary’s big enough to bootstrap itself into naming everything under the sun. So now BSOD has a name, and it will never be known as anything other than BSOD.

Roundtrip from daily life to computers and back again (influences both ways)

  • debug
  • avatar (from Hinduism to cyberpunk to message boards and finally over to James Cameron)
  • interface

Personal roundtripping (I am probably the only one who thinks like this)

  • checksum (did I manage to get all my bags from the airport?)
  • ACK/NACK (yes, I heard you… but I don’t have an answer yet)
  • zero-based counting in daily life
  • writing == when any normal person woud use =

Leave a Reply

Your email address will not be published. Required fields are marked *