Can Lua be used for application development?
lua
Solution
Yes it can. And it's easy to give it a try on a small project.
IMHO, it is ideally suited to building small applications with GUIs when coupled with a decent toolkit. Since you've mentioned Visual Basic, I'll assume you are concentrating on Windows for now. In that case, check out the Lua for Windows package.
Lua for Windows integrates the Lua language core with a large number of useful extension modules, and packages it up with a proper Windows installer. It includes a version of the SCiTE editor that has syntax coloring for Lua and an integrated debugger. It also includes bindings for both the wxWidgets and IUP GUI toolkits.
I have used Lua with IUP to build several utilities. Together, it is possible to build fairly elaborate applications without resorting to compiled code.
One area where Lua fails as the sole application language out of the box is packaging. It still requires a fair amount of experience with Windows application packaging to produce an installer that provides everything your end user needs in a way that makes your use of Lua as the core language irrelevant to them.
However, as many commercial projects have demonstrated, this is an issue that can be dealt with. I usually end up compiling a small EXE file that can have its own default icon and version resource that loads and initializes the Lua core and defers to Lua scripts for the rest of the application. That combined with a DLL or two that implements any functionality that profiling has shown should be done in a compiled environment and you're good to go.
Fortunately, even if you end up delivering your own copy of Lua you will find that the whole install is fairly small. Also, the core language pays no attention itself to Windows features such as the Registry so it is easy to have several applications that all happen to use Lua, even if they are different versions.
Lua has been around for over 10 years, and has an active user community. Also, it isn't a difficult language to pick up and learn, so IMHO there isn't really any issue with finding people that can contribute to a project team.
Problem
With intermediate knowledge of VB6, recently people have been suggesting to "upgrade" to a new language. I'm thinking about Lua - it's easy, simple and speedy. But there doesn't seem to be any infomation about creating applications similar to K3b, uTorrent, CCleaner and mIRC.