November 28, 2006
@ 09:27 PM

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

  1. 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?

  2. 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.

  3. 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. :)