Interest in the Lua programming language is growing. One reason for this is its use in game programming. This paper presents another reason, describing how Lua can help C/C++ developers become more productive. The success developers have had incorporating Lua, along with its ease of use and efficiency, should encourage many readers to try Lua.
Hirschi founded the software development firm Reflexis. Not having the budget that larger firms have for advertising and promotion, Reflexis wanted to be quicker on its feet, with more rapid application development. Those at Reflexis found that Lua, a dynamically typed scripting language designed for extending applications, was an excellent fit to enhance existing C/C++ applications.
The paper presents Reflexis’ experiences in a mostly nontechnical way, showing only two code fragments: a binding that exposes functions to get or set the color of text output to the Lua environment, and a Lua snippet using SQLite binding. A binding is a layer of glue code that sits between Lua and other code. A binding that exposes a C/C++ library allows it to be used in Lua scripts without needing to compile and link C programs. Lua was also embedded in a host program and several interesting uses, including the move of some product behavior to the Lua side, are described.
Next, Hirschi describes the development of Reflexis’ first new project that included Lua: a client-server-based information management system. Lua was used for a lightweight, dynamic front end. Lua is very small, and therefore added little to the size of the code. Lua is fast, so complex graphical user interfaces can be rendered even on older hardware. Deployment was also easy, only requiring that tiny single files be saved. Lua was found to be just as useful for developing Web applications.)
From reading this paper, it is easy to see why there is an increased interest in Lua. The paper includes suggestions for starting with Lua, as well as lists of a few projects that add tools. Hirschi makes a great case for his conclusion: “Life with Lua is good.”