Tim Daly on Lisp

Tim Daly, Axiom’s lead developer, has a couple of things to say about building large applications in Lisp and on picking a language:

Measure your OODA loop [observe, orient, decide and act loop] in all the languages you know. See which one cycles fastest. I’d bet that’s your favorite language.

I also happen to like the movies he recommends ;-)

flib

Update We’ve moved the date of our first meeting to June 17th, so you’re still in time to join us! If you want to follow our adventures, you can also ask for an invitation to our mailing list.

The other day, Andy and I met Jos, an experienced schemer who lives near Barcelona, with the idea of having lunch, talking about Scheme, and create a Scheme Users Group. After a bit of discussion, we agreed on widen the group’s scope, and start what we’re calling Fringe Languages In Barcelona (FLIB). The plan is to conduct periodic meetings with a main presentation followed by some lightning talks (the latter were a complete success at ILC, and we’d like to try and see how they work for us), with as much discussion interleaved as we see fit. We’ll have some refreshments available and, since we’re meeting in the very center of the old city, visits to pubs or a restaurant for dinner and further socializing are to be expected.

As i said, we’re expecting much discussion about Scheme and Lisp, but we’re not ruling out by any means other fine languages. For instance, the talk for the inaugural session (scheduled June 10th17th, 7:30 pm) is entitled The implementation of FUEL, Factor’s Ultimate Emacs Library, and it will include a short introduction to Factor (yes, i am the victim speaker). Jos will come next, the same day, with a lightning talk about PLT Redex. We have free slots for more lighting talks: you are invited not only to come, but to give one if you’re so inclined. This being our first meeting, there will be also some time for logistics and organisation.

So, if you’re near here by then, by all means, come in and join the fun:

Calle del Pi 3 Principal Interior (first floor)
Barcelona

Not really needed, but if you’re thinking about coming, sending me a mail beforehand will help us to be sure that we’ve got enough food and drinks.

We’re looking forward to getting FLIB started, and we’re sure that at least grix more fringers are coming! Don’t miss it!

Vintage CLOS

I’ve been playing with CLOS again these days (after finding it specially apt for one of my pet projects (more on that later)) and just stumbled upon this fun video by Daniel Bobrow, the chair of the committee that standardized CLOS in the late eighties and, to this day, research fellow in the mythic Xerox PARC.
Daniel gives a good introduction to the Common Lisp Object System, its design trade-offs, the main ideas behind it (generic functions, classes, reflection), and talks a bit about the standard body’s work (fun to see how, back in the day, using mailing lists for discussion was considered innovative).
Besides its vintage charm (don’t miss the Q&A session at the end), the talk works as a good little introduction to CLOS (despite occasional inexactitudes), which can be supplemented by this nice article by Bobrow, Gabriel and White.
Enjoy!

zslug

My first seven moths in Zürich have been packed with pleasant surprises. Among them, having the opportunity to meet two developers of two of my favourite lisps: Martin Gasbichler, of scsh‘s fame, and Juho Snellman, of sbcl‘s. I’ve already enjoyed several pleasant discussions with them (as well as with some co-workers interested in lisp), and it was only natural to go one step further and found the Zürich Scheme/Lisp Users Group.

The zslug will have its inaugural session next Monday 25th, 18:30 at The Lion. Besides beer (the raison d’etre of any users group), Juho will talk about the implementation of sb-cover, a code coverage tool for Common Lisp. If you happen to be in Zürich or whereabouts by then, just come in and join the fun!

Update: The actual address of The Lion is Oetenbachgasse 24. Hope to see you there!

Sven’s movies

Sven Van Caekenberghe is the author of some interesting Common Lisp hacks, including KPAX, a nice (web) application framework, and cl-prevalence, which is the one that drove me to his homepage. And there i found his Lisp Movies.

Bets are seasoned common lispers will be well aware of them (the screencasts are more than a year old), but new CL aficionados or anyone wanting to see the much touted dynamism of Lisp in action will find in this couple of movies a good example of how it feels programming web applications within a really powerful environment. Sven interacts in this two-episode series with LispWorks to create a simple HTTP server (and modify it on the fly) and to write a Reddit clone in 20 minutes and 100 lines. The latter uses KPAX, so, as a bonus, you’ll get a mini-tutorial on the framework.

But of course the nicest bit is seeing how one starts with an empty but running server and modifies or, rather, debugs the program until it behaves properly. All that keeping it alive and using the tools provided by the environment (inspectors, listener, debugger) to bend and evolve the code. Ah, the Joy of REPL once again.

Getting Lisp

