Brian Carper described a few days ago, how Clojure is better (for him) than Common Lisp (actually, SBCL). I managed to dig through ensuing flame war, but it seems like nobody in the flame war realized (or it wasn’t stressed enough) that original post is actually comparing apples to oranges, a serious language to a toy language.
A language, to be considered serious, needs to be self-sufficient, a serious language can’t be a mere parasite on some host language or environment, and its bus factor can’t be finite. That translates to just a couple of features:
- A serious language has to have a defining standard, it can’t be implementation-defined. A good standard bumps language’s bus factor to aleph null: after a nuclear catastrophe, archæologists of future generations should be able to re-implement the language on any hardware, including the Calculor;
- A serious language has to be self-hosting, or at least have some self-hosting implementations. Only then language stops being dependent on other languages.