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

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: