Sunday, January 20, 2008

"The REST War has been Won!"

Thanks to Dilip Ranganathan for bringing these links to my notice:

http://www.markbaker.ca/blog/2008/01/17/rest-vs-soap-the-personal-cost/
http://steve.vinoski.net/blog/2008/01/19/many-thanks-mark/
http://lesscode.org/2006/03/19/rest-wins-noone-goes-home/

I'm really sorry to hear of Mark Baker's health being affected by all this "war" nonsense, and I can deeply empathise, because I've been doing similar evangelism for Linux and Open Source in the past, and suffered personally because people just didn't get it. (And now that Linux and Open Source have become mainstream, gone fashionable even, there's nary an acknowledgement of my early vision. "Oh, yes, Open Source has matured now (condescension, condescension)". I tell you, it hurts.)

Mark, if it's any consolation, there are individuals you may not even know about, who are grateful to you for your efforts. I've myself come to this debate rather late, but I'm happy that so much work has been done to bring the world a needed alternative.

But I wonder, what do Bill, Mark and Steve mean when they say "REST has won"?

Well, if they mean "REST has been accepted as a legitimate way to build distributed applications", then yes, I agree. Correction: I would say, it's well-known, but not yet universally accepted, but it deserves all the support it needs to get there. I'm the first to argue that REST is a beautifully elegant way to do simple things. Just look at the Blinksale REST API.

If they mean "REST has won over SOAP", I'm afraid I'm not seeing that at all. There are people in my own bank, SOA practitioners no less, who haven't even heard of REST. They're happily building systems using SOAP and WSDL and claiming great improvements in productivity! They're not lying either. So if the REST folk think SOAP is going to die quietly, they're very sadly mistaken.

(I feel a bit schizophrenic at times. With REST folk, I'm the skeptic, asking why it's a better model than SOAP messaging and raising uncomfortable questions around REST limitations. To people who are happily ensconced in their SOAP ivory towers, I'm the furtive revolutionary, going, "Psst! Have you heard of this really simple, elegant approach to SOA called REST? Have a look. You may find you could use it in many areas, and you may find it simpler and cheaper to implement.")

I like REST a lot, but I think it needs a bit more critical analysis around what it can't do well. I see a lot of religious fervour about REST, which is probably as bad as dogmatic opposition. And I think there needs to be a "SOAP Take 2", where some of the obviously bad ideas in WS-* get weeded out and the fundamental message-oriented paradigm is better implemented. I think we're moving towards a future where we have both, - a more capable REST and a more elegant SOAP.

I'm going to be blogging about some of these issues soon. Stay tuned.

3 comments:

Malinda Kaushalye Kapuruge said...

>>>"obviously bad ideas in WS-* get weeded out..."

What exactly you have in your mind for a SOAP take 2?
What are the WS-* specifications need to be removed/changed?

-Kau
blog.kaushalye.org

Ganesh Prasad said...

Kau,

Many people in the SOAP/WS-* camp have themselves written about what needs to be changed/improved with SOAP, WSDL and the other standards.

William Vambenepe is one. Jim Webber is another.

Many of the things that are wrong with current SOAP/WS-* practice become obvious from a first-principles analysis of SOAP messaging as a means of integrating autonomous peers. I'm going to be blogging about these soon.

Ganesh

stu said...

So if the REST folk think SOAP is going to die quietly, they're very sadly mistaken.

I don't think it's that. I think "won" means :

- The next generation of Web systems will take advantage of the Web's architecture. Web developers get to keep improving what they're doing, there will be no forced max exodus to an alternative stack. You may think this odd, but some WS-* co-authors were discussing the deprecation of HTTP in favour of SOAP back around 2003. (Or in favour of CORBA back in the HTTPng days of 1999).

That won't happen now, as too many people understand the Web's architecture to let it happen.

- Eventually, architects are not going to be forced to use SOAP where it's not appropriate due to peer/management/industry pressure. It's not the "end of protocol history" as some had claimed 6 years ago. It's one of several viable approaches.

- The Web will likely evolve with REST's lessons in mind. Which is a good thing.

I like REST a lot, but I think it needs a bit more critical analysis around what it can't do well.

High volume / low latency event monitoring, for one.

But I don't think SOAP would fare well there either yet ;-)