[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnu-arch-users] OT: Lisp

From: Tom Lord
Subject: Re: [Gnu-arch-users] OT: Lisp
Date: Wed, 19 Nov 2003 18:18:19 -0800 (PST)

    > From: Joshua Haberman <address@hidden>

    > I have no desire to start a language war (honest!) but I would like to
    > understand what Lisp offers to the landscape of programming
    > languages. 

This topic recently came up on a lisp mailing list I'm on.   I replied
as follows, which most people seemed to think was a pretty good

  What makes lisp (not CL or Scheme, just lisp) unique is that there
  have been so many people, over so many years, all communicating and
  sharing ideas and results, who have separately made new or extended
  old dialects of lisp languages, all subject to the informal
  constraint that their work be recognizable by fellow lispers as
  worthy of the name "lisp".

  Lisp is one of the most branched, most recombined, longest lived,
  _conversations_ about programming language and programming
  environment design ever.  The conversation has been participated in
  by many of the shining stars of computing and continues to this day.

  In short, lisp is one of the best expressions we have of what is wise
  and worthwhile in a programming language.   Since we have come up
  with a fair amount of wisdom over the years, it is hardly surprising
  that the benefits of lisp can't be summed up in a pithy sentence or
  two like "everything is an object" or "you can get down to the bits
  in the hardware" or "you can do fancy meta-programming" or "you can
  use macros to define domain specific languages".    You can
  accurately say many such things about lisp but that's the point:
  you can accurately say _many_ such things about lisp.

  In that light, CL is an interesting milestone.  Unlike many lisps
  prior and since, CL was not created to "make a new and improved
  lisp" but rather, to collect the wisdom of several separate and
  sucessful lisps and unify them in a common dialect with which all
  could be made compatible.  CL is a kind of community-generated
  synopsis of much of the "lisp conversation" up to the point of CL's

  Programming language "fads" show up from time to time: "object
  oriented programming" or "constraint-driven data flow" or "aspect
  oriented programming".  You often hear lispers at least chuckle a
  bit at these fads and maybe mutter "Gee, we've had that for decades"
  or "Gosh, that's trivial to do in lisp".  With the fads often come
  new language designs that try to use the fad as the central,
  organizing concept --- such languages attempt to simplify the
  problem of programming language design by finding a "magic bullet"
  that eliminates the need for any other approach.

  I think that such "fad languages" are perpetually doomed to
  long-term failure or severe mutation.  There is no magic bullet in
  language design.  Rather, there is a rich tapestry woven from many
  divergent lines of thought about language design -- the tapestry
  itself an attempt to bring those lines of thought together to form a
  pleasing and coherent pattern.  That rich tapestry is lisp.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]