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

Tuesday, 28 November 2006 23:30:00 (GMT Standard Time, UTC+00:00)
You've definitely nailed it. I'd add a few more points -- there are *plenty* of "major software vendors" that support REST, and it's not the case that the only software vendors that matter are the four he mentioned. I like my career just fine and I never touch IBM, SAP or Oracle (or Microsoft's SOAP stuff, for that matter).

But it's also true that the kinds of SOAP services that "major software vendors" support are not the kinds of services that you'd actually want to consume.

"Enterprise software" isn't what it used to be, and this guy seems to have completely missed that. It's no longer the case that IBM (or Microsoft, etc.) can bark and have 100,000 developers jump. Developer productivity matters and having choices really matters.
Wednesday, 29 November 2006 02:23:36 (GMT Standard Time, UTC+00:00)
RESTful style APIs are definitely the external facing API of choice, but I don't think that makes it the only "right" solution for enterprise computing. Large consumer facing API require a lot of work to support and scale. The developer benefits from this in an easy to use interface for their mash -ups.

For CEO, CIO, CTO interoperability is important, but honestly it stops there. If it's REST, WS-* or something else, it doesn't really matter to them because it's an implementation detail and at the end of the day, Oracle, Microsoft, SAP and IBM will sell software based on other factors.

I agree with Steve Jones that knowing WS-* is a career enhancer. REST is too but WS-* will definitely satisfy the recruiters. The other thing to consider is that REST is a subset of WS-*. So saying you know REST but think WS-* is a waste of time tells me that you're pretty closed minded about things. That is a bigger career killer than which one true way: REST or WS-*.
Wednesday, 29 November 2006 06:00:07 (GMT Standard Time, UTC+00:00)
I still remember two back-to-back presentations at the XML 2006 conference, given by Yahoo and Amazon respectively on their web services architectures. While somewhat divergent in the details (as is to be expected) they had both largely settled upon the notion that public facing services should be RESTful, largely because they need to not only be simple enough for developers to use but because they need to provide a suitable firewall between the requester (possibly someone seeking to hack the system) and the core business logic of their systems.

Internally, their systems were far more message oriented and built upon variations of the WS-* stack. I felt back in 2000 that WS-* (and especially WSDL) was, at the time, badly mispositioned as a public interface because the type of information involved in such services often were of a sensitive nature that was inappropriate outside the context of a departmental level. I've seen company after company make this same realization, to the extent that their internal stack is generally some SOAP variant (not all are WS-* related) and is valid at the departmental or inter-departmental level but their public APIs are all RESTful.

Thus, what you see here isn't so much that REST is a career killer so much as REST and WS-* represent different domains, something akin to the web developer vs. application developer distinction that already exists within most IT shops. Especially with the rise in AJAX services, my suspicion is that the REST developer's stock will in fact likely continue to rise to parity with (or perhaps even overtake) the WS-* expert.
Wednesday, 29 November 2006 06:00:55 (GMT Standard Time, UTC+00:00)
Ack, XML 2005 conference - why is it you catch errors like that only AFTER you hit the send button ... - Kurt
Thursday, 30 November 2006 20:40:55 (GMT Standard Time, UTC+00:00)
the WS-* standards smell a lot like the ISO-OSI protocols of the early 90's. They were gonna replace TCP/IP and SMTP, remember? Developed by european academics and PTT bureaucrats, then punched out without evolution. Design and decree.
Bob Denny
Comments are closed.