OFF-TOPIC:: Why Lisp is not my favorite programming language

N

nobody

This article is posted at the request of C.W. Yang who
asked me to detail my opinion of Lisp, and for the benefit
of people like him, who may find themselves intrigued by
this language.

The opinions expressed herein are my personal ones, coming
from several years of experience with Lisp. I did plenty of
AI programming back in the day, which is what would now be
called "search" instead.

Due to time constraints, I will refrain from posting any
follow-ups here. Participants of other newsgroups are well
aware of comp.lang.lispers' tendency to engage in personal
attacks, so a productive discussion with them is unlikely
anyway.

Permission is granted to copy and distribute this document
without restrictions.


=========================================================
Why Lisp is not my favorite programming language.
=========================================================
(In the following, "Lisp" refers to ANSI Common Lisp)

This article is a collection of facts anyone interested in
Lisp should know about.

---------------------------------------------------------

FACT 1: The fastest Lisp implementations are slow

(See any third-party benchmark: The Great Computer Language
Shootout comes to mind, but the Coyote Culch test is in my
optinion even better: it is a professional-quality
interlanguage benchmark)

As a rule of thumb, the most hand-optimized Lisp programs
will be longer than their C/C++ equivalents, and will run
2-20 times slower using the best compilers.

This alone is half the truth. To get such performance out
of Lisp, one has to add type declarations and shed all
safety checks, which is analogous to casting /everything/
to (void*) in C. This is needed to turn off type tag checks
at run time.

Sadly, Lisp code that was posted to USENET by Pascal
Bourguignon for the Coyote Gulch test did not measure up
even to these low expectations and was 31.6 times slower
than C++, using CMUCL 18d as a Lisp compiler and Intel C++
7.1 (with -O3 -xW optimization switches) as a C++ compiler
on Pentium IV.

---------------------------------------------------------

FACT 2: No one but a small clique of fanatics likes it

No matter how odd or perverted the cause, there will be
followers. In fact, the odder the cause, the fewer, but
more fervent its followers are. Look at any religious cult,
like Scientology, or take a peek in comp.lang.lisp and
listen to Lisp zealots talk about 'making sacrifices for
the cause' (in all seriousness!). Look up "a public
apology" thread started by Pascal Costanza as an excellent
example.

ZEALOTS STOP AT NOTHING TO ADVANCE THEIR CAUSE, AND
PERSONALLY ATTACKING ANYONE WITH A DISSENTING OPTINION IS
THE FIRST THING IN THEIR ARSENAL.

---------------------------------------------------------

FACT 3: The vast majority of people who study Lisp in
school, never want to use it again.

You should already know this if you studied or taught CS
where Lisp courses were offered. Even those students who
are fond of Scheme are usually disgusted by Lisp.

---------------------------------------------------------

FACT 4: Lisp is the most complicated language in the world

It has the biggest standard specification document, which
is also the most obfuscated one - something a lawyer
pretending to be a programmer could have written. C, C++
and Fortran 95 specs are much better written, by people who
can communicate directly and eloquently.

---------------------------------------------------------

FACT 5: Despite its size, Lisp does not define threads or
GUI.

Large libraries are very useful when programming, however
Lisp's many functions and macros hardly qualify.

---------------------------------------------------------

FACT 6: There is no open-source cross-platform native-code
compiler

It was suggested that GCL (GNU Common Lisp) is the only
exception. However, it needs to be noted, that despite its
name, GCL is a dialect of its own, is quite slow even by
Lisp standards, and most alarmingly, unlike with other
compilers, its license requires your, programmer, code to
be GPL if you distribute it with GCL. (Because you will
need to use GCL both as a compiler and a run time library)

---------------------------------------------------------

FACT 7: There is no standard C interface.

C has become a lingua franca for interlanguage APIs. It may
be unfair, but not having a standard C interface is a
serious problem for any language.


EPILOGUE:

I do not hate Lisp, and I think it was a fine tool decades
ago, and I am not going to say "Lisp sucks". However, now
that we have superior languages for coding close to the
iron, high-performance computing, number crunching,
algorithms, scripting and gluing components together, Lisp
should be finally retired.
 
M

Matthias Felleisen

nobody said:
EPILOGUE:

I do not hate Lisp, and I think it was a fine tool decades
ago, and I am not going to say "Lisp sucks". However, now
that we have superior languages for coding close to the
iron, high-performance computing, number crunching,
algorithms, scripting and gluing components together, Lisp
should be finally retired.

somebody answers:

Lisp has been declared dead for the past N years. Unlike Algol, Simula 67, PL/I,
Pascal, ... and many more languages that came and went, it is still alife and
kicking. It will be alive and fun to program in for many years to come, because
it still has many advantages over C#, Java, Perl, Python, Ruby, and many other
languages that *will* come and go before Lisp is truly retired.

Long live Scheme

And now it's time to go back and strengthen Scheme even more.

-- Matthias Felleisen, PLT
 
C

Christopher Benson-Manica

This article is posted at the request of C.W. Yang who
asked me to detail my opinion of Lisp, and for the benefit
of people like him, who may find themselves intrigued by
this language.

