Path: utzoo!censor!geac!torsqnt!lethe!yunexus!ists!helios.physics.utoronto.ca!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!cs.utexas.edu!usc!julius.cs.uiuc.edu!rpi!crdgw1!crd.ge.com
From: meltsner@crd.ge.com (Kenneth J Meltsner)
Newsgroups: comp.lang.lisp
Subject: Re: Is this the end of the lisp wave?
Message-ID: <15657@crdgw1.crd.ge.com>
Date: 14 Jan 91 15:17:20 GMT
References: <2456@paradigm.com> <22573@well.sf.ca.us> <96861@aerospace.AERO.ORG> <5256@idunno.Princeton.EDU> <1991Jan14.141651.12321@arris.com>
Sender: news@crdgw1.crd.ge.com
Reply-To: meltsner@crd.ge.com
Organization: GE Research and Development Center
Lines: 70

LISP is not dead, despite efforts to kill it by overfeeding it.  The
problem may be that it will never have the wide appeal of an
efficient, system implementation-oriented language like C, or the
history of a language like FORTRAN.

In fact, there may be more LISP users today than ever before.  Look at
systems like GNUEMACS, with its LISP-dialect extension language.  Look
at WINTERP and Scheme, etc.  I recently saw a complete statistics
package written in XLISP for the Mac.  Common LISP may be dropping in
popularity due to its size, but other LISP dialects are doing quite
well.


What does restrict the use of LISP?

(1) Nasty delivery pricing.  I remember the bad old days when you had
to pay Microsoft a chunk of money to distribute programs written using
their compilers.  That changed quickly when microcomputer compiler
vendors managed to make a living without royalty fees.

But the situation is worse than simply the extra cash.  There's
bookkeeping and copy tracking costs to add in as well.  Even if the
price is not bad, the paperwork is one additional burden.

How can LISP vendors make a living?  I don't know.  DEC and Apple
allow you to generate applications without a royalty fee, but they may
be doing this to help sell hardware.  I'd actually suggest *raising*
compiler prices, but eliminating royalty fees for non-commercial use
of the runtime systems.  Or giving away application runtimes, but
charging extra for the tree-shakers and other runtime-development
tools.  LISP vendors attempt to make a living selling razor blades
instead of razors, but this doesn't work if this forces you to spend
all of your time keeping track of where the blades went.

(2) Creeping feature-itis.  LISP gets bigger and bigger, and every new
extension must subsume all previous extension efforts.  I don't want
to start the religious disputes again, but there's always four ways to
do anything in LISP, and perhaps we only need three.

(3) Bad press.  Management types aren't always the brightest folks,
but they have wonderful memories.  And they all remember LISP
machines, LISP-based expert system shells, LISP gurus, etc.  And the
word LISP got associated with "Not suitable for real world"
applications and hardware.  Even if the latest generation of
workstations can run LISP pretty well (and even my Mac runs a decent
version of LISP), they can only remember prima-donna hardware and
software maintenance types, and the incredible prices they charged.
The management types who switched and made a real investment in LISP
got burned badly, and no one appears to be adventurous enough to make
the same mistakes again.

(4) High-priced programmers.  When the LISP craze hit, the market
overheated and anyone with a CS 101 background in LISP got a $5000
raise.  Most of these folks tried to get super-programmer salaries
(based on their mastery of LISP's higher productivity environments),
but barely deserved COBOL wages.


LISP isn't dead.  It's just recuperating from all the hype of the
early '80s. 



--
===============================================================================
Ken Meltsner                        | meltsner@crd.ge.com (518) 387-6391
GE Research and Development Center  | Fax:  (518) 387-7495
P.O. Box 8, Room K1/MB207	    | Nothing I say should be attributed
Schenectady, NY 12301               | to my employer, and probably vice-versa
=================Dep't of Materials Science, ACME Looniversity=================