The main benefits offered by a programming language are not only what it allows us to do, but also what it prevents us from doing. This conflict makes it hard for a single language to fulfil all needs of a large software project.
Scripting emphasizes the construction of software using two different languages; a system? language for the hard parts and a scripting language for the soft parts. This mix allows the development of programs that combine the qualities of both languages, such as performance and flexibility. Scripting is hardly a new idea; nevertheless, few languages have been designed with real scripting in mind.
Unlike most other dynamic languages, Lua is a language that has been designed from inception to be used as a scripting language. It is the leading scripting language in games. It is also widely used in embedded systems such as set-top boxes, routers, telecom equipment, and mobiles.
In this talk we will cover the most distinguishing features of Lua, emphasizing its trade-offs as a scripting language, the prominence of simplicity and small size in its design, and its use of a few simple but powerful concepts as unifying mechanisms.
Roberto Ierusalimschy is an Associate Professor of Computer Science at PUC-Rio (the Pontifical Catholic University of Rio de Janeiro), where he works with programming-language design and implementation. He is the leading architect of the Lua programming language and the author of the book “Programming in Lua”.