I'd say they suck because the authors cared about specific issues other than making the implementation not suck (which I guess means fast performance performance?).
But how does lua bears lisp inheritance in its implementation? IIRC lua does not use pointer tagging which is a typical lispism, uses tables for everything, has no lists, and uses a different approach for implementing closures.
Are you thinking of LuaJIT(2) ?
Re:Books Programmers Don't Really Read
by silentbicycle on Tuesday April 27, 2010 @01:08PM
(#1298860)
Lua's designers have acknowledged a lot of Scheme influence, especially from 4.0 onward, but I think it's more about the semantics than the implementation.
Lua uses a type tag + union rather than tagged pointers because it's not strictly portable, and they've placed a high priority on strict ANSI C compliance (with the sole exception of dynamic library loading). Also, Lua tables recognize when they're being used as arrays and use an array internally.
[0] Ok, the multi-platform support of some of the CL implementations could be better.