I saw this cartoon comparing SOAP to REST in the Hacker News firehose feed, and wondered why Fox-News-style politics has to be part of technology discussions. Where is the religion coming from? Don't people want to use the best tool for the job? Would people willingly take a big step backwards? The answer to the last question is absolutely yes. It happens so often. Okay first -- let me get this out of the way -- SOAP is a mess. That's a strong statement coming from one of the guys credited with designing it. But I left the design process early because I didn't like the mess the big companies were making. I was quite vocal about it. But the first versions of SOAP were really simple and easy to implement. You could do a full implementation in a weekend. The later versions were so complicated that you could never finish an implementation. No matter how complete you thought it was, someone could throw a call at your server that it wouldn't understand. A cynical observer might think the big companies liked this aspect of SOAP because they could claim to be standard-compliant without all that inconvenient interop! Luckily the simple version of SOAP was published, in 1998, and a vibrant community developed around it. There are implementations in all the major development environments. It's baked into Python and the Mac OS. And a set of APIs for blogging tools was developed and were very widely deployed. All the major blogging tools supported the protocol, including WordPress which is so popular these days. I host the XML-RPC site, and to this day it gets a lot of traffic. A lot of people are, very quietly, using it. So when people compare SOAP to REST, and not to XML-RPC I wonder if they know that REST is missing something that it should always have had, a standardized way of serializing structs, lists and scalars. That's something XML-RPC (and SOAP) have always had, and any discussion of these technologies should include that advantage relative to REST, which forces you to cook your own serialization with every API. Because other developers like them, I implement REST interfaces all the time, and have been doing it for years. Every time I have to re-implement a layer that's provided built-into XML-RPC and SOAP. True, there is no single SOAP, and I would never, unless forced to, choose to implement an API in SOAP. But XML-RPC is a whole other matter. It's simple, easy, and it interops. The need for a common serialization was so great that people are dumping XML in favor of JSON to get it. And when they do it, they talk about the incomprehensible complexity of SOAP. Too bad, because XML-RPC never had that complexity. So come on engineers, stop being so Fox-like and open your eyes. Maybe we can do better than we have been doing. |