the semiotics of error

What’s a bug?  And is it a glitch?  Or an error?  Well.

It was Grace Hopper, who, before inventing the compiler, popularized the term “bug” (though Edison may have coined it).

When I was a callow youth testing video games for money, a “bug” was defined as something contrary to design, and we were instructed to never use the word “glitch” to refer to something going wrong with the software in question.  “Error”, as a term, never came up, and “Exception” has its own meaning.

We don’t have “bug” art, though, or “error art” – we have glitch art.  Glitch is a good German/Yiddish word, from “glitschen”  and” gletshn” – which mean “slip”, in those two fine languages.  It was, apparently, used in the US space program:  John Glenn said that  “Literally, a glitch is a spike or change in voltage in an electrical current.”

You can recover from a spike, or from a slip – whereas you may or may not recover from a bug, either in software or in your immune system.  An error, on the other hand, is generally thought of as a permanent thing, whereas a glitch comes and goes, often seemingly of its own volition.

Glitch, for whatever reason, has come to indicate a visual or sonic error:  the results of a glitch are apprehendable by the senses, and instantly recognizable as glitches.  It would be rare to refer to, say, a subtle mistake made by a video game’s AI as a “glitch”, rather than a bug.

Bugs, of course, are legion.  “There’s a bug in the system”, not “we introduced a bug into the system”, and almost never “There’s an error in our code”.  The definition I was given of a bug as being contrary to design meant that the superclass of “bug” included both critical programming errors like memory leaks, and typos that caused a character’s hat to be the wrong colour.

Neither of those problems are a glitch, perhaps because they’re both easy to repeat.  Both glitches and bugs, however, allow the programmers in question to sidestep responsibility for the errors that they introduced into the code.  I’ve put lots of things out into the world, and seen them fail in some way, and waved it off by saying “oh, there are still some bugs”, when what I am actually saying is “I didn’t write good software”.  If I see a glitch, I’ll probably be excited:  “I didn’t know it could do that!”, for example.

Finally, “bug” may exist because “error” refers to an error in user input:  sending in a credit card number that is only 12 digits, say.  That will cause an exception in the code, which will hopefully be caught.  It is thus by design that the code does something erroneous.  So, rather than say “there was an error in my error-catching code”, it’s clearer to say that there was a bug.