I was re-reading fare‘s excellent What Makes Lisp Great, an awesome and insightful discussion of Lisp’s unique qualities (which, regretfully, didn’t take off on reddit, hence this post). I took the time to read the comments and enjoy the author’s answers. And there i found this little gem on how Greg Trasuk finally gets Lisp. If you’re a lisper, you probably knew about it already; but if you really need a little push to start learning Lisp, that may be it. Of course, Faré’s article should make for a great one. While you’re at it, be sure to read some of his other great articles on Lisp:

(as selected by himself). Great stuff.

Scheme or Common Lisp?

A sure way to start a flamebait in any Lisp forum is to ask what’s better, Scheme or Common Lisp, or, as a poster did today at comp.lang.scheme, whether Scheme is geared towards academics and CL to real world applications. Fortunately, one can always count on the good sense of lispers like Ray “Bear” Dillinger, who answered with this long, informed and very interesting post: recommended reading.

(To me, the answer is crystal-clear: both.)

Common Lisp on the spotlight

If you’re an OS X user you already now about Spotlight, the file metadata indexer that comes with Tiger. I’m not a heavy user of Spotlight, but today i’ve made a discovery that may change this a bit: John “Lemonodor” Wiseman’s Lisp Metadata Importer, a plug-in that makes Spotlight aware of Common Lisp constructs in your files.

John wrote a nice howto in the above page, complete with screenshots like this one showing a search for Lisp definitions:

Searching Lisp contents in Finder

and here you can see Pathfinder showing the Lisp metadata associated to one of my files:

Lisp and Spotlight

Nifty. Although i think that the possibility of using the command line interface for querying Spotlight metadata is even more interesting… i’m already thinking of writing some Elisp to perform queries within Emacs with Spotlight’s mdfind as a backend (albeit admittedly Slime makes those scripts less useful than one would think!).

One can also use John’s importer’s source code as the basis for new plug-ins supporting other languages (Scheme comes to (my) mind, stay tuned!). There’re already importers for Python and Ruby, but it’s quite easy to write your own if those are not your cup of tea (and learn a bit of Objective-C in the process).

Happy searching!

The Road to Enlightenment

Arto Bendiken has just explained, in delicious detail, his Lisp experience in The Road to Enlightenment is Littered with Irritating, Superfluous Parentheses. He recalls his going from C and Basic, to Java, Python, Ruby and, finally, the light. A very interesting reading, with excellent links and references for a good measure. You’ll also find in there Arto’s solution to one of the conundrums we lispers face sooner or later: CL or Scheme?

Dynamic languages day

The presentations and videos of the Dynamic Languages Day held last month at Vrije Universiteit are available at the event’s web site, which also counted with the collaboration of the Belgian Association for Dynamic Languages, whose home page starts with a call to arms: No Java, C++, Pascal or C here!

Prof. Viviane Jonckers gives an overview on the university’s use of Scheme as the lingua franca for most computer science courses in the first two years, stressing how beneficial to the students is an early exposure to the dynamic paradigm (PDF / Quicktime). A good quick overview of the features that make Scheme different.

No dynamic languages discussion could oversee Smalltalk. Johan Brichau and Roel Wuyts talked about the language’s features (PDF), including its metaobject protocol and flexible development environment, which so nicely puts to good use the dynamic nature of Smalltalk (as demonstrated in the video).

Ellen Van Pasesschen
reviewed the history and main traits of prototype-oriented languages before entering in a tutorial on Self’s strengths and efficiency issues (you’ll be surprised). Her presentation is real fun, and worth to see live. Ellen uses Self extensively in her Ph.D. dissertation, which includes a sophisticated interactive environment (called SelfSync) that creates object networks from Entity-Relationship diagrams, and keeps two-way synchronisation between objects and their ER model: just take a look at this demo to see what i mean.

Finally, Pascal Costanza gave a life demonstration of Common Lisp’s Object System and its metaobject protocol, and how it can be used to implement Aspect-Oriented-like features into Lisp. The talk is targetted at non-specialists, and is full of side-notes explaining CL idiosincrasies and questions from the audience, so that you can learn some Lisp on the way even if it’s not your language. The live part of the talk includes implementing a Python-like object system using the MOP, so be sure to watch the video in addition to downloading  the PDF slides and source code. If you know a little bit about CLOS, or get impressed enough with Pascal’s wizardry, don’t miss Closer, a set of libraries written by Pascal that take CL implementations closer to the MOP specification, and applies it to AOP and what Pascal calls Context-oriented Programming, or ContextL. Since i have yet to really understand what exactly are ContextL’s goals, i’d better just point you to the overview paper i’m currently reading.

Wow, i wish i was there!

Technorati Tags: , , , , , , , ,

Follow

Get every new post delivered to your Inbox.

Join 26 other followers