|
|
|
|
|
by smabie
2171 days ago
|
|
Dude, not even the people on the committee thought it was "brilliant." The language is ugly, wildly inconsistent, impossibly bloated, and encourages an antiquated and verbose style of code. There are reasonable reasons why it is the way it is, but only within the historical context. I've written production CL code, and hated every second of it. Racket is much better designed, much more expressive, and encourages a better style of code. There's a lot of reasons to use CL, but the brilliance (or rather lack thereof) of the language isn't one of them. CLOS is really the only good part of CL, but isn't even used in the base language! |
|
Of course it is. The condition system for example is all CLOS. #'print-object works for and is specializable on everything. Every CLOS class is also a type, etc. etc.
If your complaint is that not enough CL functions are generic, I'd agree with you, but that's a much more specific complaint than "CLOS isn't used in the base language."
I do wish more functions were generic, but a big part of that problem is bootstrapping: In many ways you need CLOS to support CLOS. The fact that CL manages to bootstrap CLOS into itself even as much as it does is testament to the skill of its implementors.