Hacker News new | past | comments | ask | show | jobs | submit login

> It has an object model unlike any other language (CLOS).

object models differ widely. Compare Smalltalk, Java and C++.

CLOS had influence on a bunch not so mainstream languages: Perl5 (Moose), Perl6, Julia, R, Scheme (TinyCLOS and similar) ... and a bunch of extensions to C, Java and other languages.

There are some difficulties to make CLOS fast on top of, say, the JVM. One can't map the full CLOS directly on top of Java objects, since they lack some features like multiple inheritance, direct class updates, etc. So there is a layer of mapping necessary - which is possible -> ABCL. But it's not as fast as a direct implementation.

> A lot of the complexity comes from needing to be both interpreted and compiled at the same time

Not sure what you mean by 'interpreted', but there is no requirement to support both. SBCL for example and no Lisp interpreter for many years. It now has one, but it's not used much. Clozure CL also has no interpreter.

Btw., EVAL is no interface to an interpreter. SBCL would compile the code at runtime.

> A lot of completely arbitrary things like the infamous LOOP macro are in the standard library.

It's not arbitrary. It's a standardized iteration facility. LOOP actually does not make implementations difficult, since there are ready-made LOOP implementations which can be just loaded into Common Lisp.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact