The A-Z of Programming Languages: Lua

Professor Roberto Ierusalimschy offers an in-depth examination of what he believes to be the most successful programming language not born in a developed country.

Do you think that the MIT license has allowed the language to grow in popularity?

Sure. In the first year that we released Lua outside PUC, we adopted a more restricted license. Basically it was free for academic use but not for commercial use. It was only after we changed for a more liberal license that Lua started to spread. I guess that even a GPL-like license would hurt its spread. Most game companies are very secretive about their technologies. Sometimes, it is hard to know who is actually using Lua!

Do you think Lua has any significant flaws?

It is difficult for us to point to any clear flaw, otherwise we would have corrected it. But, like with any other language, the design of Lua involves many compromises. For instance, several people complain that its syntax is too verbose, but that syntax is friendlier to non programmers (such as gamers). So, for some people the syntax is flawed, for others it is not. Similarly, for some programmers even the dynamic typing is a flaw.

How does or will 5.1.3 differ from previous versions of Lua?

In Lua, 5.1.x are only bug-fix releases. So, 5.1.3 differs from 5.1 only in fixing the few bugs found in 5.1.2. The next "real" release, 5.2, is still somewhat far on the horizon. Lua evolved somewhat quickly until version 5 (some users would say too quickly), so now we would like to allow some time for its culture to stabilize. After all, each new version automatically outdates current books, extra documentation, and the like. So, we are currently not planning big changes for the language in the near future.

Has corporate sponsorship of the language influenced the way Lua has developed in any way?

The corporate sponsorship program is still very recent; it started in June 2008. But it has no influence whatsoever in the development of Lua. The program offers only visibility to the sponsor. Sponsors do not have any exclusive channel to express their wishes about the language, and we do not feel obliged in any way to accept their suggestions.

What impact do you feel the growth of open source has had on Lua?

A huge impact! The development of Lua does not follow the typical development structure of open source projects however; apart from this Lua is a typical product of the open source era. We have a strong community and we get lots of feedback from this community. Lua would never achieve its popularity and its quality if it was not open source.

Why do you think Lua is a popular choice for providing a scripting interface within larger applications?

Except for Tcl, Lua is the only language designed since day one for that specific purpose. As I said before, any language design generally has lots of compromises. Lua's compromises are directed at being good for scripting, that is, for controlling applications. Most other languages have different compromises, such as having more complete libraries, better integration with the operating system, or a more rigid object system.

One place where Lua seems to be used widely is in Sysadmin tools such as Snort. What impact do you think Sysadmins have on a language?

On some languages Sysadmins may have a big impact. Perl, for instance, got very strongly influence from that area. But Lua has had very little impact from Sysadmins. That's because their usage and their goals are quite different.

For instance, consider an application like Snort or Wireshark. The goal of Perl is to allow you to implement the entire application in Perl. For that, the language must provide all system primitives that those tools may ever need. Lua, on the other hand, emphasizes multi-language development. The primitives specific for the application are provided by the application itself, not by Lua.

Also, Sysadmin support frequently conflicts with portability - a main goal in Lua. Again, a Sysadmin tool should provide access to all facilities of the system, no matter how idiosyncratic they are. Lua has some libraries to allow such access, but they are not built-in. And even those libraries try to present system facilities in a more standard, less idiosyncratic way.

Join the newsletter!

Error: Please check your email address.

Tags a-z of programming languageslua

More about Adobe SystemsMicrosoftMITRIO TINTOWikipedia

Show Comments