Alpaca

ziggy on 2003-04-22T19:00:47

I came across Alpaca today, via lemonodor, a Lispy weblog.

Alpaca is a rich text editor "implemented in Lisp" (openmcl to be precise). I downloaded the sources, and downloaded the app as well. It's still in an early stage of development, and it looks quite boring at the moment. (not very different than TextEdit, actually.)

The truth is that it isn't really "implemented in Lisp". The Lisp sources amount to only 800-odd lines of code including comments and the build script. This app is really just some glue code (in Lisp) to instantiate some lightly customized Cocoa objects. To be fair, this is only version 0.2.1, and that's quite a reasonable goal for such an early snapshot.

I was more interested in how the author managed to create a Cocoa app in Lisp and connect to the nib files. Poking around the sources, not many of the connections seem to be set; from what I can understand, all of the logic is done through window controllers and the app delegate. (Maybe that's just the way to go...) In any case, there's nothing new going on here, and there's certainly no PB/IB integration in use. And interfacing with Cocoa is still pretty painful...

The important itch that Alpaca aims to scratch is writing formatted documents in an editor that respects emacs keybindings. This it does well; my brain is not wired for emacs, and finding the keybindings (loaded from a .alpaca file) took a bit of work. As you would expect, all of the emacs keybindings are in use, (and they are incredibly painful on an iBook keyboard...). And the conflicts between standard command keys, control keys and option keys is a little disjointed.

All in all, it's an interesting hack that has potential, but not something I'm likely to use any time soon. :-)