[Openmcl-devel] Lisp User Interface LUI

Terje Norderhaug terje at in-progress.com
Thu Jan 8 15:48:13 PST 2009

On Jan 7, 2009, at 5:38 PM, Alexander Repenning wrote:
>>> Some fundamental ideas of LUI are:
>>> - separation of platform specific and independent code: write  
>>> platform independent code or create specific Cocoa based extensions
>>> - separation of procedural (Lisp) and declarative (XML syntax but  
>>> it is really Lisp: X-expressions http://www.cs.colorado.edu/ 
>>> ~ralex/papers/PDF/X-expressions.pdf) GUI information
>>> - layout managers: interfaces that stretch and don't need, but do  
>>> allow, hardcoded coordinates/sizes.
>> I favor an approach in which the user interface to a high degree  
>> automatically adapt to each platform. That is, the goal is NOT to  
>> create user interfaces that looks and works similar on the  
>> different platforms, but instead adheres to their different HUI  
>> conventions and usability practices. Case in point, I once hoped  
>> CLIM would be a good fit for adaptive user interfaces, but got  
>> disappointed.
> I do like the adapt idea. I have seen some TCL interfaces that are  
> just a pain for most Mac users. Bottom line is that Mac interfaces  
> should not use Lisp as rationale to make bad interfaces. To a large  
> degree Apple seems to be getting away with non windows looking  
> interfaces on windows (iTunes, Safari). If Apple gives us these  
> tools I think we should use them.

As developers of commercial LISP applications, we both know what most  
Mac users expect: Interfaces that adheres strictly to Apple's user  
interface guidelines. Tools to help LISP developers efficiently  
create and maintain user interfaces are of no use unless the result  
looks and feels like a true Mac application. That's what was missing  
in the CLIM version I intended to use for my development. The  
challenge is to get beyond having to specify the concrete  
presentation of the user interface while still ending up with a  
result close to or as good as if it was designed by hand for the  
specific platform. The good news is that the area of automated user  
interface generation has seen a flurry of activity and interest in  
recent years, which may save time and effort in putting a solution  

>> Some other XML-based user interface description formats:
>> * XUL - https://developer.mozilla.org/en/The_Joy_of_XUL
>> * XAML - http://en.wikipedia.org/wiki/ 
>> Extensible_Application_Markup_Language
>> * UIML - http://www.uiml.org/
>> * UIDL - http://www.usixml.org/
>> * XFORMS - http://www.w3.org/TR/xforms11/
> Our XML is inspired by some of these formats, e.g., XUL. Many of  
> these formats are assuming that they are rendering content into a  
> browser window with little or no control for VERTICAL layout  
> machinery because web pages only change rendering when resizing  
> width not height. This may seem a detail but most "traditional" non  
> browser windows must be able to also layout vertically. At any  
> rate, the idea is to use as much as possible from existing specs  
> but adding what is missing. Also important is the fluent  
> integration of Lisp and XML. We can just mix things.
> At any rate, it may be best to give you something to play with to  
> get a better sense of the concrete way of making guis with XMLisp.

I have been using similar techniques for my own application GUI  
development (XML/XHTML/XSLT/CSS software in MCL), so I have a  
reasonable good sense of the domain.

PS: I like the term 'X-expressions' to denote XML interchangeable  
with LISP S-expressions. We should all use that a lot around.

-- Terje Norderhaug

More information about the Openmcl-devel mailing list