Steve Jones has a blog post entitled Want to be cool? Learn REST. Want a career? Learn WS where he writes
Out in the big wide world of the great employed of IT there are four
dominant software players, these people represent probably the majority
of IT spend in themselves and influence probably a good 95% of the
total IT strategy out there on planet earth. Those four companies are
SAP, Oracle, IBM and Microsoft.
These are the companies who your
CIO goes to visit and sits through dinners and presentations on their
product strategy, and what they are pushing is WS-* in all its ugly
glory. This means that in 3 years time you 100% will have WS-* in your
company, in a company you work with, or in a company you want
to work with. Sure you can argue that its harder and more difficult
than REST, in the same way as you can argue that Eiffel, PHP or Ruby
are more productive languages. Some people will get to use these
language commercially, some people will get to use REST commercially.
Everyone will have to use WS-* commercially if they want to interact with systems from the major software vendors.
I'm not saying its right, just that its reality. The best
technology isn't the technical purest, the most productive or the
easiest, its the one that the most people use and which has the widest
acceptance and adoption. For shifting data across the internet this
means its what SAP, Oracle, IBM & Microsoft say, its also what the
various vertical standards (who the big boys aim to implement "out of
the box") who have also all gone for WS-*.
The technical
discussion is pointless, the commercial discussion is mute. But hey
lets continue having the discussion on REST v WS because it makes us
feel cool and trendy. Its about time that IT people realised that we
need to have discussions based on commercial realities not on technical
fantasies.
There's a lot to disagree with in that short block of text. I'll go by the numbers
Contrary to what Steve Jones claims, folks at Microsoft are very interested in REST. On the one hand, you have people like Yaron Goland who is driving the Web Services story for the Windows Live platform who has shown a lot of interest in RESTful Web services and even JSON as a data format in posts such as Thoughts On Creating An Infoset For Windows Live Services Platform. You also have folks like Omri Gazitt who runs the group that is responsible for the Windows Communications Foundation (aka Indigo) looking at RESTful APIs like GData in his post XML --> JSON Conversion in Google Data API and Doug Purdy who's also in the WCF team who's spending his downtime after shipping WCF v1.0 implementing the Atom Publishing Protocol which is a RESTful API. Why would all these people at Microsoft be spending time looking at REST if they didn't think it was a worth investigating and adopting?
-
Steve Jones's post gives the impression that developers will need to "learn" WS-* because it may be deployed in their enterprise. That seems quite unnecessary to me. The WS-* family of technologies are intentionally so complex that developers are best served by knowing how their Web Services toolkit works instead of the gory details of how that particular Web services stack selectively or just plain incorrectly implements SOAP, WSDL, XML Schema, and the rest of the WS-* stack. If you are a .NET developer then you just need to know how ASP.NET Web Services and now WCF works. If you are one of those poor souls who'll have to get disparate Web Services toolkits to interoperate with each other then stick to whatever the WS-I compliant mode is in your toolkit of choice when exposing services and pray that whoever exposes the services you have to consume has done the same.
-
I also disagree with the implication that the technologies with the widest acceptance and adoption for moving data across the Internet will be WS-* based. Come on, the most popular Web service on the Web today is RSS/Atom feeds and that is as RESTful as it gets. In fact, perusing a list of Web APIs exposed by companies I seem to see a lot more RESTful or Plain Old XML over HTTP APIs than I see APIs based on WS-*. Perhaps Steve Jones meant to write intranet instead of internet?
Finally, even if your company has drank the WS-* kool aid it doesn't mean that RESTful APIs are anathema. I'm pretty sure that no one has drank the WS-* kool aid more than Microsoft but I still see a lot of AJAX [client side Javascript calling back to RESTful or POX APIs] and RSS feeds coming out of the company. A lot more than I see SOAP APIs now that I think about it. :)