I will leave aside the “slow” and “tricked” parts because they are mostly cheap shots. Nothing interferes with the deliberate, officially established implementation of all Common Lisp due to slowness or error.
As for the rest, I think this tends to be true, but the big reason it is true is that Common Lisp provides quite a lot, and C provides very little. Real elements, such as hash tables, linked lists, and extensible vectors, remain at the disposal of the user for implementation. All memory management is manual, but you can automate it by recounting or even adding a garbage collector. You can collapse your own polymorphic OO by pointing to pointers to objects in the structure somewhere and using it as a vtable. You can add a translator for a language that will allow you to easily script your application, or facilitate interaction and testing at runtime.
This is almost half of Common Lisp; Perl really provides all of this and some other Lispy features for download. But in fact, it doesn't look like a big deal, because one thing that has changed over the 15 years since Greenspoon came up with his tenth law (skipping the other nine) is that many languages added the same half Common lisp Guy Steele said about Java a few years later --- he dragged programmers halfway to Lisp.
source share