Tim Bray at Sun has some questions and comments on REST.
First, let me say that the religious wars over WS-* and REST seem to be generated by a very small number of people who have a very large amount of spare time. Don’t these people have things to do?
Can it possibly be enlightening or helpful for anyone at this time to read Mr Tim Bray’s opinion, once again, that XSD and WSDL are “lousy and malformed”? Really? Wait, let’s read four other “Thinkers” who chime in with their own artfully crafted prose stating their position on how much they dislike XSD.
This is all utter baloney. While one class of people will debate endlessly about the number of angels that can fit on the head of a pin, there are other people who have real jobs. They need to get stuff done, they need to connect systems together in their own enterprise, or connect with partners. Or they need to build frameworks and tools to help other people connect systems together. Yes, XSD isn’t as simple as we’d like. Yes, it’s hard to implement the spec. Yes, there are strange corners in the spec. Ok, already. We got it. We’ve heard it all. And governments are wasteful and the tax system is unfair, too. We mortals who have stuff to do – We have already accepted the imperfect nature of our circumstances. We get that it isn’t all as it should be, if we had designed everything with the foreknowledge that comes from experience. That’s the paradox, isn’t it? You only go around once, but you learn as you go. …. Ok then, being practical we-have-stuff-to-do people, we don’t sit around and dwell on what might have been, but we accept the reality and move on. Ferpeetesake! GET ON WITH IT, Bray.
Bray also repeated the complaint that WS-* was produced by “A Microsoft/IBM-driven process that was cripplingly product-linked and political.” Such a naive opinion to be repeating. The way Bray wrote it, he could easily duck and say “it wasn’t ME who said it, I was only repeating what someone else said. . .” Uh-huh.
Let me say this about that: While it is true that the representatives of large software vendors will inevitably represent the interest of the vendors in any spec standardization and rationalization process, to conclude that the vendors are unimportant or somehow harmful to the process is naive beyond belief. Suppose that the vendors did not participate in the WS-* process. Then what? Then WS-* is unsupported and you have no tools to use. Then the vendors go and build something else and you have fragmentation in the marketspace and no agreement on what to use, and interop is still a pipe dream. Sure the vendors change the process, but isn’t that what the horse-trading process is about? Without the vendors, what would you have gotten?
And don’t even tell me REST. REST is only possible having followed the WS-* effort. REST benefits from all the foundation work on XML (whether you like XSD or not).
Ok, so large vendors were hard to work with. How about some cheese with that whine? Once again, isn’t this just the way the world works? It’s like buying a house and later complaining that the seller wouldn’t give you the price you wanted. It’s a negotiation, Bray. You can’t get everything you want.
But that’s the strange part. Recently, Bray himself cited a book about donkeys, and how they find tranquility in a chaotic world. Donkey sense. But this is exactly what Bray is NOT doing.
Bray mentioned a dearth of tools around REST. He cited Restlet and Jersey as exceptions. I don’t know Jersey, but I do know Restlet, a lightweight REST framework for Java. If he mentions Restlet, why would Bray not also mention Windows Communication Foundation (WCF), I wonder? is it lack of knowledge? just jingoism? (edit: I suspect the latter, having read Bray’s smug self-satisfied tone in his previous comments on the REST support in WCF. It’s obvious he himself knows about WCF; I conclude he just doesn’t want anyone else to know.) What I tried to post to Bray’s comment section on his post of today (didn’t work for some reason, the “pre-parse anlayzer could not be found” or some such drivel) is this: WCF since v3.5 provides a nice framework for building servers and clients that use message-based communication models, whether SOAP and WS-* based or REST based.
People can object and say that “it’s not purely REST” but the beauty of WCF is that it is MESSAGE BASED, which Mr Bray apparently loves – and you the developer can defer your protocol choice (though not your arch model) until deployment.
Unlike Restlet, WCF is mainstream, in wide use. It is well supported by mainstream development tools, and there is plenty of good information on the web in the form of tutorials, sample apps, and so on. WCF is well tested and performance-tuned. It is of course very interoperable: regardless whether you use WCF on the client-side or on the server-side, you’re gonna be able to connect with arbitrary REST endpoints, regardless of the language or platform those other endpoints use.
I would say more, but I gotta go; I have stuff to do.