[Openmcl-devel] bad impressions to Lisp newbies

Alexander Repenning ralex at cs.colorado.edu
Thu Apr 23 23:53:51 PDT 2009

I wanted to show to a non Lisp programmer why Lisp is good in general  
and Clozure CL in particular. Things went, lets just say, rather  
terrible. Here is rough "transcript" of the story (A: for Alex, N: for  
Lisp newbie)

Chapter 1:  Getting CCL to work

The need to install via SNV did not go over well.

N: Why is there non disk image?

A: Oh well, that is just how things are, Now we need to built the IDE.

N: built the IDE ? Huhh, why?

A: Oh well, that is just how things are

Welcome to Clozure Common Lisp Version 1.3-r11936 (DarwinX8664)!
? (require :cocoa-application)
'make install' of AltConsole.app failed:

N: Ouch.. what does that mean.

A: Not sure, this could be bad. This is about AltConsole.app

N: what?

A: never mind

Now we try the same thing for the 32bit version. Same problem. Worse,  
both the application icons carry the scary looking architecture not  
supported badge. That is usually the sign that this will not work at  
all. Strange, the computer is a brand new MacBook Core 2 Duo running  
10.5.6. Hmmmmm....   Trying to launch the apps anyway. Listerner comes  
up. We must be OK then.

Chapter 2: from bad to worse. Running examples is Lisp is easy... OR  
is it?

The beauty of Lisp that you can always find some easy to run examples.  
Load the file, eval the sample code, done...

I go to the example folder and pick them randomly, really.

- Lets try some exciting OpenGL 3D code: opengl-ffi.lisp  seems to  
load, beach ball, crash, uh oh.

- something simpler then: finger.lisp this should be simple. It loads,  
yeah! Now we eval the "for testing try" part

(finger "idsoftware.com")

 > Error: Connection refused (error #61) during socket creation or  
nameserver operation in connect
 > While executing: SOCKET-ERROR, in process Listener(6).
 > Type :POP to abort, :R for a list of available restarts.
 > Type :? for other options.
1 >

oh well

- how about WebKit.lisp, loads but then when trying to make a window:

 > Error: Objective-C runtime exception:
 >        objc_object* -[WebView initWithFrame:frameName:groupName:] 
(WebView*, objc_selector*, NSRect, NSString*, NSString*) was called  
from a secondary thread
 > While executing: CHECK-NS-EXCEPTION, in process Listener(6).

hard to believe but it gets worse:

- addressbook.lisp does not load at all

 > Error: Too few arguments in call to #<Compiled-function FAKE- 
 >        1 argument provided, at least 3 required.
 > While executing: FAKE-CFBUNDLE-PATH, in process Listener(6).

- mswin.lisp tries to load a .dll Ohhh this is a window program. Why  
is this in the darwin distribution?

We give up.


Draw you own conclusions but this is a true story and it does not have  
a happy ending. Newbie walked away. I guess one may claim that for us  
old Lisp hackers this would not be much of  a problem. Hey, we do not  
really need these examples, we can find a way to build, etc. I am sure  
there are good explanations why the things happened that I have  
described above. Nonetheless, it is hard to image how one could have  
left a worse impression on a new potential Lisp user. I mean, NOTHING,  
not a single example that we tried worked.

Do not understand me wrong. I am not bashing CCL. On the contrary. I  
really do appreciate the work that goes into it. I would like for CCL  
to succeed but this is frustrating. Here are some more constructive  

- sources and svn access are great but please also do give us .img  
files of stable versions
- example files are appreciated but if they do not work for whatever  
reason it may be better to move them into some kind of untested  
examples folder

I still think that Lisp, if packaged up the right way (e.g., open  
source, cross platform: OpenGL + Cocoa) Lisp/CCL could become a great  
teaching tool which could actually attract, imagine that, NEW Lisp  
programmers in graphics and HCI courses. The thing most disturbing to  
me is not just how far away we are from that  point right now but that  
most people do not seem to care.


Prof. Alexander Repenning

University of Colorado
Computer Science Department
Boulder, CO 80309-430

vCard: http://www.cs.colorado.edu/~ralex/AlexanderRepenning.vcf

More information about the Openmcl-devel mailing list