Concurrent/Parallel Programming - The Next Generation - Part 4
Tuesday, May 9, 2006
A few months ago, I posted on three different concurrent programming paradigms (see Part 1, Part 2, Part 3). In those posts I focused a lot of attention on the different message-passing concurrency (the Erlang model of concurrency) options that were available in CL. Well, there have been a few changes since then and it's probably a good time for an update. Here are a number of things that have happened recently that are worth noting:
- The ECLM meeting was held in Hamburg on April 30th. At that meeting, Klaus Harbo gave his presentation on "cl-muproc: Erlang-inspired multiprocessing in Common Lisp" (I mentioned cl-muproc in an earlier post). He also indicated that he will soon be making his code available under a BSD license.
- Patrick Collison announced that he had added something like Erlang-style multiprocessing to Croma, his Lisp dialect.
- In one of his lemonodor blog posts, John Wiseman talked about using SubEthaEdit to collaboratively edit documents. I exchanged a number of emails with Luke Gorrie asking him whether anyone had thought of using his Distel elisp package to do anything similar. (Distel is an Emacs Lisp implementation of a subset of the Erlang programming model that lets you write "processes" in elisp. I mentioned Distel in an earlier post.) Turns out that Luke himself had written such a beastie on top of Distel! Although it's not in a polished state, his shbuf hack lets you share Emacs buffers over the network. (Note: there are other ways to do this in Emacs too (see here, here); however, Luke's version makes use of his Distel package so it is "on topic" for this post).
- Chris Double posted about making some updates to a scheme-in-javascript library to add a simple concurrency library which provided lightweight threads that run in a web browser (with a syntax similar to that of Termite, a Scheme with Erlang's concurrency model). This looks like a pretty neat hack but unfortunately works only in IE6 at the moment so I wasn't able to try it out.
Update-2006-05-11: Chris Double sent me an email regarding his concurrency mods to the scheme-in-javascript library. He mentioned that the examples should work in Firefox as long as the 'jit' button is disabled but that it would be a bit slow. He said that he's currently in San Francisco but that once he's back in NZ he'll fix the problem of the JIT not working.

