How the Grinch Stole REST
August 13, 2008My interest in the REST approach to cross-process communication has been growing little by little over time like condensation on the back of my brain, almost without my noticing it. In the front of
my mind I have always focused my energies on learning SOAP web services and The WS-* Way. Whenever there was a REST vs SOAP debate I always came down on the side of SOAP, citing the usual examples: electronically discoverable contracts, automatic proxy generation, security, encryption, transactions, WS-*, blah blah blah. I think, though, that despite my tendency to feel like I was making an informed decision based on available evidence, in reality I was simply borrowing my opinion from my environment rather than applying the strengths and weaknesses of the two approaches to the actual messaging requirements of the systems I was building.
When you are young and first start having adult conversations, and such a conversation turns political, many people will argue on behalf of an ideology inherited from their parents or older peers. Most can even argue intelligently and coherently using borrowed rhetoric. Some people may never grow out of this tendency, but many others will begin to combine their first impressions with their own unfolding experience of the world and either gradually or all of the sudden realize they no longer believe what they thought they believed.
In any case, despite my conscious disregard for REST whenever I bothered to think critically about it, the sheer volume of media coverage about the subject worked its way into my curiosity. After all, REST API’s are everywhere. Even WCF now natively and comfortably supports building REST based messaging endpoints. Then the other day I read this article and realized that while I’m absolutely sure everything I’ve learned to believe about SOAP is entirely true, the requirements of the systems I work on very often don’t actually demand (or justify) most of the strengths of SOAP (or the Gordion’s Knot of complex WS-* standards).
This realization didn’t suddenly swing my opinion to the REST side, the decision of which approach to use in any given situation will need to be made on a case by case basis, of course, but my toolbox grew three sizes that day. What surprised me about this experience is that I always felt I was weighing my options evenly and making technical decisions based on the parameters of the problem at hand, but in reality my mind was always already made up! There was never a real choice.
Maybe one of the more interesting kinds of professional growth is not just acquiring new technology skills, but also the shedding of these very subtle preconceptions that artificially limit your options.
Of course, not only are such unsubstantiated prejudices unavoidable but are also a complexity reducing necessity. If the entire gamut of available technology needed to be evaluated for every technical decision, you’d never make any progress on anything. Choices made by the subconscious, even when due to prejudice, keep the ball rolling.
There is no moral to any of this, though. I don’t think we have much control over the situation. Preconceived notions will continue grow and shed cyclically as long as we are alive, like a snakes many skins, and the conscious mind can do little more than take credit for the good decisions and apply shame for the not-so-good ones, but that’s how we roll, brotha.













Add New Comment
Thanks. Your comment is awaiting approval by a moderator.
Do you already have an account? Log in and claim this comment.
Add New Comment
Trackbacks
(Trackback URL)