
I am not a casual user of profanity, obscenity, or vulgarity. Despite being surrounded by people and media where casual use is de rigueur, I choose not to use it. It doesn’t bother me much when I hear it used, and I don’t mind it in TV shows and movies, although I appreciate the cleverness of writers who can write without resorting to such idioms. I went through a phase in seventh grade where I used obscenities the way I used “like” as a kind of verbal placeholder.
Today, there is one thing that will pierce my obscenity armor: encountering a bug in code I wrote. I will build a project (if it is compiled) or execute it if it is at runtime, and when the thing fails, I will frequently resort to an obscenity of the level F variety. I suspect many coders are familiar with this feeling.
Users of software are familiar with bugs, but bugs are not necessarily the same as errors. An error will cause a program to halt or prevent code from compiling. These are bugs, but some bugs are not errors in code; they are errors in implementation.
That is, the code runs fine, but the resulting behavior is unexpected or undesired. When I started writing BASIC code in the 1980s these were called “errors.” Today, we call these “exceptions” and have all kinds of clever ways to trap them and work around them. When these traps and clever workarounds fail, I find myself muttering obscenities—or what a friend in my youth referred to as “cusses.”
I had cusses on the brain because of a delightful anecdote I recently read. There is a kind of truism in my reading experience that some of the best anecdotes come from the most obscure sources. In this case, a wonderful history of the development of the navigation software for the Apollo lunar module, SUNBURST and LUMINARY: An Apollo Memoir by Don Eyles. I was reading this the other day as I walked to pick up our youngest daughter from school, navigating by my own complicated system whereby I keep half an eye in front of me while the remaining eye-and-a-half scans the pages.
The history of computing is filled with stories true and apocryphal—sometimes both. The story of the origin of a “bug” as I heard it, was that an insect of some kind was caught in a printer, preventing it from printing. “Hacking,” which has a kind of subversive connotation, originally meant nothing more than writing clever code.
As I walked to my daughter’s school, crossing a large green field, I read the following passage:
The assembler kept a copy of the current version of each program and gave you the ability to modify and add to it. It enforced the language rules and when it detected an error it issued a cuss—Blair-Smith’s whimsical term for an error message.
Never had I encountered a more perfect description of an error message in computer code, than a “cuss.” It succinctly captures not only the fact of the error but the resulting feelings that said error generates within the programmer.
Moreover, it describes perfectly the feeling of a user of software who encounters what we today so inadequately refer to as a “bug.” In that instant I had a vision of a delightful alternate history of computing where errors, and perhaps even bugs, were cusses. “Hey, Joe, there’s a cuss in this subroutine!” Or: “I found another cussed cuss in Microsoft Word.” I imagined code reviews where we look at the list of outstanding cusses.
In fact, my imagination took off with this. Math shares some relationship to coding. I imagined my 7th grade pre-algebra teacher reviewing my homework and noting a cuss I made in my calculation. Or my English teacher marking the spelling cusses I made in my paper. Or a shortstop booting a play and allowing a runner to get on base, the official scorer charging him with a cuss.
It was at this point in my reverie that I walked into the telephone pole at the far end of the field. I just walked knee-first right into the pole. Without thinking, I shouted at the top of my lungs, “Syntax error.”
Did you enjoy this post?
If so, consider subscribing to the blog using the form below or clicking on the button below to follow the blog. And consider telling a friend about it. Already a reader or subscriber to the blog? Thanks for reading!
Comments