I friend of mine recently asked me what I thought of Lua. It is, after all, the first language that I chose to integrate with the rewrite of the Crate Game Engine. The language itself, the syntax and structure, I am somewhat indifferent about. However, I am interested in it for other reasons:

  • Very lenient license restrictions: The site specifies:

    Lua is free software: it can be used for any purpose, including commercial purposes, at absolutely no cost. No paperwork, no royalties, no GNU-like “copyleft” restrictions, either.

  • Fast: faster than most interpreted languages such as Perl and Python and squarely slower than any compiled language. A pretty good middle of the road.
  • Tiny interpreter which is easily embedded in another application. From the website (no longer exists):

    Under Linux, the Lua interpreter built with all standard Lua libraries takes 144K and the Lua library takes 196K.

  • Integrates well with C++. Using SWIG can make the process of exposing your C++ classes and objects to the Lua interpreter almost trivial.
  • It is one of the few languages designed for embedding.

Lua Resources: Lua 5.1 Reference ManualProgramming in Lua, Second Edition