Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!mcsun!ukc!edcastle!aiai!jeff
From: jeff@aiai.ed.ac.uk (Jeff Dalton)
Newsgroups: comp.lang.lisp
Subject: Re: Is this the end of the lisp wave?
Message-ID: <3953@skye.ed.ac.uk>
Date: 16 Jan 91 18:04:23 GMT
References: <127724@linus.mitre.org> <97216@aerospace.AERO.ORG>
Reply-To: jeff@aiai.UUCP (Jeff Dalton)
Organization: AIAI, University of Edinburgh, Scotland
Lines: 34

In article <97216@aerospace.AERO.ORG> srt@aerospace.aero.org (Scott "TCB" Turner) writes:
>It's been my perception that LISP gets used to build vaguely-defined,
>evolving systems.  Much AI fits in that category.  LISP and the
>programming environment that comes with it is amenable to a tinkering,
>incremental approach to problem solving.

But that's not all Lisp is good for.  I don't think there's anything
in the nature of Lisp that means it must be worse than C at the tasks
for which C is used.

>On the other hand, when the problem and its solution are well-defined,
>a language like C is a more likely choice.  The code is written, the 
>executable delivered, and then set aside until a round of bug fixes.

But better programming environments are needed for C and are being
built.  That is, C programming will get more Lisp-like, so far as the
environment is concerned.  And this will make other differences
between the languages more important.

I think you are right to suggest that it's much more straightforward
to deliver the executable when using C.  But C also has advantages
when delivering the source.  Because more machines come with C
compilers than with Lisps, C is in practice more portable (even
though, as a language, it seems to provide more opportunities for
machine-dependence).  C also tends to be much more efficient at
certain tasks, such as processing text files, and tends to produce
smaller executables.  C technology is often fairly primitive, or at
least simple.  But it works well enough.  For example, Lisp systems
seem to have to go to a lot of effort to get rid of procedures that
will not be used, while in C they tend not to be included in the first
place.  Lisp's ability to load new procedures at run time, etc, is
more sophisticated, but is often more than is needed.

-- jeff