Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Strictly speaking, Pitman is wrong. The technical innovations he describes came with Lisp Machine Lisp and ZetaLisp. But if you consider all three as a sort of family, then he's right: there was a lot of new stuff in CL. The problem was, a lot of it was bad, or at least done in a kludgy way.


Could you give a couple of examples of what you consider bad? CL is so much better than anything I used prior to it that I'm not very sensitive to these distinctions.


The first sign of trouble is the sheer weight of CLTL.

The fundamental problem with CL is that it's an accumulation of bits written by many people at different times in different styles. A lot of it is written in a style common in the mid 80s Lisp Machine days when it was the fashion to give everything every possible option. The loop macro is a particular horror, with its unLisplike syntax and semantics so complicated that the ANSI standard doesn't even try to explain it.

CL is also missing a few things. Not having continuations is a problem, and having a separate namespace for functions adds a lot of complications.


> The first sign of trouble is the sheer weight of CLTL.

Was this simply an issue of trying to put (what should have been?) library functionality into the language?

I've never been sure at what point one should stop adding the next keyword argument or handling the next edge case: if things are designed so that it's easy to do only when necessary.

CL seemed to accrete functionality better left to specific use-cases, but re-inventing the wheel sucks too. Back then it seemed like a lot could have been done with CL addons but instead it was pushed into the spec.

(Caveat: I don't remember stuff that happened yesterday, let alone in the very late 80's/early 90's, when I was working in CL.)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: