Tuesday, April 18, 2006

It's going to end up custom anyway

The Anti-WS-DeathStar* movement's been pretty active lately, at least in the corner of the blogosphere I read.  Although I really do agree with them -- I think time spent on WS-* would be better spent elsewhere -- it was only this morning that I think I finally nailed down why.  Being as deeply ensconced in an architecture-oriented environment as I am, I can certainly see why WS-* exists, and I think that there's nothing malicious about WS-Consortium's attempt to WS-Standardize the world.  The problem is that it's all founded on the assumption that all the WS-Work will lead to WS-Specifications that are complete enough that different implementations will be interoperable. 

And I think that's just not the case.

Every implementation of a specification has different characteristics.  Even when two implementations conform exactly, there are differences -- perhaps in memory usage, perhaps in run time, perhaps in the relative efficiency of two (or more) operations.  And that's assuming that the spec is unambiguous (or that the implementations interpreted ambiguity in the spec in exactly the same way), which they often aren't.  So ultimately, there has to be some change, or some custom code, to connect two implementations of a spec.

So why not make it as simple as possible to make those changes?  The more statements a spec has, the more places there could be error either in specification or in interpretation.  Conversely, the simpler a spec is, the easier it is to implement correctly.  I'd rather have many small specifications to implement than a single large one -- after all, they're all going to end up custom anyway.


Post a Comment

<< Home