Why is Lua such popular?

Sunday, September 16th, 2007

Background

A steadily increasing community exists around the programming language Lua, especially in the games related industry. In case you don’t know it: for instance, games like Far Cry or S.T.A.L.K.E.R. use Lua as an embedded scripting language.

academic thesis

And there are Unix applications like RPM 5 and Monotone which also embed Lua as their programming language for scripting extensions. In RPM 5 one can code .spec macros in Lua via %{lua:...} and in Monotone one can hook into the run-time processing of the application by declaring Lua callback functions in ~/.monotone/monotonerc. Having such an embedded scripting language in an application is great for hackers like me as it allows to adjust and extend applications easily and flexibly.

writing college essays

[more…]

10 days, 6 languages, …

Sunday, September 16th, 2007

The last two weeks I’ve first coded in my lovely C and the neat Java programming languages for developing the Java JNI-based bindings to my OSSP uuid C library. Then I worked on key management functionality for OSSP ase (a web application) in my preferred web programming languages Perl (backend) and JavaScript (frontend). Finally, the last days I was forced to switch over to programming in C++ (main application) and Lua (run-time hooks and extensions) while hacking on a NETSYNC-based access control functionality for the distributed version control system Monotone.

So, I ended up coding in 6 different programming languages in the short time range of just about 10 man-days. Such speedy switching of the software artist’s tools is not something I like very much, but it at least keeps one trained this way ;-) Now, at the weekend, I’m reflecting this programming expedition and recognize a few experiences which are IMHO worth noting in my BLOG.

thesis creator

Let me share my train of thoughts in the following three BLOG articles about 1. Java Native Interface (JNI), 2. Lua and embedding a scripting language into applications, and 3. distributed version control versus central access control.