lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


I have an opportunity to introduce Lua in my workplace. My goal is to replace an existing scripting language. The existing language is proprietary, was developed in-house, has limited functionality, is hard to maintain and extend, and is only maintained by its inventor.

I have already shown that Lua can be used in place of the existing language, but my boss wants to know why we should bother. After all, he says, the existing language is working (for now) and we have several developers who are trained to use it. These developers would have to learn Lua.

Your boss may be right in the short term. There is always a cost of switching -- rewriting code and retraining people. Also the old language might have some features better suited to your application than Lua (perhaps reference counting and http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization). But companies that only focus on short term goals eventually get outrun by companies that focus on long term goals.

We switched from an in-house language to Lua because:

* Lua was significantly faster
* Lua had more features (upvalues, continuations)
* Lua was more introspective and hackable (tables, metatables)
* Lua was more well-designed and internally consistent
  (few languages are as well-designed as Lua)
* Lua had an active community (you can buy books about Lua, read about
  it on web pages, ask about it on mailing lists and hire people that
  already know it)
* The existing language had a somewhat messy implementation --- even
  small changes and bug fixes took a lot of time to make

The switch was facilitated by the fact that:

* Lua is very easy to integrate into an existing implementation
* Lua is a very small language with few gotchas and can be learned
  quickly

In retrospect I'm almost surprised by how quick and painless the switch was. Within two weeks everyone was writing Lua without much trouble. And in a month all the old code was converted (there was quite a lot) and we were fully switched over to Lua.

I am very happy that we made the switch.

// Niklas