Re: How Common Lisp sucks



Ron Garret wrote:
In article <0T333hfsIo3nNv8%stesch@xxxxxxxxxxxxxxxxxx>,
Stefan Scholl <stesch@xxxxxxxxxxx> wrote:


Ron Garret <rNOSPAMon@xxxxxxxxxxx> wrote:

trying to use Lisp for e.g. writing a Web server is an incredibly painful experience compared to doing the same thing in e.g. Python.

I could list some web servers written in Common Lisp.


Yes, and it's probably a very long list. (And one of the items on that list would be http://www.cliki.net/HTTP%20dot%20LSP.)

Now, compare any of those to the effort required to write a web server in Python, where you can do:

import BaseHTTPServer


This is a very sad example, because this is exactly what
newbies, especially teenage hacker dudes are interested
in these days. If a programming infrastructure fails
to provide batteries included in order to make their ideas
fly, then they will take their business to a programming
infrastructure that does. And teenage hacker dudes grow
up and vote. And who can blame them if they stick to
their trusty perl or python or VB that made their eyes light
up with glee when their first web- or socket-thingy just
worked?

Lisp's outlandish syntax and questionable reputation in
the mainstream are problematic enough in the competition
for the hearts and minds of newbies. It really takes some
maturity as a programmer or exceptional vision or both
to see the beauty in this beast, if you catch my drift.

What's more, Lisp has a more complex theoretical
underpinning than the p* languages. Most programming
cadets either

- want to emulate what they see and admire, and
this is 3D computer games and web stuff

or

- want to solve a problem, like laying pipes between
MS Office- or Unix applications

Now try to imagine someone who wants to put up a website
or wants to write a simple frontend to an Access database
application and is looking for some toolset to enable him to
do that. Even if some OSS Lisp-implementation had drop-in
support for this, it is hard to imagine that such an
adventurous soon-to-be geek would opt for Lisp, not even
if a friend or local authority would recommend it to him.
The adventurous soon-to-be geek would dismiss Lisp very
soon, because with her concepts of passing around functions,
Lukasiewicz-notation and drawings of cons-cells it is
not competitive with more conventional languages using
infix-notation and less obvious concepts.

Precisely these concepts give Lisp her power, alright,
but this power shines for handling complex sophisticated
data structures and building clever abstractions. This
is not what beginners need, this is something SOME computer
scientists and SOME people with the scars of C++- and Java-agonies
appreciate. More often than not, however, not even this demography
sees the advantages of Lisp, because they dismissed Lisp
early on and gave the simpler languages the opportunity
to shape their thinking in their formative years. Again,
even WITH a drop-in webserver (or other equivalents to
popular CPAN-libs) Lisp had a hard time competing
with p* or Java. She's just a little too odd and too
kinky for conventional wisdom. As an aside, similiar
effects make C++ a little too cumbersome for the conventional
wisdom, thus it will be retired together with the people
who had their formative years in the pre-perl, pre-Java
and pre-C#-days. In a word, failing to delight ASPIRING
programmers is a serious obstacle on the road to world-domination.
The problem with programming languages (or software in
general) is, that there is no middle ground between world
domination and total obscurity. Those who have will get more.

In this light, it is a testament to Lisp's power that
a miniscule community can actually build libraries and
components that are competitive in functionality with
the equivalents in more popular languages. They are not
quite as polished, but I understand that this is exactly what
Peter Seibel's Gardeners are trying to fix.

You can come to two contradicting conclusions based on
this observations:

- Give up on the aspiring programmers who just want to
script, because it's a lost cause anyway, but this
means giving up on Lisp. The aspiring and the casual
geeks make or break a language's popularity

- Try harder to make Lisp a "batteries included" language
like python (or, even more so, perl, although she doesn't
have that slogan)

I'm pessimistic about the former. I don't think that
ANY set of libraries can compensate for Lisp's weirdness.


However, what I don't really understand is Lisp's low acceptance among
experienced programmers, especially those who don't need
drop-in libraries for piping between server apps, Windows
apps or scripting. There are many complex problems in niche
domains that typically fail because they turn into a flea circus
due to language brittleness (ask EDS or your favourite random
Fortune 500 IT contractor). The more plausible attitude
toward Lisp in these circles should be "Okay guys, let's get
real. Java might be the right hammer to do some enterprise
toilet paper web procurement service, but our proposed
air-flight reservation system requires something more
professional. Silly parentheses and closures, you say?
Get out of your dress..." The steep learning curve should not deter a
real programmer, and real programmers WANT to be real
programmers, and Lisp would be an ideal opportunity to show
off their mojo, to separate the boys from the men.
What's more, large and sophisticated
projects are planned for years, so even months of intense
training are a low price for proven increased productivity,
especially if the domain itself requires specialized and
expensive education.
Professional barbers don't use Gilettes or electric shavers,
they use straight razors because they give a better shave
and they are faster. A straight razor is not a consumer- or
convenience product, because it requires skill and you
can hurt yourself; but skill and a focus on faster
and better results is what makes a professional a professional.
In a related metaphor, this is the reason why sane IT shops don't use
Windows as a server platform, but favor the much less consumery
Unix. Windows is optimized for office babes, just
like a Philishave, and this gets in the way for SERIOUS
computing needs. Unix requires more training and touch-typing, but
those who have gone thru the training
are rewarded with faster and better results. Unix, however,
has less of a problem getting this message thru than Lisp.
"command line > drag & drop" is obviously more plausible
in computing than "s-expressions > Java". This lack of insight
gets even more puzzling while watching the pathetic attempts
in enterprise computing that try to address things like
code reuse, "programmer automation", domain-specific languages
and less bugs. I think most of us laugh at all the fads that
fail to live up to their corresponding promises
(UML, XML-based programming languages, code generators,
*-driven programming, CASE-tools, etc.) The pointy-haired
bosses are looking at all the wrong places and stubbornly
refuse to even notice or discuss Lisp for some reason.
Laughing at them is not enough, however. I have no idea how
to pull this off (I'm an armchair-revolutionary, you see),
but I wonder if the PHBs' desperation is not ripe for exploitation
by Lisp-pundits, but there is no Lisp-pundit with enough
ambition or credibility. Maybe Paul Graham is THE ONE as soon
as his wealth surpasses that of Billy or Stevo. Money sells.
Maybe we should buy more of Paul Graham's books.

What do we learn from that? Well, nothing. This is just another
Lisp-musing from someone who has promoted himself from
Lisp-newbie to armchair-Lispnik. I'm jealous for Ron Garret,
by the way. I understand that Ron Garret is rich, but far
more attractive and enviable is his spending 20 years as a Lisp programmer. Better a poor Lisper than a rich Javamonkey, I really mean
that. And "my programming career has been destroyed" is a somewhat
weird testimonial for one who has ended up with a fortune (did I get
that right, Ron? How did THAT happen?)
.



Relevant Pages

  • Re: LISPPA
    ... > memory resources. ... do in Common Lisp with code that runs about as fast. ... >> comparing Lisp with languages like C, Pascal and Basic, ... If by "visual programming" you mean the sort of ...
    (comp.lang.lisp)
  • Re: How Common Lisp sucks
    ... languages than there are jobs that require them as primary programming ... blog entries on Lisp. ... Lisp that sucks, ...
    (comp.lang.lisp)
  • Re: LISPPA
    ... >> a match for such imperative languages as C, ... >comparing Lisp with languages like C, Pascal and Basic, ... I can accept that Lisp tries to compensate of the lack of compile-time ... If you have tools of visual programming, nice editor, advanced ...
    (comp.lang.lisp)
  • Re: LISPPA
    ... >> memory resources. ... > do in Common Lisp with code that runs about as fast. ... in "weaks languages": iteration instead of recursion and "local" ... I'm programming in Pascal since 1990 year, ...
    (comp.lang.lisp)
  • Re: compiler for Chinese development language
    ... This relates to the development of vernacular ... Indian vernacular display, OS and programming languages. ... Bangla and other vernaculars. ...
    (comp.compilers)