I think that there's two kinds of code, and that's what's causing the
argument-  there's code that's written to accomplish things, and there's
code that's written to communicate ideas.

Code is often used to communicate algorithims, especially crypto
algorithims.  It's a good language for describing a crypto algorithim-
concise and unambiguous.  As I'm sure EKR is aware, the crypto
litterature is full of descriptions of algorithims as code.  Often these
are in pseudocode or code fragements.  Neither of those could possibly
be construed as existing only for the purposes of running a program,
since they won't compile and run.  To me, writings or utterings
meant to convey information from one human to another are 'speech'.

Therefore, code is, at least sometimes, pure speech.


On the other hand, the majority of code is written not to explain
something to humans, but to perform a task on a computer.  That code is
sometimes written by one person who isn't thinking about maintainability, so
he writes it in whatever style pleases him.  That may well be the most
awful kind of spagetti code- totally unreadable even to the original
programmer when he sees it a month later.  Yet it compiles and performs
it's task.

Most code falls somewhere between these extremes.  Most code to perform
tasks needs to be readable to some degree, in order for more than one
person to be able to work on it, or for future maintenance by one
programmer.  Most people learn how to make their code at least a little
readable after the first time they have to read old code they wrote and
spend hours re-discovering what it does.  ALL good programmers I have
known do this, although ideas about what is "readable" differ widely.


-- 
Eric Murray          N*Able Technologies                    www.nabletech.com
(email:  ericm  at the sites lne.com or nabletech.com)     PGP keyid:E03F65E5

Reply via email to