Wow, isn't that nice of you to post for Mr. Yang. I'm sure I, like
everyone on comp.lang.c, is utterly fascinated by Lisp and Mr. Yang's
critique of it. Likewise, I'm sure, for the happy inhabitants of
comp.lang.c++, comp.lang.java.programmer, and comp.lang.python.

Followups set, anonymous crossposting troll.
The opinions expressed herein are my personal ones, coming
from several years of experience with Lisp. I did plenty of
AI programming back in the day, which is what would now be
called "search" instead.
Due to time constraints, I will refrain from posting any
follow-ups here. Participants of other newsgroups are well
aware of comp.lang.lispers' tendency to engage in personal
attacks, so a productive discussion with them is unlikely
anyway.
Permission is granted to copy and distribute this document
without restrictions.

=========================================================
Why Lisp is not my favorite programming language.
=========================================================
(In the following, "Lisp" refers to ANSI Common Lisp)
This article is a collection of facts anyone interested in
Lisp should know about.

FACT 1: The fastest Lisp implementations are slow
(See any third-party benchmark: The Great Computer Language
Shootout comes to mind, but the Coyote Culch test is in my
optinion even better: it is a professional-quality
interlanguage benchmark)
As a rule of thumb, the most hand-optimized Lisp programs
will be longer than their C/C++ equivalents, and will run
2-20 times slower using the best compilers.
This alone is half the truth. To get such performance out
of Lisp, one has to add type declarations and shed all
safety checks, which is analogous to casting /everything/
to (void*) in C. This is needed to turn off type tag checks
at run time.
Sadly, Lisp code that was posted to USENET by Pascal
Bourguignon for the Coyote Gulch test did not measure up
even to these low expectations and was 31.6 times slower
than C++, using CMUCL 18d as a Lisp compiler and Intel C++
7.1 (with -O3 -xW optimization switches) as a C++ compiler
on Pentium IV.

FACT 2: No one but a small clique of fanatics likes it
No matter how odd or perverted the cause, there will be
followers. In fact, the odder the cause, the fewer, but
more fervent its followers are. Look at any religious cult,
like Scientology, or take a peek in comp.lang.lisp and
listen to Lisp zealots talk about 'making sacrifices for
the cause' (in all seriousness!). Look up "a public
apology" thread started by Pascal Costanza as an excellent
example.
ZEALOTS STOP AT NOTHING TO ADVANCE THEIR CAUSE, AND
PERSONALLY ATTACKING ANYONE WITH A DISSENTING OPTINION IS
THE FIRST THING IN THEIR ARSENAL.

FACT 3: The vast majority of people who study Lisp in
school, never want to use it again.
You should already know this if you studied or taught CS
where Lisp courses were offered. Even those students who
are fond of Scheme are usually disgusted by Lisp.

FACT 4: Lisp is the most complicated language in the world
It has the biggest standard specification document, which
is also the most obfuscated one - something a lawyer
pretending to be a programmer could have written. C, C++
and Fortran 95 specs are much better written, by people who
can communicate directly and eloquently.

FACT 5: Despite its size, Lisp does not define threads or
GUI.
Large libraries are very useful when programming, however
Lisp's many functions and macros hardly qualify.

FACT 6: There is no open-source cross-platform native-code
compiler
 
T

Thomas Weidenfeller

nobody said:
This article is posted at the request of C.W. Yang who
asked me to detail my opinion of Lisp, and for the benefit
of people like him, who may find themselves intrigued by
this language.

You should be shot on sight for posting advocacy to a bunch of
non-advocacy groups. "Thanks" for polluting the groups with yet another
programming language war.

F'up set.

/Thomas
 
J

Joe Marshall

This article is posted at the request of C.W. Yang who
asked me to detail my opinion of Lisp, and for the benefit
of people like him, who may find themselves intrigued by
this language.

Did he ask you to post this article in these newsgroups?

comp.lang.c++
comp.lang.java.programmer
comp.lang.scheme
comp.lang.c
comp.lang.python

Why did you not post it comp.lang.lisp where it would be at least
relevant?
Due to time constraints, I will refrain from posting any
follow-ups here.

If you do not intend to engage in convesation, why are you posting it?
This article is a collection of facts anyone interested in
Lisp should know about.

