IM and REST: First Class Events?


After posting the previous piece about IM and REST, I happened to see a reference to work DJ Admans is doing with weblog updates and Jabber on Scripting News.  The basic idea, as I understand it, is to use Jabber in lieu of something like MQSeries or JMS to notify people of changes to weblogs.  I see the usefulness of that: remember those discussions in your undergraduate architecture class about polling vs. interrupts?

News aggregators function by polling their RSS feeds.  If everyone on the net used news aggregators and subscribed to hundreds of channels and wanted near realtime notification of changes to resources (not unreasonable if I'm to use it for things like monintoring systems or my airline reservation) the whole thing would drop to its knees.  Interrupts (i.e event notification) are the answer.

Now, the RESTian response, I'm confident, would be HTTPEvents.  Not a bad idea and certainly something I'd like to see developed further.   From a RESTian point of view, using a system like Jabber or JMS to manage events takes them out of the "first class citizen" category (from a programming language theory point of view).  In a programming language, anything that can be manipulated within the programming language itself is a first class citizen.  So, for example, functions are first class citizens in ML, but not in Pascal (don't even think about C--it gets too weird).  In REST, to be first class, you need a URI and (probably) use HTTP. 

So, maybe the question for RESTians is how far to go with the religion and when to get practical (and I'm not saying that they've gone too far yet).  One example of a language where everything is first class is LISP.  An elegant language.  I love it.  Nevertheless, not a winner in the language wars.  If REST wants to "win," RESTians may have to decide when enough is enough.