views:

772

answers:

7

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.

+3  A: 

LUA's a great language - we use it frequently for scripting in games development because it's light, easy to learn and has good C bindings.
However, if your moving from VB6 then I'd recommend learning VB.NET or preferably C#. You'll find a lot more development resources and library support

zebrabox
VB.NET is essentially dead. And even if not dead, it never was the #1 child in the .NET world. His choice would be C# (and no scripting, but nice IDE) or maybe C# for the user interface but Lua for scripting its dynamic behaviour. I'd go for Qt + Lua.
akauppi
@akauppi. I'd agree. I personally hate VB.NET, just thought it might be a good transition as he knows VB6 already. For scripting, I'd personally use Python. It has heaps of GUI options like wxPython etc
zebrabox
Lua is not LUA. Please see http://www.lua.org/about.html#name
Alexander Gladysh
A: 

NO.

The reason, is continueability (misspell?). You will find very few developers for such a language, and thus you will get into problems when a team continues the job after you, or you are locking your user to you.

Even if you do find developers, IMHO they will be much more expensive.

IMHO, choosing a "more popular" language/technology is a benefit: more-cheaper developers.

elcuco
I think that any good developer can learn Lua within a couple of weeks.I know a case where developers hired for C/Unix heavy lifting were told ,,By the way, we also have a scripting language embedded in this product'' and had no problem getting up to speed.
Tadeusz A. Kadłubowski
I second tkadlubo on this.
akauppi
The sad thing is that I also agree with tkadlubo, real programmers will have no problem learning a good language in a few weeks. But mastering it to create a good project? it takes several months to learn a language.
elcuco
+2  A: 

Lua can be used for application development, but you'll have to do a certain amount of infrastructure work: binding to toolkits like wx or Qt for graphics, for example. Much as I love dynamic languages, I wouldn't recommend it in your case.

If you're coming from VB6 I'd recommend C#, VB.NET, or Java, in that order. Each is much more powerful than VB6, but should be familiar enough for you to become productive quickly.

David Seiler
I think there was a Qt binding mentioned somewhere, lately. I'd have a look at that. http://torch5.sourceforge.net/manual/qt/index.html
akauppi
+4  A: 

Lua is quite "light-weight", which has advantages and disadvantages -- if you're building a whole app, you'll be doing a large amount of foundation-laying yourself, rather than focusing on application-level development. I would suggest a richer dynamic language such as Python (my personal favorite) or Ruby (especially popular for web apps, but not limited to those) -- this way you'll be able to find a lot of tools and infrastructure, rich standard libraries, third-party extensions, usable frameworks for various kinds of apps, etc, etc already built for you.

Alex Martelli
+2  A: 

Lua is a language that's easy to learn. But learn C# or Java and embed Lua in as a scripting language for your application, if you like.

Or just learn Python.

Nosredna
+12  A: 

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.

RBerteig
+2  A: 

You will find a list here of various projects using Lua, one of the most relevant is probably Adobe Photoshop Lightroom, of which 40% is written in Lua: Lua Uses

Drealmer