Shmuel (Seymour J) Merz wrote:
<begin snippet>
Yes, but there are things that a good compiler will optimize away.
It's best to write code that is readable and maintainable before
worrying about performance.
<end snippet>
Arguing against 'readable and maintainable' code is very like arguing against
motherhood, but this phrase nevertheless begs important questions. Simple is
good, simplistic is bad. It is too easy to argue that something will someday
be misunderstood by or unknown to some clot, notably in my very recent
experience to argue that recursion is too difficult a notion for some
programmers to grasp.
I admire lucidity, force and ease. I am suspicious of readability and
maintainability as Dr Johnson was suspicious of patriotism. Admirable
themselves, these notions are too often misappropriated by scoundrels.
Bearded about his use of the notionally obscure word "relict" in an opinion by
one of his clerks, Justice Holmes responded with, "May God twist my tripes if I
will string things our for the delectation of fools".
It was once necessary to be able to program, in some fashion, to use computers
at all. That day is past , and with it any need to cherish programmers who are
puzzled by recursion.
Indeed, my chief problem with Seymour's language is its ambiguity. It could be
taken as an argument for writing, say,
declare (pi value(3.14159_26535_89793_23846),
sqrt_pi value(sqrt(pi)) binary float(52) ;
instead of
declare gamma_1half value(1.77245_38509_05516_02729) binary float(53) ;
because the first, although longer, is more perspicuous and also, I suppose,
less demanding: not everyone knows that sqrt(pi) = gamma(1/2). That conceded,
it is too often used indefensibly.
John Gilmore Ashland, MA 01721-1817 USA
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html