Developing normal graphical applications

General discussion about LÖVE, Lua, game development, puns, and unicorns.
User avatar
T-Bone
Inner party member
Posts: 1492
Joined: Thu Jun 09, 2011 9:03 am

Developing normal graphical applications

Post by T-Bone »

LÖVE is awesome. For me, it's mostly due to two reasons:

1. Designed to be easy to use. You just download/install it and then you're good to go. It uses lua, which makes the actual development of a game a joy.
2. Easy distribution. While several improvements can be done here, it's pretty clear what you need to do to make stand-alone excecutables for Mac and Windows, as well as potential for deploying on Linux. While I'd love to see a .deb packager, it's no biggie.

This gets me thinking "shouldn't there be something similar for simple, normal, graphical applications?". I mean, there are several cross-platform libraries like GTK and wx. There should be something that meets the two criteria above.

I checked out wxLua, but could get it to compile. VCLua looked kind of promising but doesn't build for Mac. LuaGnome looks cool but seems very Linux focused, and it doesn't seem to be very updated at all. lqt looks cool but I have no idea how to distribute an app made with it.

Any suggestions?
User avatar
kikito
Inner party member
Posts: 3153
Joined: Sat Oct 03, 2009 5:22 pm
Location: Madrid, Spain
Contact:

Re: Developing normal graphical applications

Post by kikito »

I have said it somewhere else, but I'll repeat it here - I think making UIs is basically a Very Hard job. Making a couple buttons is relatively easy, but once you start with auto-adapting layouts for different screen/window sizes, keyboard focus, and the like, the difficulty ramps up. Multi-platform is yet another difficulty.

I think that's why no one has yet released a "portable, easy to use" windowing/GUI system. The problem is just very complex - it has lots of moving parts.

I have myself used WxWindows (over Python) and it was "not too complex", but definitively not easy. Yet it seemed to "adhere" well to the problem it was resolving (buttons, menus, etc, with different states and layouts depending on the size of a window).

One lib I have not seen in your list is Qt. I have not used it myself, but people seem to like it quite a lot. There are even a couple Lua bindings for it - the most "up to date" one I could find is https://github.com/mkottman/lqt . mkottman seems to know his stuff really well; I have seen him answering questions about Lua in StackOverflow quite often.
When I write def I mean function.
User avatar
nevon
Commander of the Circuloids
Posts: 938
Joined: Thu Feb 14, 2008 8:25 pm
Location: Stockholm, Sweden
Contact:

Re: Developing normal graphical applications

Post by nevon »

Qt in general is a good choice if Windows is one of your primary platforms, as I believe it uses native widgets. It doesn't look as nice in a Gnome environment, but out of all the toolkits I've tried, Qt is definitely the best at blending in in different environments.
coffee
Party member
Posts: 1206
Joined: Wed Nov 02, 2011 9:07 pm

Re: Developing normal graphical applications

Post by coffee »

Odd enough Lua serves very well to interfacing many games but isn't perfect when interfacing with more complex "graphical normal applications". Even Love have some half dozen UI libraries but not all finished or complete enough to "replace/interface" a complete OS GUI. I agree with kikito seems a very hard job and demanding.

