first_page

Brent Simmons is for XML-RPC but Soft on REST

It took a while to discover Dave Winer’s Morning Coffee Notes (MCN). Somewhere in my previous Dave Winer posts an explanation of his OPML editor was requested and Dave has this covered (more than covered) in MCN. Listening to Dave Winer feels like listening to Joe Frank… You know when Joe gets on the phone with Larry and Larry just starts talking? …strange…

So Larry—I mean Dave introduced me to Brent Simmons and his opinion of REST. Over a year ago, in “The virtues of XML-RPC,” Brent wrote:

And while REST satisfies my aesthetic sense as being wonderfully elegant, it doesn’t give you a single serialization format you can use. You have to do more work, you have to turn data into XML and back again. (And you have to turn everything into an http verb. What if you have a procedure that, given a graphic as a parameter, returns a black-and-white version? Is that really a GET request, or are we overloading http a bit here?)

The dominant assumption behind this statement is that XML has only one use in an application. This reminds me of Ruby on Rails people suggesting that XML is only used for configuration files (because they are looking at XML in Java applications).

My RESTafarian focus informs me that yes, XML is used to pass messages, providing the “small talk” among components. But it is also used to bind data to widgets in the UI. And, by the way, it is used to render the widgets themselves (via XSLT). So it is quite clear that these RESTafarian applications are not “overloading” http with binary transactions.

WordPress is the most famous application featuring XML-RPC functionality known to me. Much of the user interface is essentially hand-written XHTML. That sounds like “more work” to me—or, to be fair, the same work that is done to write XSLT. The food source of my XSL files comes straight from the database as XML. For Microsoft SQL Server 2000 and above this XML is generated on the fly. For PHP I had to write one generic procedure (a class, actually) that turns MySQL rows into XML.

So maybe I’m missing something in Brent’s world. It took me years to find Dave’s artistic coffee notes so maybe there’s years ahead for Brent.

rasx()