Re: Better is better: improving productivity through programming

From: Michael Sullivan (michael_at_bcect.com)
Date: 04/05/04


Date: Mon, 5 Apr 2004 17:20:40 -0400

Pascal Costanza <costanza@web.de> wrote:

> It's clear that the perceived (not necessarily real) lack of
> infrastructure (libraries, and so on) can and will probably be solved
> over time. Nothing (!) in Common Lisp prevents us from doing that.

There is nothing inherent in the language that prevents it, but the
sheer scale of the task of keeping up with all the various platforms and
interfaces and the way they change can mean that a lack of popularity
prevents it. Common Lisp is usable for almost any task at this point,
but having libraries that make the obvious things as easy as they are in
some other popular languages takes a *lot* of work. If the language
community is not of a certain size, there may not be a lucrative enough
market for commercial developers, or enough people willing to donate
their code to keep up with the changes in the computing world as
effectively as the most popular languages can.

I think it's debatable which side of that critical mass common lisp is
on right now. I think it's clear that if CL were much less popular --
it could be clearly on the "never able to keep up" side. Fortunately, I
get the sense that lisp's popularity has recently started growing again,
so I expect CL to get to the right side of that line if it isn't there
already.

> The
> lack of sufficient abstraction facilities in most other languages can
> only be solved by replacing them with yet other languages (including new
> versions thereof).

That is certainly true. One problem is that a huge number of money
problems can be hack solved without getting into the kind of complex
design where an HLL (in the lisp sense) can really shine. This leads to
a philosophy where interesting problems become considered "impossible"
because of the exponential programmer time complexity of dealing with
them in languages with insufficient abstraction facility.

The idea of using a language with better abstraction facility doesn't
occur to people who have never grokked such a language. Although that
said, before I ever learned lisp, I struggled with the lack of such
facility in common languages. Until I understood lisp and scheme enough
to realize that they did the very things I had for 15 years wished I
could do in other languages, I had just assumed that such facility was
"too hard to implement correctly".

What's too hard is doing it while maintaining total backwards
compability with your braindead ancestor language -- a la STL in C++,
which tries hard and is clearly influenced by lispy ideas, but stops
*far* short of being as usable as any reasonable lisp dialect.

Michael



Relevant Pages

  • When static typing is worth it
    ... typed languages like Lisp. ... developed more quickly in modern statically typed languages than ... static type system and remove run-time checks. ... incurs a run-time error if the list is ...
    (comp.lang.lisp)
  • Re: Program compression
    ... problems to be solved much more concisely than with Lisp. ... In Common Lisp, it's another one line of code: ... My point is that different languages are based on different things ... it would be impossible for the author of a macro (in the Lisp ...
    (comp.programming)
  • Re: What is Lisp used for?
    ... My main languages are Perl, Java, and ColdFusion. ... Lisp PHP FlamingThunder). ...
    (comp.lang.lisp)
  • Re: SBCL is now faster than Java, as fast as Ocaml, and getting better
    ... what MLish languages do in this case. ... If you are trying to compare my OCaml code with your Lisp translation then ... Lispers not only fail to understand the benefits of pattern matching ... but it is a Java extension just much as Clojure ...
    (comp.lang.lisp)
  • 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)