Misunderstanding REST

14 02 2007

Dave Winer discusses Yahoo! Pipes and in the process says something so wrong that I don’t even know where to start picking it apart.

In this case, the target is the huge, rich base of RSS feeds, which is designed to work with one kind of aggregator, a River of News, and if you structured Pipes around that — a filtration process for a river, it might bear some immediate fruit, but its built on a different model.

This might be true if you limit yourself to RSS, which is not very useful beyond aggregators. Maybe if you started using Atom instead, you might discover it is suited to a much larger category of applications.

It assumes that each feed can be dealt with as a procedure call, which according to the REST philosophers, it can, but in practice, feeds don’t take parameters, so they’re the least interesting kinds of procedures, like clock.now in UserTalk. Sure there are some verbs that build on that verb, date.month, date.year and date.dayOfWeek, but nowhere near as much as verbs that have rich parameter lists, which are like the gateways that Tim O’Reilly and Jon Udell are so excited about.

Equating feeds to procedures? Is this supposed to be consistent with REST, in Dave’s mind? Reality check: There are only four verbs in REST: GET, POST, PUT and DELETE.

See XML-RPC for Newbies for background; a Pipes that could do XML-RPC could be interesting, esp because the Metaweblog API is an XML-RPC application, and is widely supported by blogging tools and CMSes.

XML-RPC? Talk about flogging a dead horse.

In the RSS world, and therefore in Pipes, there’s no way to tell if items in two feeds are talking about the same thing. The best you can hope for is keyword serendipity, which all the demos so far do, and those make for unsatisfying demos, because you know you couldn’t deploy a useful app out of the concepts they illustrate. Very much like the early demos for HyperCard, Marimba, and my own Frontier.

Now it’s possible that a company like Yahoo, with its diverse flows of information, and nearly universal support of RSS, could add enough metadata to their feeds to be sure two items in different feeds were talking about the same thing, and then we’d be somewhere interesting.

Once again, if you used Atom, you could rely on every item having a unique identifier, and a universally unique one, being a URI. You could also reasonably expect that two copies of the same item, no matter which feed they were found in, had the same id. Unfortunately, RSS offers no such guarantees.

Looks like Dave is just whining here because Yahoo! Pipes is not like XML-RPC and RSS is too weak for doing anything besides aggregating news. If he had the courage to look beyond what he invented many years ago, he might find something actually useful was invented in the meantime.

Technorati Tags: , , , , , .




3 responses

1 03 2007

All these map services, I wish would get “synchronized”. It’s not like construction of roads outpace technology or database updates! Nice article.

1 03 2007

but wrong article reply!! How’d I get here?! Sorry!

10 03 2007
J Wynia

Plus, citing Metaweblog API as any sort of positive example ought to disqualify someone. I mean, an API where you can save a post as a draft, but not retrieve it for editing.

The whole POINT of a draft is that it needs further editing. Yet, you can retrieve published posts for editing and not drafts.

That it’s so widely implemented speaks more to tragedy than to lend any weight to it as something to be held up as an example.

Contrast Metweblog API with the new Atom Publishing Protocol Draft, where you can do complete CRUD on any of the objects, with only the API and you get an actual, decent blogging API.

I’ve come to regard most of what Dave Winer does as purely proof of concept kind of stuff. Note that there’s nothing wrong with that. In fact, it’s the phase of software I most enjoy myself.

The thing is that if you’re doing a proof of concept, the result shouldn’t be used as a “standard”.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: