mjd-perl-pm on Mon, 6 Mar 2000 11:21:34 -0500 (EST)


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

Re: Emacs, was Re: YAPAS (Yet Another Python Advocacy Story) (fwd)


> > LISP. I usually counter the argument that LISP is the One True Language on
> > account of its aesthetic simplicity or what have you with the following
> > questions:
> > 
> > (1) Would you like to try writing a CGI script in LISP?

Well, that would depend on who you ask.

But I also think it's the wrong question, and I brought up a related
point in a review I once wrote.  If all you're ever going to do is
write a bunch of CGI stuff, then it doesn't really matter what
language you use.  Lisp, Perl, whatever.  I've written CGI scripts in
C, and I know Lisp would be a lot better for that than C was.

I think the right question might be more like this:

    (1) Would Lisp be an appropriate language if you wanted  to write
        a 100,000-line analog circuit simulator?

or

    (1) Would Lisp be an appropriate language if you wanted  to write
        an optimizing FORTRAN compiler for a high-performance
        distributed multiprocessor supercomputer?

And for both these things I believe the answer is `yes'.  

> > (2) Which would you rather do, given only the following choices?
> > 	(a) Write a Perl interpreter in LISP.
> > 	(b) Write a LISP interpreter in Perl.

Now *that* is really an unfair question.  Obviously it's much easier
to write a Lisp interpreter in Perl----and that's because of Lisp, not
Perl.  It's easier to write an interpreter for Lisp in *any* language,
because Lisp is a really simple, straightforward language and Perl is
a convoluted, baroque monster that nobody understands.

It's certainly not because of any special good qualities of Perl, and
you can prove that by pointing out that it's even easier to write a
Lisp interpreter in Lisp than it is to write one in Perl.

Now let's turn it around.  Which would you rather do, given only the
following choices:

> > 	(a) Write a Perl interpreter in Lisp.
> > 	(b) Write a Perl interpreter in Perl.

You might choose (b) because you know Perl and not Lisp.  But I know
both, and I'll choose (a).  I'll probably get done first, and when
we're done, mine will compile to native machine code and yours will
still be interpreted.  As a final note on this, I'll just point out
that Chip Salzenberg has been working for more than a year to write a
Perl interpreter in C++, but I could probably turn out a working Lisp
interpreter in C++ in about two days.

It's taken me about ten years to see it, but when those Lisp zealots
say that Lisp is the One True Language, they have a lot of good
points.  Lisp really *does* have a lot of very powerful features that
are not shared by other languages.  

The reason programmers from other languages don't appreciate this is
that they have not been exposed to these features and so they don't
know how to use them.  When a Lisp person says ``Lisp is good because
it has a uniform syntax,'' or whatever, everyone else says ``Big deal,
I've programmed my whole life without uniform syntax (whatever that
is), so it couldn't be very important.''  But of course this is
fallacious, like a cranky old guy on a park bench saying that in his
day, nobody needed any of these here new-fangled portable telephones.

(Another reason people don't appreciate the good qualities of Lisp is
that the Lisp community is *amazingly* bad at evangelism.)


**Majordomo list services provided by PANIX <URL:http://www.panix.com>**
**To Unsubscribe, send "unsubscribe phl" to majordomo@lists.pm.org**