Saturday, December 12, 2009

Writing vs. translating

As I'm tidying up in the wake of my takeover of the world, one minor requirement will be that Universities, colleges and trade schools will be required to replace the phrase "writing code" with "translating code."

You see, even at their simplest, computer programs are acts of translation. Even taking out the physical acts of typing, mouse-clicking, etc.. functionality does not spring into existence ex nihilo. Why? Because someone, somewhere had to have first decided that making a computer do X was worth the time s/he thought that it would take. Thus the act of hewing X from the raw materials of platform and tools and code is the act of translating from human wants (and sometimes also the unspoken language of human needs) to the arrays of "on"s and "offs" that computer hardware understands.

Now go one step further and envision having to alter a program written by someone you never met to meet the needs/wants of someone you only sort of know. Three levels of translations are now required:

  1. Translating the existing code into chunks you both recognize and understand
  2. Translating the new/changed requirements within the context (and constraints) of that mental "codemap."
  3. Translating the changes to the "codemap" into the programming language of choice.

My Latin prof. (in the late 1980s) claimed that "many" Latin students became computer programmers. I've never bothered to corroborate that, but on a gut-level it makes sense. Learning another language forces you to break the "natural" associations of phrasing and thought. (I can't recommend it enough, even if my love-hate relationship with Latin rivals that of my love-hate relationship with chess.) In short, you learn to respect your Mother tongue--including her limitations--and most especially the amount of linguistic "duct tape" required before two languages can express the same thought with the same nuances...when that's even completely possible.

And that, in essence, is what it's all about. For computer programming, anyway. The Hokey-Pokey, not so much. Because even the benevolent dictator of the entire planet knows better than to mess with the Hokey-Pokey.