Is there some reason anyone should take `nobody' at yahoo seriously?
Look up "a public apology" thread started by Pascal Costanza as an
excellent example.

What does such a personal matter have to do with the language?
I do not hate Lisp, and I think it was a fine tool decades
ago, and I am not going to say "Lisp sucks". However, now
that we have superior languages for coding close to the
iron, high-performance computing, number crunching,
algorithms, scripting and gluing components together, Lisp
should be finally retired.

You clearly have some sort of axe to grind. If you don't like Lisp,
don't use it.

To others, if you are unfamiliar with Lisp you are welcome to read a
rebuttal in comp.lang.lisp

Please direct all followups to comp.lang.lisp
 
R

Ray Dillinger

nobody said:
This article is posted at the request of C.W. Yang who
asked me to detail my opinion of Lisp, and for the benefit
of people like him, who may find themselves intrigued by
this language.

The solution to your problem is obvious. Just treat Lisp like
Chocolate; if you don't like it, you can't have any.

Followups set.

Bear
 
G

Guillaume

I don't know what this post has to do with comp.lang.c, but whatever.

This was pretty funny nonetheless.

As for me, I would say practically the same things about Java. :p
 
K

Kaz Kylheku

FACT 2: No one but a small clique of fanatics likes it

No matter how odd or perverted the cause, there will be
followers. In fact, the odder the cause, the fewer, but
more fervent its followers are.

But nobody is more fervent than lunatics whose membership applications
were *rejected* by imaginary little fanatic cliques. Their cause, in
fact, usually has just one follower.
 
M

Martin Ambuhl

nobody said:
This article is posted at the request of C.W. Yang who
asked me to detail my opinion of Lisp, and for the benefit
of people like him, who may find themselves intrigued by
this language.

I fail to see why anyone should give a rat's ass about what someone
hiding behind "(e-mail address removed) (nobody)" has to say about
anything. "Nobody"'s opinions about LISP, C, or the color of bananas is
completely worthless. When you have the cajones to stand behind your
opinions, you might be paid attention to.
 
E

E. Robert Tisdale

Something that calls itself nobody wrote:

[snip]

This is an obvious troll. Please ignore it.
 
D

Dale King

Matthias Felleisen said:
nobody wrote:

Lisp has been declared dead for the past N years. Unlike Algol, Simula 67, PL/I,
Pascal, ... and many more languages that came and went, it is still alife and
kicking.

I really am not getting into the debate over lisp, but the notion that those
other languages are dead is not correct. I'm not sure there is a successful
language invented that has ever truly died. Interest in Simula for example
keeps growing. There is an annual conference for Simula and the attendance
grows every year.

I would bet that there is somebody somewhere still programming in ENIAC
assembly language.

Feel free to name a language that you think is dead and someone will tell
you someplace that it is still in active use.
 
J

Jorge Rivera

As for me, I would say practically the same things about Java. :p

Wow, you are comparing a fairly useless language (Lisp) with a powerful
and flexible languange (Java), and would come up with the same arguments
as to why it sucks?

Not that I really care, it is just interesting how your preconceived
notions of Java blind you...
 
G

Greg Ewing (using news.cis.dfn.de)

Dale said:
I would bet that there is somebody somewhere still programming in ENIAC
assembly language.

Did ENIAC *have* an assembler? I thought it was programmed
with a patch panel.

(The word "patch" meant something quite different in those
days...)
 
J

Jon A. Cruz

Jorge said:
Wow, you are comparing a fairly useless language (Lisp) with a powerful
and flexible languange (Java), and would come up with the same arguments
as to why it sucks?

Well, I happen to use that "fairly useless" language daily in working
with Java.

:)

http://jdee.sunsite.dk/



(Sorry, guys. Couldn't resist)
 
J

Joe Marshall

Dale King said:
Feel free to name a language that you think is dead and someone will tell
you someplace that it is still in active use.

Focal
FX
Lakota
REBOL 1.x
 
M

Mike Nishizawa

These posts are like big huge neon signs that say, "I'm IGNORANT." If
you hold that 1 language is better than all other languages, then you
ARE ignorant. LISP is a parsing language. It's obviously not made to
do the same things that C is. LISP is extremely fast for processing
data files.

C in not an end-all be-all of programming languages, even though it is
quite robust. For instance, C is great if you are going to develop
software for 1 platform. However, if you are developing software for
multiple platforms, Java is a better choice.

Really these discussions boil down to the programmer him/herself, who
is usually the one at fault for poor performance. I'm not quite sure
when this happened, but at some point programmers started relying on
hardware for fast, efficient software and from that point on, the
quality and emphasis placed on writing efficient programs has
diminished. If you want your code to run faster, make it more
efficient... make it use less resources... and use the right language
for the job. Don't try to fit all things under one umbrella because
that language has not been developed yet.
 
T

Tim Daneliuk

Mike said:
These posts are like big huge neon signs that say, "I'm IGNORANT." If
you hold that 1 language is better than all other languages, then you
ARE ignorant. LISP is a parsing language. It's obviously not made to
do the same things that C is. LISP is extremely fast for processing
data files.

C in not an end-all be-all of programming languages, even though it is
quite robust. For instance, C is great if you are going to develop
software for 1 platform. However, if you are developing software for
multiple platforms, Java is a better choice.

Really these discussions boil down to the programmer him/herself, who
is usually the one at fault for poor performance. I'm not quite sure
when this happened, but at some point programmers started relying on
hardware for fast, efficient software and from that point on, the
quality and emphasis placed on writing efficient programs has
diminished. If you want your code to run faster, make it more
efficient... make it use less resources... and use the right language
for the job. Don't try to fit all things under one umbrella because
that language has not been developed yet.

http://www.tundraware.com/Technology/How-To-Pick-A-Programming-Language/
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,733
Messages
2,569,440
Members
44,831
Latest member
HealthSmartketoReviews

Latest Threads

Top