Here are some things that I think are &quot;beautiful&quot; about Lua:<p>[a] Here is the complete syntax of Lua:<p><a href="http:&#x2F;&#x2F;www.lua.org&#x2F;manual&#x2F;5.2&#x2F;manual.html#9" rel="nofollow">http:&#x2F;&#x2F;www.lua.org&#x2F;manual&#x2F;5.2&#x2F;manual.html#9</a><p>...compare that to Perl where there is no &quot;complete syntax&quot; of Perl. This shows how simple it is and thus it is easier to write tools for and teach others how to use it.<p>[b] The complete default API consists of ~200 functions:<p><a href="http:&#x2F;&#x2F;www.lua.org&#x2F;manual&#x2F;5.2&#x2F;contents.html#index" rel="nofollow">http:&#x2F;&#x2F;www.lua.org&#x2F;manual&#x2F;5.2&#x2F;contents.html#index</a><p>[c] The defacto book on learning the complete language (including the C interface) is 366 pages:<p><a href="http:&#x2F;&#x2F;www.amazon.com&#x2F;dp&#x2F;859037985X" rel="nofollow">http:&#x2F;&#x2F;www.amazon.com&#x2F;dp&#x2F;859037985X</a><p>Simplicity is beauty IMHO. I would expect any competent developer to get up to speed on the Lua language within a week, it would then take them another couple of weeks to get up to speed on the libraries we use with Lua.<p>The real power in Lua comes when you couple it with competent APIs that do the &quot;real&quot; work. The Distelli Agent uses libuv for the OS interface, libcrypto (part of openssl) for the crypto primitives, zlib for compression, LPeg for parsing, sqlite for an embedded DB, etc.<p>The job of the Lua code is simply to &quot;tie&quot; these core components together.