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