Subject: Re: A Philosophical Diversion
From: Erik Naggum <>
Date: 1998/10/07
Newsgroups: comp.lang.lisp
Message-ID: <>

* (David Steuber "The Interloper")
| First a doubt.  I was told at work today that Lisp is not a real general
| purpose language.  Instead, it was a domain language only useful in AI
| circles.  The person who told me this is a very good programmer, so I
| can't just dismiss what he says.  On the other hand, he admits to only
| knowing some Emacs Lisp just well enough to configure Emacs to his
| liking.

  ignorance of Lisp is very widespread.  for your enjoyment, something that
  floated my way via a friend from a MUD mailing list.  (the name of the
  ignorant fuck is withheld so he can't find himself using Dejanews.)

> > If lisp is the answer, it was a stupid question, or else you asked an
> > aging CS prof.

> Could you please provide some support for this opinion?

1. Functional languages are dead outside academia.  Even IN academia,
   they're fading away quickly.

2. (1) is a goodly part of the salvation of mankind.

3. Lisp causes the early retirement of the parentheses on a keyboard.

4. Dynamic scoping is for chumps writing their first interpreters by
   hand, and if the chumps have any talent, even THEY won't use it.

5. Perl, Python, and a dozen other interpreted languages are far more
   expressive, have far more development done for/with them, and are
   far more widely known, and are likely to exist in 20 years.

6. Aging CS profs love Lisp because they were a part of the doomed
   minority who swore up and down that functional programming was
   the wave of the future.

7. Recursion is good for quicksort.  This does not mean that recursion
   should be an integral part of every algorithm used on a computer.

I'm reminded of Larry Wall's response to a major Lisp freak who was
bitching about how Perl had stolen what he regarded as Lisp's rightful
glory.  He said something to the effect of: 'You've wasted a 25 year
head start.  Whose fault is that?'  What he didn't say, but should
have appended to his comment, is: 'on a language nobody wants.'

  note that he is wrong on _every_ count, yet _nothing_ will ever make him
  change his mind, least of all understanding what he's talking about.
  people like that abound.  fortunately, they are so easy to spot that they
  are no danger to anything.  they're just like those alternative medicine
  bigots who know zilch about medicine.

| Isn't C++ better for performance reasons?

  there may be reasons for choosing C++, but performance is not among them.
  C has performance when well written.  C++ has not really borrowed much
  from C when you look carefully and ignore the hype, and certainly not the
  simplicity that _allowed_ the perceived performance of C.  note also that
  C++ requires a _huge_ run-time system, which you have stated that you
  don't want.  so by your own criteria, C++ is inadmissable.  incidentally,
  C is not that much of a performer, either, it's just that every statement
  causes few instructions in the compiled code, and so you breeze through
  the statements, but you don't get the return value any faster just
  because of this.

  Common Lisp generally runs faster than C++ code doing the same thing,
  although it is hard to write Common Lisp code that does as little as C++
  code generally does.  for instance, you have to work real hard and write
  a lot of code to crash a Lisp program, leak memory, return bogus values,
  ignore errors, etc, but if you want all that, Common Lisp probably runs a
  little slower than C++.  can't imagine why you'd want it, though.  oh,
  unless you're a C++ programmer afraid of unemployment.  C and C++ are
  really great languages only if your biggest goal is just being safely
  employed, not solving anybody's problems.

| So now I am looking at cmucl or clisp as my implementation language.
| Then my coworker bursts my bubble with the statement that Lisp is just
| not a mainstream language for the simple reason it is not general.

  Lisp ignorants will produce an amazing array of bullshit to defend their
  ignorance.  they're like racists that way.

| The other question.  Is Lisp a lazy man's programming language?

  the intelligent work less than the stupid to get the same job done.  the
  lazy just don't get the job done.  big difference.

| I have seen claims that Lisp source is typically much smaller than C++
| source.  In theory, less source code means fewer opportunities for bugs.
| I like that idea.  Is it true?  Is Lisp a more concise way of stating a
| program?  Is Lisp less prone to buggy code?

  errors in Lisp are of a fundamentally different type than errors in most
  other languages.  for instance, explicit static typing is supposed to
  catch a lot of errors, but generally is just gets in the way of doing
  what you want, and doesn't catch any errors professionals make, anyway.

| If Lisp is so great, why hasn't the programming world latched on to it as
| the silver bullet to save everyone from growing complexity?

  because Lisp requires more intelligent programmers than C and C++ do.

| Can someone please relieve me of my Fear, Uncertainty, and Doubt?

  you have nothing to fear but fear itself.  just stop fearing.

| Without the language, you can not think it.

  this is also why C/C++ programmers hate Lisp: what they generally want to
  do is a harder and much more verbose in Lisp, but what they don't know
  that they _should_ have done instead is a lot easier, but they will never
  think about it and won't have the conceptual framework to understand what
  you're talking about if you tell them.  at some level, I think they do
  understand that what they're so proud of doing in C/C++ is really quite
  silly to begin with, and nobody likes feeling stupid, so blaming the
  agent of their understanding is better than just quitting the stupidity.

| When it comes down to it, programming is the synthesis of math and
| poetry.  Thought gives birth to form and electrons learn to think.

  nice, but I think you need to find your way back to earth, now.  :)