Monday, July 02, 2012

Coordination Languages vs. Proto

Got an interesting new paper for you folks, a little bit into a different space than the last few: Linda in Space-Time: An Adaptive Coordination Model for Mobile Ad-Hoc Environments.  This was just published in Coordination 2012, and is another collaboration with Mirko Viroli, who really did the bulk of work in the paper --- my last author position means "consultant" rather than "supervisor" on this one (on a completely side note, it bugs me that the semantics of author position are so ill-defined, but that's a post for another time...).

The interesting thing about this paper for me is it's really pushing my boundaries on how to think about spatial computing languages.  Mirko comes much more out of the coordination languages community, where they think about programming more in terms of a blackboard that a whole pile of different processes can write to.  So everything folds down into one or more "tuple spaces" and you have no idea what might be shoving itself into the tuple space or deleting stuff out of it, or even any way to guarantee that names mean the same thing to different programs---the whole point is that you can have a bunch of different programs written by different authors all coming into the same place and sorting things out between them as they go.

To me, this is scary --- anarchy!  With Proto, you always know exactly what everything means in every scope --- it's exactly the sort of control-freakiness that's so elegant and so often limiting with Scheme.  To Mirko and others in his community, coordination languages are a wonderful world of open pervasive ecosystems.  So when Mirko approached me about bringing ideas from Proto into the Linda coordination language, I struggled but ended up finding the challenge interesting.

Overall, I think we're still very early in figuring out how spatial computing programming languages can and should work.  There are certainly some key ideas that keep popping up over and over again: neighborhoods, distributed distance measures, vector fields, restriction, broadcasts, gossip, etc.  A group of us had a discussion of this after the spatial computing workshop, and decided that we ought to start building a table of the useful primitives, and which variants are being made available in all of our languages (kind of an obvious next step after the Spatial DSL Survey).

Linda in Space-Time is a start on another perspective, and I'm looking forward to where it goes next, and what the tension between it and Proto can teach us about computing on space in general.

No comments: