I'm reading a book about REST at the moment. I'm finding it quite interesting, but like so many issues in software development, there is a tendency to hyperbole. Take the following quote for example: This is because SOAP always uses POST, which can't be cached at any level. This is, almost obviously, false. This is nothing in any of the protocol specifications which prevent a SOAP client from caching the response to a SOAP request using an application specific protocol. So, SOAP can in fact be cached at the application level. Being charitable, I can suppose that the author did not intend to lie. I can suppose that what he was thinking when he wrote the above is that a SOAP response cannot be cached by an HTTP level cache since that would violate the HTTP specification.
Unfortunately, that is not what he wrote. What's worse, many people will read the book and simply accept the statement as written. They will believe that it is not possible to cache SOAP, make design decisions based on the belief that it is not possible to cache SOAP, and possibly effect the design decisions of others by propagating the notion that SOAP cannot be cached.
REST is a fine approach to designing web-based applications. But when people make broad and unsupportable statements about a technology they contribute to a problem that seems to haunt software engineering: taking what should be a rational discussion about the merits of a given technique or technology and turning it into a pointless confrontation where the focus is on who is right rather than what is the most appropriate solution for a given set of constraints.