Tim Bray is clarifying his position on REST versus XML Web services and SOAP In an interview with InfoWorld’s Paul Krill at OSCON in July, Tim Bray of Sun, the co-inventor of XML, branded the SOAP stack for XML Web services “a failure.” SOAP is of course based on XML, and the WS-* standards have grown up around SOAP to guarantee interoperability and to implement additional functionality. Today he’s back-pedaling — no, that’s the wrong word: today he’s clarifying his position on REST in his blog.Tim’s basic points: REST has been fortunate in its enemies. The WS-* stack has been plagued by handicaps, including “lousy” foundational technologies in XSD and WSDL, a politicized standards process, and bad design by inexperienced people. The benefits of REST “getting HTTP right” are big Statelessness may be a virtue, but in practice cookies are very useful for maintaining state PUT and DELETE (the two elements of REST’s mapping between HTTP and CRUD that are not generally supported by browsers) are not essential, but can be useful The Web works pretty well, and architectural insights from the Web really are useful REST currently has few tools I agree with Tim about 95% of the time, and this time I agree with about 95% of Tim’s arguments. I do want to bring out a few points of my own, however. Even without tools, RESTful APIs are fairly easy to implement and debug, both on the client and the server When the tools work well, WS-* implementations can be really easy to build and debug, although they’re often horribly inefficient on the wire When the tools fall down or fail to talk to each other, WS-* implementations can be a complete nightmare Efficient XML can remedy the inherent problems of bloated XML message packets How do you do your communications in distributed applications? REST? SOAP? Proprietary protocols? All of the above? Something else? Let us know what you think. Software Development