Ken Tilton <kentilton@gmail.com> wrote [in a different order]:
+---------------
| > I dont know how you people were able to think like this,
|
| I have the same feeling when I look at my own code. ...
| When I look at it a month or day later, having forgotten the process
| by which it arose, I wonder where it came from.
+---------------
The same thing happens to me, but too often it's "I wonder
where the !@^%$!#@ this awful mess came from??!?!" ;-} ;-}
+---------------
| Often in the end I look at the working result and only then
| see how it can be collapsed into more functional form to make it
| more maintainable and concise.
+---------------
In my experience, that getting-it-working-first and *then*
[possibly setting it aside for a while and then] re-reading it
is absolutely key to the creation of code which is elegant,
robust, and long-term maintainable. Without such re-reading
and "editing" [in the sense of editing a book for grammar
and style], the original hacks and misunderstanding remain,
and further hacks [as the code evolves] just pile up and the
code becomes less & less readable... and thus less & less
maintainable in the long run.
One of the "problems" of those higher-level languages [such
as Lisp!] which encourage correct programming the first time
is that this subsequent re-reading and editing never gets done.
C.f. "Warnock's Rule for Why BLISS Programs Are Big", circa 1971
or so [commonly voiced around the DECsystem-10 SIGIL meetings].
Hint: They tended to work the first time, so they didn't get
re-read (and thus didn't get re-written).
-Rob
-----
Rob Warnock <rpw3@rpw3.org>
627 26th Avenue <URL:http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607