Formally, Lua is "a powerful, fast, light-weight, embeddable scripting language. Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection, making it ideal for configuration, scripting, and rapid prototyping."
Less formally: "It's just a really slick little language overall," says Evan DeMond, a junior software engineer at a Midwest custom software development shop. "I enjoy programming in it, and I get things done in it quickly." DeMond has been using Lua for scripts and small tools. He has also experimented with writing larger apps in it lately, which "has been going pretty well so far," he says.
Developer Ralph Hempel describes Lua as "one of the best little secrets in programming languages, and I've been through a lot of them in the last 30 years." While it lacks a formally approved library distribution mechanism, Hempel says, there are plenty of de facto standard libraries for file system access, network connectivity, database access and so on. "For me, the best part of the Lua system is the rock-solid language core and the carefully considered upgrades and patches. The releases of Lua are controlled by the 'three amigos' that have been involved with the language from the start." Hempel has ported Lua to the LEGO Mindstorms NXT.
Matthew Wild, director of software consultancy Heavy Horse, sees Lua's advantages in terms of rapid Agile development, exceeding what is possible with more traditional languages. Lua doesn't try to do too much, Wild says. "Instead, it gives you the required building blocks out of which it is possible to build anything you want, in any way you want. The key benefits unique to Lua are the fact that it is amazingly small, fast, and on a technical level a masterpiece. Not every project manages to achieve so much with so little of the dreaded 'bloat.'"
Wild adds, "I've become so hopelessly in love with Lua, I've incorporated it into nearly all my recent projects, and yet it fits in nicely every time." Wild is starting to use Lua as a standalone, rather than embedded, language. "It is still fitting the job perfectly. Thanks to Lua, I'm now looking at weeks, rather than months, in our development schedule."