[Openmcl-devel] prompt-for-file (embarrassing question)

Rainer Joswig joswig at lisp.de
Thu Mar 30 09:12:56 PDT 2017

Worth some comments.

> Am 30.03.2017 um 13:10 schrieb Dimitri Simos <dim at lissys.demon.co.uk>:
> Hmm.
> Must be my first Lisp post in a decade or two. Oh well, here goes:
> I am 60 and all my life’s work and all my earnings have come from an Aeronautical thing called Piano.
> I wrote Piano in Coral CCL in the late 80s / early 90s.
> I had a PhD in Aeronautics, no qualifications in programming, and I taught myself CCL/MCL.
> It was the most satisfying intellectual experience I ever had.
> I learned MCL because it let me do every simple thing that I needed to. Write up my aero equations, make a few simple windows with buttons and menus and dialogs, build up my own crude line-drawing graphics.

MCL had a certain simplicity and elegance. Especially the original version with Object Lisp (yeah, I'm also that old) ;-)

> Then Lispers seemed to give up on non-programmers that might dare like Lisp.

It's especially hard making things simple in a good way, making it good looking and robust for non-computer-science people.
Well written manual, good example code, lots of source code for the IDE and a community sharing knowledge was a part of the recipe for success. That's hard work. Apple as a user/developer and later as a vendor was also of some help.

Later generations did not have that much interest in elegant desktop applications and reaching average users. They were spoiled by web interfaces and administration of their home Linux system (I do that too). 

> << insert a couple of decades of Brexit-level strategic suicides and own goals in the world of computers and software >>
> Piano nearly died when MCL died. It was saved by Edi and Gail who helped me port it to LispWorks.
> LW is phenomenal. It is an immensely powerful tour de force in Lisp, and it allowed Piano to thrive again. Thanks guys. You are pure magic.
> But there is no chance of handling GUI stuff on my own any longer.

One can learn it, but I agree that it is quite a bit more complex.

Here is an older CAPI cookbook, which targets people like you/me - coming from MCL: http://capi.plasticki.com <http://capi.plasticki.com/>

> So I could never re-create Piano today alone, even if I was in my 30s again.
> If a non-programmer starts on LW today, he has no obvious way around an impenetrable barrier of pictographic or cuneiform editors debuggers steppers tracers browsers inspectors object orientated stuff threading stuff and error handling stuff. He is DOA.

There is a hurdle, but I still think it is the best option one currently has for portable GUI programming in Common Lisp.

> If a non-programmer starts on CCL today, he doesn’t even have a Lisp. Not unless he’s willing to build it himself through a litany of deeply specialist procedures. He can kind of download something from Apple, but gets no ready-to-go GUI without the same litany. He’s DOA.

There would be two main ways to program a GUI-heavy application in CCL: use the CCL supplied toolkit, possibly with extensions. Or use the Apple Interface Builder for GUI design and start from there. Both is possible. For both there are examples and tutorials. But to make it into a 'product', like MCL was a product, would be still a bit effort and without sponsors and user one does not magically get there.

> Is it genuinely impossible to have a Lisp that starts with a double-click and offers an elementary set of GUI elements (crude ones, but expandable after getting some expertise), just good enough to get a non-programmer started without intimidating him to death with 100 acronyms and libraries that he has to google and download and master and load before he gets started?

CCL is not far away from being able to provide that. But, again, it would need quite a bit polishing.
It is definitely possible to write GUI-heavy applications for non-computer science users.
See https://opusmodus.com <https://opusmodus.com/> , which is a CCL application for the Mac. Basically it is a Lisp programming environment for composers.

> MCL did it. Was it written by Aliens?

I think we all agree that it was a really cool experience.

> It seems to me that LW COULD do it. Everything is already there. It is a question of hiding features and simplifying editing, not implementing new gizmos.

LW does things MCL didn't provide: it is cross platform and it is possible to write a lot of portable GUI stuff in Lisp, without calling to much platform stuff. This brings some restrictions and though LW comes with lots of examples, it does not come with the GUI code: thus one has to learn from the examples and the documentation - but one can't learn from the implementation code.

One of the problems of some interesting MCL applications was that they were littered with Macintosh toolbox calls and the MCL GUI library was very 'native'. When the Macintosh toolbox died (nowadays it's Cocoa), these applications were basically non-portable, not even to the new Macintosh toolkit. Thus MCL users did not have an easy path to new/other platforms. Now, some of the Lisp side can be recreated in CCL (windows, buttons, dialogs, etc.).

> To all of you, to all my Lisper friends: I genuinely admire and respect you, I idolise and adore you. You are the bee’s knees, and so is Lisp. Now, for ----’s sake, stop being bloody programmers and think of what a scientist or engineer or anyone who CAN understand the basic logical concepts of Lisp might need, to GET STARTED. Maybe start the guide with examples. It may work wonders.

food for thought.



> All the best,
> Dimitri
> On 30/03/2017 01:34, Laughing Water wrote:
>> I’m embarrassed to ask, but I have failed to figure out how to successfully execute PROMPT-FOR-FILE. This is on Mac OS X 10.11.6 and using a freshly-downloaded CCL 1.11-store-r16714 from the App Store.
>> ? (in-package :hi)
>> #<Package "HI">
>> ? (prompt-for-file)
>>> Error: There is no applicable method for the generic function:
>>>        when called with arguments:
>>>          (NIL)
>>> While executing: #<CCL::STANDARD-KERNEL-METHOD NO-APPLICABLE-METHOD (T)>, in process Listener(4).
>> I first laid my hands on MCL in 1990, have used LispWorks for over 10 years and wanted to try running some of my code in CCL. I was hoping for some instant gratification with a small piece of programming, but no success after an hour or more poring through documentation.
>> Laughing Water
>> _______________________________________________
>> Openmcl-devel mailing list
>> Openmcl-devel at clozure.com
>> https://lists.clozure.com/mailman/listinfo/openmcl-devel
> -- 
> Dimitri Simos                 Lissys Ltd  http://www.piano.aero
> _______________________________________________________________
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> https://lists.clozure.com/mailman/listinfo/openmcl-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.clozure.com/pipermail/openmcl-devel/attachments/20170330/5314639e/attachment.htm>

More information about the Openmcl-devel mailing list