3 ms·
CL is designed so that code written for earlier Lisp dialects can run with little or no modification, which means there's a lot of bloat and historical baggage
by DalekBaldwin 10y ago
CL is designed so that code written for earlier Lisp dialects can run with little or no modification, which means there's a lot of bloat and historical baggage in the core `common-lisp` package. But even if that weren't the case, you'd still need conventions like you do in any other language. Clojure is a young language with a BDFL. It already has historical baggage that prominent members of the community will tell you to avoid.
The fact that so many people write their own cleaned-up wrapper libraries like CLUEL isn't a sign that CL especially needs them; it just means it's easy to do. If a language doesn't have macros and doesn't let you shadow built-in operators, you have to play the hand you're dealt.
It's trivial to deal with cryptic function names and inconsistent parameter ordering in a language's core library. I can read code with `car` and `cdr`; I write code with `first` and `rest`. What makes a poorly designed language is something you can't paper over, like broken lexical scoping. There are definitely some things worth complaining about in CL as a language, but I didn't see any in this post.