After “looking in on it” several times over the last few years, I have finally taken the plunge and really dug into the Lua programming language, and I love it. I’m having the same feelings about Lua that I had about Forth. Is there a similar explanation? I think there is.
Lua is small – its implementation is about 16000 lines of C code – very modest for a “modern” program. This is about six times the size of my latest Forth (also written in C), which I wanted to be as small as possible. So Lua is only six times bigger than the smallest Forth I was able to write in C.
Lua, like Forth, has a few deep ideas that, once mastered, open infinite possibilities. Like Forth, it was designed to be extensible. Lua is well-documented, well-written, and has a simple C API, so it can be easily “glued” to other programs.
Lua is, by design and intention, a malleable tool, of such modest scope that it is possible for someone, investing a few weeks of study, to learn the system so thoroughly as to “call it their own”. At this point Lua too becomes a convivial tool.