[Openmcl-devel] impressions of openmcl, the cocoa bridge, and easygui

Andrew Shalit alms at clozure.com
Tue Jul 1 15:10:58 UTC 2008

Rich --

thanks for sharing your results on this.  It's great to hear that you  
were able to get to this point in a week.  Your feedback on the  
relative merits of the IDE versus the terminal is well-taken.  We have  
limited resources to work on this in-house at the moment, so  
contributions from the community of users are all-the-more appreciated.


On Jun 28, 2008, at 1:48 AM, Rich Sutton wrote:

> hello all,
> i have recently been exploring openmcl and would like to briefly  
> pass on my impressions and some suggestions for what they are  
> worth.  first, about myself.  i am an artificial intelligence  
> researcher and previous long-time user of mcl, and i have turned to  
> openmcl (rather than, say, sbcl) primarily because of the hope of  
> regaining the ease of access to gui features that i remember from  
> mcl.  thus it is these features that i concentrated on in examining  
> openmcl.  to try things out i ported some existing graphics code  
> from mcl to openmcl, converting the quicktime calls to the  
> appropriate calls to the cocoa bridge, and working from the example  
> of easygui.  specifically, i revived some code for quickly throwing  
> up simple line graphs.  here is a simple example with the screen  
> shot showing that it works in openmcl:
> 		<quickgraph screenshot.pdf>
> resizing and minimizing work, and there are a lot of other quick  
> graphing things you can do (see http://rlai.cs.ualberta.ca/RLAI/graphlispmanual.html) 
> .  the code is not ready to be a contrib or anything - it is just a  
> quick port to learn a little about openmcl and the bridge, but it  
> may be a useful example in some respects so i will include some  
> pointers to the code at the end of this note.
> now to my impressions.  overall, they are positive.  after my week  
> of hacking, learning about cocoa, the bridge, openmcl, everything,  
> it seems to me that openmcl can indeed be what i am looking for -- a  
> quality general-purpose common-lisp with high-quality, high- 
> performance interactive graphics.  it is also pretty clear to me  
> some of what more is needed (in the gui/graphics area), and though  
> it will take some work, it's not a terribly big amount of work, and  
> it can be done incrementally.  the cocoa-bridge strategy is a good  
> one i think.  cocoa/quartz is a modern and very well thought-out gui  
> package, and we should be leveraging off of that design rather than  
> trying to make it all up ourselves.  but the way things stand right  
> now there are huge hurdles to getting started.
> i spent at least a week of learning cocoa, the bridge, easygui,  
> everything, with many crashes and beachballs before i got any  
> graphics gratification.  one simple thing i learned and i wish  
> someone had told me was to not use the ide directly, but to go  
> through emacs/slime.  that way at least you don't lose your edits  
> when the beach ball happens.  my experience is that the ide is  
> promising but not quite ready for prime time.  i ran into crashes  
> and bugs partly for ide things, and partly because i was doing  
> inherently dangerous things like foreign function calls and working  
> with foreign data structures.  the latter are the main real  
> problem;  we need to provide an additional layer to insulate the  
> lisp user from the foreign stuff (if she so desires), as in easygui.
> i would like to further development of the easygui design, as time  
> allows.  i note that arthur has just made some new contributions in  
> this direction.
> rich sutton
> ----
> to run the quick-graphing code:
> start up the ide, or do (require "COCOA") and (require "easygui")
> load the attached files, in order:
>     (load "mclgui")
>     (load "cclg")
>     (load "graph-without-events")
> then, e.g.,
> (graph (list (loop for x below 8 by 0.1 collect (sin x))
>                   (loop for x below 8 by 0.1 collect (cos x))))
> <mclgui.lisp>   (this is the only file with code potentially worth  
> looking at right now)
> <cclg.lisp>
> <graph-without-events.lisp>
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel

More information about the Openmcl-devel mailing list