[Openmcl-devel] Mac App store: solving Lisp's last mile problem

Ron Garret ron at flownet.com
Sat Oct 23 10:37:19 PDT 2010

On Oct 23, 2010, at 9:59 AM, Alexander Repenning wrote:

> I would like to give this whole Mac App Store development a more positive spin. The iPhone/iPad/IApp Store eco system has attracted many NEW programmers to the Apple world.

Of course it has.  They don't know any better.  Get 'em while they're young.  A whole generation of users has grown up thinking that "operating system" is synonymous with "Microsoft Windows", and "web browser" is synonymous with "Internet Explorer."  And now a generation will grow up thinking that apps come from the app store and just can't imagine the world being any other way.

> A number of my ugrad students make a surprising amount of money from making simple games that they developed for iOS. An interesting observation is that NONE of these students actually liked Objective-C, BUT, Objective-C did the trick. That is, they could produce that simple app that ended up making some money for them.

For the record, I think this is absolutely terrific.  Kudos to your students.

> The Mac App store may not have quite the same level of attraction but I think many students would still be very interest in making casual apps. Objective-C was not an attractive programming language, Objective-C is not typically a language used in teaching and yet this is what many students end up being interested in because of the integration into the more general eco system including the commercial aspect. To summarize, students program in Objective-C in-spite of not liking it, and buy Macs to develop apps in-spite of thinking that Macs are expensive.
> Now, lets speculate what could happen if the Lisp/CCL community, instead of debating end-of-the-world-as-we-know-it scenarios would embrace this eco system as well and would think, for a change, about what perhaps one could call the "last mile" problem of Lisp. Lets start with an observation of Ron Garret:
>> Besides, why would you even *want* to develop a retail app in CCL?  The leverage CCL gives you over ObjC is virtually useless in the retail app world.  What makes CCL cool is that you have a debugger, a compiler available at run time, the MOP, macros... what would you do with those things in a retail app?
> I think this hits the problem really on the head. Perhaps this is Lisp's biggest problem. Period. Basically, we are saying that Lisp is great to play around, do a little debugging here and there just run little experiments but certainly not good enough to make a real app that others could actually use or even would be willing to pay for. Is this really true?

I certainly don't think so.  Clearly Lisp *could* be used to develop apps.  But you have to ask yourself:

1.  Do you really want to develop appstore apps?  Do you really want to be beholden to Apple and accept the risk that they could reject your app or yank it at any time for a possibly bogus reason?  Is that really what you want to do at this point in your life?

2.  If you've decided that you really want to develop apps, do you really want to do it in Lisp?  ObjC is not such a bad language.  It has GC and dynamic typing.  And XCode is really a pretty good development environment.  Why not just use it?

3.  If you've decided that you really want to develop apps in Lisp, do you really want to do it in Common Lisp?  Maybe putting a thin layer on top of ObjC (a la Clojure), or embedding a little Scheme interpreter in ObjC would be enough to do what you want?

4.  If you've decided that you really want to develop apps in Common Lisp, do you really want to do it in Clozure Common Lisp?  Maybe it would be easier to sneak, say, CLisp or ECL past the censors at Apple.

If you get a big enough group of people to answer yes to *all* of those questions then it might be worthwhile discussing how to use CCL to develop apps.  But otherwise I submit we should focus our attentions elsewhere.  The app store is not all there is.

(BTW, if I were going to develop apps I'd personally look very hard at option 3.  Back in the day I built a little Lisp on top of C++ and it turned out to be surprisingly easy to do and it worked surprisingly well.  Nowadays doing the same thing for ObjC should be even easier since ObjC's semantics are already pretty Lispy.)

> Perhaps this is true now but is there some reason intrinsic to Lisp why this has to stay like this? For a lack of a better term I call this Lisp's Last Mile problem. I claim this is a great opportunity for the Lisp community in general and most certainly for the CCL community. Instead of contemplating syntactic simplifications, or whatever the CL lang newslist is currently wasting their time over, we could actually try to solve CL's last mile problem for the Mac. I realize, this probably would not be a fun project. Error handlers, full OS X integration etc.  requires some thinking. 
> I claim it would be very worthwhile to explore the compatibility of CCL with the Mac Store Apps framework. Obviously, we need to assess if, for instance, the use of the badly documented darwin functions could be a problem. I actually suspect it may not be. In the case of Java Apple is pulling the rug from underneath developers by declaring Java to be an OPTIONAL component of OS X. For a change lets use some positive thinking here and explore new exciting opportunities.

Or we could use CCL to develop the platform that becomes the de facto standard for cloud computing.  We can develop on Macs and deploy on Linux.  We don't have to worry about what Steve Jobs thinks.  We don't have to learn any new frameworks or build any new infrastructure.  CCL is ready for this task TODAY (and has been ready for quite a while now).  And we can actually get significant leverage from the features that are still unique to CL.


More information about the Openmcl-devel mailing list