Ruby (the language), TupleSpaces, REST, and Ruby (Sam)

I wish I could point to an article by Dave Thomas and Andy Hunt in the April issue of Linux Magazine, because it has a beautiful example of a chat system done using Ruby's tuplespace and drb (distributed Ruby). I'll link to it when it posts. Here's what reminded me of it:

Patrick Logan: This is a pretty good analogy because SQL is an unbelievably limited query language just as REST is an unbelievably limited, er, whatever it is supposed to be.

Patrick also has other good recent blog entries on REST and TupleSpaces. [ Sam Ruby ]

A while back, I echoed similar themes in a column

The authors of Programming Ruby , Dave Thomas and Andy Hunt, authors characterize the language as "the Perl and Python of the new millennium." Rich Kilmer , who is contributing to an IDE for Ruby , enthusiastically concurs. To my eyes, as an observer but not yet a user of Ruby, it offers some nifty features both as a language and as an environment. On the language front, it puts blocks, closures, and iterators to powerful use, as Thomas and Hunt show in their book and also in a recent DDJ article . As an environment, it augments the usual stuff with some really interesting modules. Rich Kilmer raves most often about Ruby's tuplespace module, which implements a shared bulletin board (à la Linda or JavaSpaces) that can be accessed using complex patterns, and also about Ruby's RMI-like feature, drb (distributed Ruby), which makes it trivial to wire up networks of these tuplespaces.

To close the loop, Sam Ruby's O'Reilly Network blog asks:

The REST wiki suggests that the REST architectural style is most closely related to that of TupleSpaces . One important difference is that in TupleSpaces the sender does not identify the recipient. Data is addressed and routed based on content. Is there a place for such a model in "Alternative Web Services Architectures"?

Is it my imagination, or is everyone and everything now connected to every other one and every other thing? Well, at least Sam isn't programming in Ruby...yet :-)

Former URL: