Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Common Lisp Graphical User Interface Development

I have developed GUIs before in Matlab using the GUI toolbox, and right now I am using common lisp for my project. I need to develop a GUI which may probably have a push button, radio button, a figure window etc.

I just want to know whether it is feasible to do this in Common Lisp and whether there are toolboxes, libraries that are fairly easy to use and learn. I don't have a strong programming background so I will try to avoid advanced stuff, if possible.
Thank you very much in advance.

like image 872
jkt Avatar asked Feb 15 '12 19:02

jkt


People also ask

Is Lisp cross platform?

It is a complete and cross-platform toolkit (Windows, Gtk+, Cocoa), very praised by its users. LispWorks also has iOS and Android runtimes.

What is GUI in computer?

A graphics-based operating system interface that uses icons, menus and a mouse (to click on the icon or pull down the menus) to manage interaction with the system. Developed by Xerox, the GUI was popularized by the Apple Macintosh in the 1980s.


2 Answers

I second the suggestion to use LTK.

However, if your requirements grow beyond what LTK provides (and you can afford spending some time learning basic JavaScript+HTML+CSS - that probably means not avoiding the "advanced stuff" you mention in the question), you might find it useful to make a web interface for your application.

Because I could not find a free decent alternative to writing portable GUIs in CL, I decided to write web apps instead of desktop apps (and use them as desktop apps - that is, start the server on the computer where I mean to use the application, open the page in a browser and treat it as a desktop app; if there's something I can't do in JavaScript, such as access the network etc., I do it on the server). This has the advantage of great portability (right now this means I develop on Linux using SBCL and deploy on Windows using Clozure CL, and it works great so far).

I'm currently quite happy with the progress on such an application, using Hunchentoot (to host the content) + Parenscript (to CLize JavaScript) + JQuery (to tame browser incompatibilities) + JQueryUI (to tame writing UI in browsers). Don't worry about JS performance, it's pretty spectacular these days (well, if you can afford to ignore IEs earlier than IE9 and use a recent browser). A few weeks ago I wrote a simple 'hello world'-type application using all of these (except JQueryUI, but that's easy to add); it might be useful as a minimal example of what I mean.

like image 72
Miron Brezuleanu Avatar answered Sep 19 '22 21:09

Miron Brezuleanu


Take a look at LTK, which is a wrapper for interfacing with the Tk GUI toolkit. It's pretty easy to get started with it and it should suffice for simple application.

like image 38
Vsevolod Dyomkin Avatar answered Sep 18 '22 21:09

Vsevolod Dyomkin