Bad Programmer, No Donut!

Via Stefan Tilkov, I just saw a pointer to Simon's post on Reach and Inclusivity. I think Simon pretty well sums up my feelings about this as well. I'm not especially sure what problem XML-RPC solves. I find it really remarkable that the most vocal proponents have invested hugely in creating data formats, only to encapsulate it within another format. The NewsGator REST API started out as a transliteration of the SOAP API, until I realized that almost all of what I needed was already in RSS and OPML. You can argue about the choice of formats, maybe Atom, or a combination of Atom and XOXO, XBEL or OCS would have been better, but at least we don't need to argue about how the data is transported, and now I can think about caching data. Being able to have your web server not generate a response is nearly as important as getting to the point where you can generate a response. Begin with the end in mind - however hard it is to get a program to where you generate output, getting it to keep generating output is a much harder problem.

I've gotten to where I can't take the term REST anyway. I like that people have started saying "web-style", but I've done my part in propagating a very loaded acronym, so I suppose I shouldn't talk. However, my bias is toward "web style", because really applying myself to that design forced me to think about the data I was dealing with. It's certainly possible to design SOAP services that way, but hardly anybody does it because WSDL first is so damned difficult. The tools make it easy to write code and expose "web services", but that leads to discontinuities like the ones you see in the NewsGator SOAP API - the NGAPIToken element takes on the namespace of whatever service you're talking to, rather than having its own namespace. If you have a good proxy generator for WSDL, you'll never notice that, but if you don't, then you have to puzzle over that. I should have caught that earlier on, but I didn't because I was relying on the tools to do the work for me. I know, bad programmer. No donut for me!

— Gordon Weakliem at permanent link