As those of you who met us at EclipseCon last November already know, we are preparing Lua programming capability for our Linux based gateways. It will come along with the right tooling to ease the development – we actually contribute to the open source project Koneki who provides a nice Lua IDE (Eclipse based): eclipse.org/koneki/
We hope that it will allow non expert embedded developers to develop m2m embedded apps more easily (using low level embedded code provided by embedded software experts, for instance programmed in C and encapsulated in Lua).
The linked article nicely summarizes the virtues of Lua.
In OpenAT environment, I first define and implement low level C bindings, all the high level logic is in Lua. And here comes one advantage, not mentioned in the article.
As dynamic programming language, Lua with the help of its shell, enables me to quickly test or change some module, even over the air and in the real time. So the “modify - test -error - repeat” cycle can be real fast. Download new code (only changed module, or even only changed subroutine) from FTP / HTTP server, compile it on the fly, and the tests can start in seconds. Everything is executing from RAM, DOTA is performed only once, when all tests pass.