Subject: Re: benefits of LISP?
From: Erik Naggum <erik@naggum.net>
Date: 2000/11/23
Newsgroups: comp.lang.lisp
Message-ID: <3183972350982104@naggum.net>

* "Esteban" <hook@catfish.net>
| As a Lisp beginner, I am very interested in the comparative value of
| LISP.

  I'm not trying to fuel any flames, either, but you won't see the
  comparative values of (Common) Lisp as a beginner, and especially not
  as a beginner programmer, but I assume you are somewhat experienced or
  you probably wouldn't have discovered Lisp to begin with.

| What are Lisp's fortes?

  It is by far more natural for some programmers to think in than any
  other programming language available.  To those who "think Lisp" and
  discover it, there is not so much a question of fortes of Lisp, but of
  relief from all the pain they experienced expressing themselves in
  other languages.  This point really cannot be underestimated, but it
  is also very hard to explain to people.  It also comes across as so
  arrogant to people who cannot fathom that people are fundamentally
  differently "wired" and that forcing people to work against their
  wiring is really detrimental to their productivity and even happiness
  that they write off the whole language and start to hate it -- for
  _exactly_ the same reasons that Lisp people feel pain about other
  languages, so they unwittingly underscore and prove the point with
  their own hostility to a language that rubs _them_ the wrong way.

  There's an hypothesis in language theory that states that languages
  determine what we can think about, called the Sapir-Whorf hypothesis.
  Even if it is not actually provable or has to be weakened before it is
  true, it is an important contribution to our understanding of the
  relationship between language and expressibility.  I believe (in) this
  hypothesis and I'm willing to argue that it is more true of artificial
  languages than it is for natural languages, in that artificial
  languages are intentionally restricting by their very nature: There
  are large areas of human communication needs that are expressly
  intended _not_ to be covered by artificial languages.  This means that
  the ease of expression will have been optimized, and optimization for
  particular purposes is the worst possible thing you can do to a
  language -- it may well be the best argument in favor of the strong
  Sapir-Whorf hypothesis -- humans do not do what is more difficult than
  the perceived average effort required or even the "effort baseline":
  If it is too hard to do, it must be wrong.  This is a very good thing
  in any encounter with the physical world -- applying excessive force
  to anything (other than the arm of George W. Bush so he quits whining)
  is usually a sign that some important relationship is being violated.

| How might Lisp be compared to other languages?

  Through a very careful process of looking at how programmers approach
  problem-solving in different languages.  Any problem can be solved in
  any language.  It is not the solution that is interesting, it is the
  process of arriving at it, because that is what programming is about.
  Programming is _not_ about staring at finished code and solutions.
  Using software is different from creating software.  Using software
  does not involve appreciation for the programming language, creating
  it does.  E.g., in the C world, they write tiny little programs that
  say "hello, world!" and such to demonstrate how to get "interaction"
  from the environment, but some people then get the lunatic idea to
  count the number of bytes in the source file and the binary image,
  ignoring every relevant aspect of such numbers.  In the Common Lisp
  world, we have interactive environments and find writing a "hello,
  world!" program about as exciting as writing echo "hello, world!" to a
  Unix shell (except if it's some BSD csh derivatie crap that whines
  like a presidential candidate about that exclamation mark, in which
  case you just follow the old adage "If at first you don't succeed,
  cry, try again").

| To what sorts of problems and projects is Lisp particularly adapted?

  Absolutely everything, nothing excluded, that Lisp-thinking
  programmers will turn their attention.

| What are the pros and advantages in favour of Lisp?

  The biggest advantage of all is that it actually fits very well with
  how some programmers think.  I cannot stress this enough.  Programming
  is a thinking process and you need to be able to express your thoughts
  in a way that is natural for you.  Something about Lisp appeals so
  strongly to some programmers that there is no need for any other pro,
  forte, or advantage.  The language is up to it, too, that's the really
  scary part.  John Foderaro has been quoted putting the essence of Lisp
  in one sentence: "Lisp is a programmable programming language".  This
  is not for everybody, and everybody should realize that not all people
  can even begin to approach a programmable programming language, but if
  you can, there is no limit to what you can do with it.  (There may be
  a limit to what others can understand that you have done if you take
  it too far, but that is a management problem, not a language problem.)

  If you think programming computers is a worth-while task, programming
  the language you use to program the computer should be such an obvious
  and strong advantage that everything else just pales to insignificance
  in comparison.  What we need, however, is a little better ability to
  tap into the vast resources of the native compiler and make it produce
  code without necessarily going through standard Common Lisp forms.
  (Allegro CL has a "low-level lisp" that can be used in this fashion,
  but it is not documented, nor is it intended to be used, externally.)

#:Erik
-- 
  Solution to U.S. Presidential Election Crisis 2000:
    Let Texas secede from the Union and elect George W. Bush for
    their very first President, relieving the rest of the world.