Can someone explain to me why academics, journalists, businessfolk, and people who profess to know something about technology use the expression “a code” when they mean a software program? I have never heard a programmer use the word like that. Code is a collective noun, like sand, or water, or “copy” in journalism. You don’t say “I’m gonna get me a sand” any more than you say “I’m gonna write me a code”.
“Code” is the counterpart to “data”. It’s the information in the computer that makes it do something; “data” is the stuff it does that something to. It’s what programmers produce when they work (the verb is “to code”). If a programmer works for an hour, whatever s/he produced – finished or unfinished – is “code”. When you subdivide code, you get code. When you combine bits of code together, what you have is still code. Code is not like gears or camshafts or wheels: when you copy code you have two pieces of code but they’re still the same code. If you have the source code for one program, it’s code; if you have the source code for two programs it’s still just code.
So don’t say “a code;. And although Jargonfile claims the expression is used in scientific computing, it’s best to avoid “codes; also. It will only make you look ignorant to snobs like me. We already lost the battle on “hacker;; we’re not going to let any more words go without a fight.