What features of #CommonLisp can't be found in a larger #scheme distribution? I feel like I'm always hearing that scheme isn't full-featured enough for most #lisp hackers, but it's unclear what the average scheme is usually missing. On the other hand, I can think of quite a few features common in among schemes that you won't find in CommonLisp.
@rml CLOS and MOP are better respect many Scheme OOP libraries.
Generic functions are used also in contexts different from OOP.
CL macros are easier to write.
The error and exception handling of CL is very powerful and useful.
But the real answers for me are these:
1) CL live coding (i.e. interactive REPL) is very fun and addictive
2) there are many CL compilers with different characteristics at run-time accepting the same CL code, and that you are sure that you can use in production. For example with ECL you can produce C-friendly libraries.
3) a minor detail, but I like the fact that "nil" stays for false, and every other value for "true". The code become shorter.
@rml I'm not an expert of CL, and I only played some weeks with Racket. So I'm not an expert of Scheme too.
BTW, my 2cents are that regarding CLOS, it is very complete and it is a standard of CL. So there are a lot of CL libraries using it, and it is fully integrated in the development experience.
If your OOP code is slow, you can optimize the way objects are managed, and slots are stored in RAM, using MOP. For example with MOP you can store the coordinates of point objects in a compact array (i.e. row-store), despite you access them like normal objects.
@mzan yeah, I did the Guile MOP tutorial and was extremely impressed. In general CLOS seems amazing, I need to spend more time with the Guile implementation. Its a shame that so much of the FP hoopla has caused people to think objects are evil and corellated with hazardous use of global mutable state.