Subject: Re: WAY OFF TOPIC (was: Re: "Programming is FUN again" rambling commentary (especially the rambling part)
From: rpw3@rigden.engr.sgi.com (Rob Warnock)
Date: 1998/03/31
Newsgroups: comp.lang.scheme,comp.lang.lisp
Message-ID: <6fpvjh$851cp@fido.asd.sgi.com>

Ray Dillinger  <bear@sonic.net> wrote:
+---------------
| Frank A. Adrian wrote:
| >  - I've always thought that a good way to keep
| > programs fast was to place artificial constraints on memory...
| 
| What you are describing is "classicist" style programming, and yes 
| there are sowe of us who do it for fun and profit...
+---------------

I've always asserted[*] that the reason placing "artificial" constraints on
*any* aspect of one's program seems to improve the quality is that it forces
one to look at the code more than once! ...which so often people don't. Their
code is "write-only".

It is in the process of "tuning" (and I really don't care *which* parameter
you're tuning) that one re-reads the whole program, and it is during this
re-reading that one discovers the *really* significant beneficial changes --
usually major algorithm changes.

This is the same reason that programs that are initially "buggy" often end
up having (after they're debugged, that is) better performance or memory
utilization than programs that worked the first time. [Note: Initially
buggy programs *don't* tend to have fewer post-delivery errors -- quite
the reverse!]


-Rob

[*] Back when I was chairing the DECUS DEC-10 SIG on Implementation Languages
(which mostly meant BLISS, in those days), I formulated the only "law" upon
which I've ever had the temerity to place my name:

	Warnock's Law For Why BLISS Programs Are So Big: It's because they
	mostly work the first time, and so they're never debugged. And since
	it's normally during the process of debugging that the programs are
	*read* (or reviewed) and the major algorithmic changes made that save
	substantial memory, these changes are not made, either. So you're
	left with a properly working but bloated program.

[Historical note: At the time this was first put forth, the primary language
for writing both the TOPS-10 operating system and all of the system utilities
was *assembler* (MAACRO-10).]


-----
Rob Warnock, 7L-551		rpw3@sgi.com   http://reality.sgi.com/rpw3/
Silicon Graphics, Inc.		Phone: 650-933-1673 [New area code!]
2011 N. Shoreline Blvd.		FAX: 650-933-4392
Mountain View, CA  94043	PP-ASEL-IA