I don't read novels about computers and technology, because their descriptions of said technology are invariably garbage.

That's not strictly true. I happily read computer-related tomes by Neal Stephenson, for instance, because he's actually knowledgeable in the fields he writes about. I don't read novels about computers and technology written by non-experts, because their descriptions of said technology are invariably garbage from the point of view of a programmer.

(I'm told that the same problem exists in novels and films about other subjects, such as aviation, farming and nautical pursuits. I guess this means I should shut up and get on with my life?)

“Giving the benefit of the doubt” considered harmful

The last couple of times I violated this principle were disasters. Most recently, I investigated whether a recommendation from Richard and Judy is worth the paper it's printed on. (It isn't. Want to Play? is not only woefully inaccurate, it's not even a good novel.) Before that, I thought it might be entertaining to sample one of Dan Brown's other “works”, but ultimately the comedy value didn't outweigh the “unconventional” sensation of having steaming cow dung shovelled into my eye sockets.

An enjoyable special case

Yesterday, I made yet another exception for The Blue Nowhere, and was pleasantly surprised: it's actually pretty good! Jeffery Deaver is obviously not an expert but has done his homework. He uses the differences (or the existence thereof) between System V and BSD (or “East Coast” and “West Coast”, as he refers to them) UNIX several times, he describes anonymous remailers relatively accurately, he invokes the name of William Gibson, the characters discuss the hacker/cracker naming confusion, etc. Oh, and he mentions the distinction between executables and source codes.

“Woah, woah, backspace, backspace!”1

It's apparently not possible for a non-technical author (or journalist, for that matter) to use the words “source code” without compulsively tacking an ‘s’ on the end. I'm really not sure why. Surely at some point during his (presumably extensive, at least compared to that of Dan Brown) research, someone would have said “Hey, Jeffery? It's ‘source code’, not ‘codes’. If you get that wrong you will likely infuriate all (seven) of your tech-savvy readers.” I strongly suspect that, in this case, the editor silently ‘fixed’ his manuscript to conform to what normal people expect. (Google claims that 1.7 million pages on the blagotube use the plural form, many of which seems to be pseudo-open source code snippet sites. Happily, there are apparently 101 million pages using the singular, so maybe my worrying is unnecessary.)

I'd like to know where the convention among non-geeks to use the expression “codes” came from, though. I don't think it's from popular accounts of cryptography – people talk about “cracking the Enigma code”, singular. Perhaps it stems from a misunderstanding of the difference between machine instructions or programming language statements and source code – a program is a series of instructions; each instruction is a code; ergo the program is made up of codes. While it's true at some level that C statements are a (pretty much 1-1) encoding of CPU operations, the usage still irks me: you can't have a source code, only a line of source code.

Further, uh, reading

While we're on the subject, consider the title of the ...And You Will Know Us By The Trail Of Dead album Source Tags and Codes. I presume they're referring to HTML tags, which should be plural, but is it correct to refer to the markup responsible for a page as “source tags”? It's not code, after all, so if it's to be “source something” then the something might as well be “tags”.

Perhaps we can compare and contrast the expression under discussion here with the expression “source notes” to mean a musical score? Essays to me by Monday, please.


  1. This expression is used in the novel with the explanation that hackers use “backspace” to mean “hold on a second”. They do?
rp suggested that “it's simply the case that the countable ‘code’ (an encryption method) is a well-known term, while source code is jargon, so non-experts will naturally assume it's countable as well”. Which is probably true.