Why Lua

Historical perspective

The Iguana Translator project got its start in 2010 when I was working on an abstraction library to expose C code generically to many different scripting languages.

Originally my intent was just to make a better programming environment for the next mapper. Which would be natively hosted within Iguana.

I spent over four weeks wrestling with the Python APIs and was about to call it a day. I decided it would be enough to just support Python for now – since in theory my interface could be extended to support other languages. The process had been so painful I could not imagine repeating it just to support other languages. It is better to support one language well than multiple languages badly.

Then I begrudgingly agreed I should try supporting Lua with my library just to test my abstraction.

In two days I achieved what had taken me four weeks with the python APIs!

I ditched my abstraction and stopped looking at other APIs after that.

I was sold.

Lua was clearly an order of magnitude better in the quality of its design. Lua with its total focus on minimalist design has been a source of inspiration throughout the development of the Translator project.