I don't think any Lisp has ever just thrown anything away. Sheesh, every Lisp I know of still has CAR, CDR, and CONS.schoppenhauer wrote:Common Lisp is an old language which has a lot of Code and Research. Why just throwing it away?
Ok, this would also just produce a "new common lisp" which may have the same problems in 20 years but then one could just do the same again.
![Very Happy :D](./images/smilies/icon_e_biggrin.gif)
Seriously, every Lisp ever designed learns from the experiences of its predecessors (except the first, obviously). IMO, Scheme is a good example of a "reformed" Lisp, which tried to be very true to the spirit of what had gone on before, but also left a lot of the cruft behind. Clojure does something similar, I think, but is more radical in some respects. The problem is that Scheme is minimalist and therefore it's hard to write "real" programs in standard or RxRS Scheme. You can certainly do it in a specific implementation such as MzScheme or Scheme48, but then you're bound to that implementation. CL has some of the same problems when you get to the fringes (networking, threading, etc.), but the fringes with Scheme start pretty quickly.
IMO, a group of interested Lisp folks need to come together and create the spec and reference implementation for a new version of Lisp that leverages the experiences of the past, but cleans things up. I always have this vision of a clean spec, like Scheme, that is also expansive enough to write real programs, like CL but even more so by creating standard behavior around modern requirements like threading and networking, for instance. Clojure is a good example of that, but I'm always turned off by the use of the JVM. Maybe that's just me and I need to spend more time with it. I'm not negative on Clojure generally, and I respect many of the things that Rich has done with it. The pure-functional data structures are very cool (though I haven't seen any good benchmarks about performance), and I can even appreciate the use of the JVM in those environments where your only choice is to run on the JVM (Google AppEngine just announced support for the JVM and my first thought was, "Oh, you could probably run Clojure on that. That's cool!").
The big problem is that nobody with enough "weight" in the Lisp community has the stomach for standards work any more. Everybody reacts like a dog that has been kicked daily for 3 years whenever anybody mentions Lisp standards. There is a big "don't go there" reaction. As a result, CL just stagnates, which is I think what Dan is reacting to.
Lisp seems to be getting more interest in recent years, coming out of the AI Winter. That's good. The problem is that while everybody is interested, when they go to look at the reality of things, they find that Lisp has been static since the early 1990s and doesn't match up well versus the full-featured programming languages being introduced today (things like Perl, Python, Ruby, etc.). It isn't that Lisp can't do the same things, it's that the implementations and libraries are very spotty and it's hard to assemble the environment that you want. Perl is full featured as a base language and it has CPAN if you want more. Python is too, and it has eggs. Ruby, likewise, and it has gems. CL doesn't even have a standard networking layer, and ASDF-INSTALL is brittle and while there are other options (Mudballs, etc.), none yet have critical mass.