How do lispers do their GUI programming anyway? (was Re: Curses alternative for Lisp?)



On Mon, 31 Dec 2007 16:20:33 +0100, Andreas Davour <anteRUN@xxxxxxxxxxxxxxxxxxxx> wrote:
As it is low-level stuff I guess FFI is the way to go, but I'm beginning
to wonder how lispers do their (G)UI programming anyway.

I've been wondering about this for a while. For most environments there seem to be canonical triples of platform, language, and library that people use (for instance Linux-C-GTK, Linux-Python-PyGTK, Windows-C++-MSVC, Windows-C#-.NET, etc).

But what do lispers use who work on real applications that are not implemented as web-services? Do they just fall back to the command line?

The reason I'm asking is that I am working on a project which relies heavily on a dynamic, interactive GUI. I am aware that I will need non-standard functionality, and I am willing to put in some effort to extend the toolkit to meet my needs. However, after looking at the various options I find it very hard to judge which one is a good choice to build on. I should add that I am quite new to the lisp world, so please correct me if I am missing something obvious. To an outsider the GUI toolkit landscape for lisp is a little ... err ... confusing.

My wish list goes like this:

- available on linux
- lispy interface (a dynamic application should be met by a dynamic UI toolkit), preferrably Cells Inside
- open source (I want to see how it works and submit patches if necessary)
- native looks, preferrably GTK or QT, because I'd like my users to enjoy a modern standard look and feel (in particular I do not enjoy the hard edged appearance of tk on linux (I know that one can use skins for tk, but I don't want my users to have to deal with this)

I found the following options:

(1) McCLIM

From the facts, McCLIM appears the way to go -- except for its looks and its speed (it feels quite slow on my 1.4 GHz Pentium M laptop, especially with the gtkairo backend)

(2) The libraries of their commercial environment (CAPI etc.)

I'd prefer to stay with free libraries and not be dependent on a specific vendor

(3) One of the various FFIs (lambda-gtk etc.)

They pave the way for native UIs, but the code becomes quite Cish. I'd end up writing a thick abstraction layer to prevent my application from being contaminated with FFI calls.

(4) A lispy GUI wrapper (cells-gtk, celtk, cello, LTK)

That'd be the perfect solution (lisp on the inside -- native UI on the outside), but I have the impression that the community around celtk, cells-gtk, and cello is rather small (judging by the traffic on the mailing lists). LTK and celtk are based on tk and look unpleasant on linux. Cello is very much work in progress. cells-gtk cvs has not been updated since June 2006.

So far I have been using cells-gtk (and put together two patches), but I wonder whether I should rather invest time and effort into a different project. I believe there must be other people out there who need a lisp-like, dynamic, interactive, yet modern/native-looking GUI.

So what do they do? What am I missing?

Happy new year everybody, and I am looking forward to your answers.

Peter




/Andreas




--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
.



Relevant Pages

  • Re: cells-gtk: run application in its own thread
    ... The objective is to launch a GUI in the background, ... cells-gtk is a perfect match for my needs ... I wrote a patch for the current CVS version of cells-gtk. ... returns the instance right to the repl. ...
    (comp.lang.lisp)
  • Re: Cells for Web-Programming?
    ... lisp killer-app for Web-Programming could copy the "designing persistent web objects" aproach from Seaside to make web-programming more comfortable. ... Maybe this could be done using Cells as a framework... ... Cells-gtk is a good example. ... In addition to the expected powerful linking of GUI elements, Cells made trivial the problem of keeping the foreign C GUI in step with the CLOS model driving everything. ...
    (comp.lang.lisp)
  • Re: How do lispers do their GUI programming anyway? (was Re: Curses alternative for Lisp?)
    ... I suspect that lisp access to those libraries makes your lisp code look like a java/swing stuff. ... I am afraid I was a littel fuzzy about that in my "wish list": By "a lispy interface" I meant the toolkit should leave my lisp application as it is, just somehow magically attach a GUI to it. ... My personal conclusion is that the fun is with cells-gtk or celtk, since cells appears to be the lispiest way so far to do GUI stuff. ...
    (comp.lang.lisp)
  • Re: cells-gtk: run application in its own thread
    ... however no window is ever being displayed. ... The objective is to launch a GUI in the background, ... cells-gtk is a perfect match for my needs here). ... threading in GTK+ itself, so it might be terribly wrong. ...
    (comp.lang.lisp)
  • (Freeware) VB-like Environment for WinXP Pro?
    ... I've done programming in various environments over the years (some ... its GUI to see if I want to take the idea further. ... Any thoughts on which environments I should consider will be greatly ... clint at robotic dot com ...
    (comp.programming)