Subject: Re: Lisp is alive, was "Re: Common LISP: The Next Generation"
From: Erik Naggum <erik@naggum.no>
Date: 1996/09/23
Newsgroups: comp.lang.lisp
Message-ID: <3052468218485663@naggum.no>


[William A. Barnett-Lewis]

|   I'm glad you can use Lisp for your real work.  I've got Visual Basic &
|   Oracle's Developer 2000; yeah, freaking, thrill...so pardon me if I'm
|   more sensitive to CS's position than yours.

(Geez.)  I first saw The Little Lisper in 1978 or so, and I found it about
twice as neat and cool as the world now finds "Java".  I acquired a new way
of thinking about problems, instead of yearning for the unachievable.  In
practical terms, what I came away with was very close to what Paul Graham
writes about his books on Common Lisp: build the language up towards your
problem, and build the solution in that (new) language; I have implemented
numerous tiny, application-specific languages over the years, both to be
able to think better, but also to simplify the often boring and uninspiring
programming tasks.  To me, one program's input is just another program's
output, unless I care to feed it by hand, and often I don't, and whether
that program is the compiler or an application program is irrelevant.

If you hate your language of "choice" and love Lisp, write tools in Lisp to
write your programs for you in that language.  Nobody ever forced you to do
all that programming as manual labor, anyway, did they?  Incidentally, that
was how I _started_ programming in Lisp for real, three years ago, when I
was forced to use C++ (an abomination if there ever is one).  The Lisp side
of my work just grew until I could stop caring about _stupid_ issues in C++
-- my C++-code "generator" took care of them, and then I could drop C++.

Over the years since 1978, I have used Lisp systems that were not usable
for delivery, for obvious reasons such as being too expensive memory- or
money-wise.  I chose languages that could deliver, but I never lost sight
of the idea that a _program_ is just another form of _data_.  Finally, when
I got a real computer, several Lisp systems were available, and some of
them even produce small executables (e.g., Wade Hennessey's WCL).  I began
using GNU Emacs for real (i.e., programming GNU Emacs to do what I did
manually), and have added a function or two a day to my C-generator that is
supposed to write C that works on all systems by virtue of being compiled
into C on that system according to the system's configuration parameters.
(This as opposed to writing for all systems at once, which one has to do
with GNU `configure', as smart as that solution is.)

What I see from those who whine about the tools they can use are people who
has been explained all the rules of chess, but who complains that it is a
stupid game because one cannot win in one, big move.  Failure to appreciate
that many moves are necessary, indeed that the beauty of the game is the
combinatory effect of the moves, seems to be the underlying cause of a
large number of ills in the computer world, including the need to use only
one tool or language to generate "small executables".  And, yes, I think
that's stupid, and no, I don't think I'm a genius -- I was probably just
lucky enough not to be "destroyed" by excessively stupid computers when I
was young.  (The first real computer I used was a DECSYSTEM-10 running
TOPS-10, and I wrote table-driven programs and interpreters in MACRO-10,
too.  Come to think of it, the MACRO system in MACRO-10 may also have had a
serious influence on my later programming style.)  However, I doubt that
"first exposure" has that much power of people's perceptions, and _luck_
shouldn't play that big a part in people's life when the experiences are
communicable if only people would listen.

Put it another way, learning about Lisp, and then learning Lisp, was like
reading a novel with grand, heroic characters who solved big problems with
efficient, effective weapons, strategies, and skills.  From many kinds of
art, I can see an image of how the world _could_ be and in a sense _should_
be that I can carry into a world filled with violence, pestilence, death,
manual labor, and taxes, and set a meta-goal for myself: realizing the best
kinds of of goals I should set for myself.

Still, I get seriosly annoyed when people complain for months on end about
some problem that I have been able to solve for myself, and others seem to
have solved for themselves.  Maybe is there no market for these kinds of
programming tools, possibly because they are so personalized, but that does
most emphatically _not_ mean that the world is horrible place dominated by
Bill Gates, with him dictating people's every move.

#\Erik
-- 
those who do not know Lisp are doomed to reimplement it