You say “set it in stone” like that’s a bad thing. It’s a good thing. It means you can pick up a CL book and write CL code in compilers across a wide variety of architectures. Or you could back in the day. And the robust and reliable tools running on CL now owe their longevity and stability to that “set in stone” specification of what Common Lisp is.
There’s nothing preventing a new improved version of the CL language except that there is nobody sufficiently interested in it to finance it without a better ROI. Just look at the many editions of C++.
Contrast with Clojure which is particularly abhorrent from a stability standpoint. For example, the 100+ production files I had to edit when they renamed clojure.spec
to clojure.spec.alpha
, and the many freely available libraries (yay!) that pay no attention to backwards compatibility and break code in subtle ways when you upgrade (nay!). Describing Clojure as being defined by behavior sums it up well, but as a production language goes that has drawbacks.