I was sometime ago very fond of TCL/TK GUI, I know that there is Lua bindings (http://www.tset.de/ltcltk/) but I never tried it. You can also give a shot on this.
Last edited by coffee on Wed Feb 22, 2012 1:02 pm, edited 1 time in total.
User avatar
ston
Prole
Posts: 21
Joined: Fri Jan 27, 2012 9:53 am
Location: Holt, a small village in Wiltshire. We have cider!

Re: Developing normal graphical applications

Post by ston »

As well as Qt, WTL (Windows Template library) is another possibility to consider. It's a CPL-licensed library written in C++ which extends the Active Template Library and provides a set of classes for UI construction, GDI objects etc. Of the libraries I've tried, I find it the simplest to work with (not withstanding that all UI libraries are by nature fairly complex). I think that there are C++ binding libraries available for Lua, although I've not tried them myself.

WTL can be found at the following page on source forge: http://wtl.sourceforge.net/
User avatar
T-Bone
Inner party member
Posts: 1492
Joined: Thu Jun 09, 2011 9:03 am

Re: Developing normal graphical applications

Post by T-Bone »

Of all the things you mention, I'd say lqt seems the most promising. I tried to compile ltcltk as well without success, will try lqt too.

At this point, Java/Swing almost seems like a possible solution. I had to use that during a class some years ago. I didn't like it.

It really seems quite absurd to me that it's harder to make something like a simple calculator than a game. But then again, games are kind of more stand-alone. I guess buiding for a single OS will reduce the complexity quite a lot. I could just use quickly/PyGTK.

Hey, lqt actually works! Cool! Now, all I need is a way to distribute an app once it's finished... At the very least for Ubuntu.
User avatar
miko
Party member
Posts: 410
Joined: Fri Nov 26, 2010 2:25 pm
Location: PL

Re: Developing normal graphical applications

Post by miko »

T-Bone wrote:LÖVE is awesome. For me, it's mostly due to two reasons:

1. Designed to be easy to use. You just download/install it and then you're good to go. It uses lua, which makes the actual development of a game a joy.
2. Easy distribution. While several improvements can be done here, it's pretty clear what you need to do to make stand-alone excecutables for Mac and Windows, as well as potential for deploying on Linux. While I'd love to see a .deb packager, it's no biggie.

This gets me thinking "shouldn't there be something similar for simple, normal, graphical applications?". I mean, there are several cross-platform libraries like GTK and wx. There should be something that meets the two criteria above.

I checked out wxLua, but could get it to compile. VCLua looked kind of promising but doesn't build for Mac. LuaGnome looks cool but seems very Linux focused, and it doesn't seem to be very updated at all. lqt looks cool but I have no idea how to distribute an app made with it.

Any suggestions?
The problem is that love2d requires only SDL and some other libraries available as small dll files, which you can zip together and distribute as a complete system. For Qt/WX/Gnome you need either your users to install it (the exact version if you want to avoid problems), or distribute the whole graphics libraries, which would be huge. So the beauty of love2d is that it needs only a thin layer (SDL/OpenGL) to interface with the host system, so that it is easy to integrate and to port to other OS (i.e. android).
My lovely code lives at GitHub: http://github.com/miko/Love2d-samples
User avatar
T-Bone
Inner party member
Posts: 1492
Joined: Thu Jun 09, 2011 9:03 am

Re: Developing normal graphical applications

Post by T-Bone »

But since every OS have support for basically the same things, there should be a small library that, based on what OS it runs on, finds an existing GUI library and applies the desired interface on top of that. I wouldn't mind if this solution didn't allow me to do everything, just some simple text boxes, buttons and menus. You know, standard stuff. It kind of blows my mind that nobody has managed to make this simpler.
User avatar
Ellohir
Party member
Posts: 235
Joined: Sat Oct 22, 2011 11:12 pm

Re: Developing normal graphical applications

Post by Ellohir »

I use Java + Swing with Eclipse + Jigloo plugin. It makes cross-platform gui aplications with not much more than clicking and draging. If you know Java take a look at this tutorial: http://www.cloudgarden1.com/swing_tutorial/index.html
User avatar
T-Bone
Inner party member
Posts: 1492
Joined: Thu Jun 09, 2011 9:03 am

Re: Developing normal graphical applications

Post by T-Bone »

Ellohir wrote:I use Java + Swing with Eclipse + Jigloo plugin. It makes cross-platform gui aplications with not much more than clicking and draging. If you know Java take a look at this tutorial: http://www.cloudgarden1.com/swing_tutorial/index.html
Would it be hard to throw in some luaj into that? :neko:
Post Reply

Who is online

Users browsing this forum: Bing [Bot] and 95 guests