A good post by David on the relationship between data format and protocol extensibility and evolvability. I’m not sure I totally agree with his conclusion – that “protocol designers […] shouldn’t have high hopes that they can regularly provide for compatible protocol evolution” – but the bulk of it makes sense. I also think he’s approaching it from too theoretical a POV, since there are practical considerations that change the dynamics he’s studying (as I mentioned to him).
However, he finishes with this whopper;
As an afterward, it may be worth pursuing trying to solve problems of protocol evolution by examining whether the use of a constrained protocol, ie HTTP, provides any greater evolvability for protocols
That kinda came out of left field, no? I don’t see how that follows from what he wrote. I agree, of course, but just because a constrained interface provides self-descriptive messaging, and self-descriptive messaging provides better evolvability characteristics than the alternative, since the semantics of the message are unambiguous. This is in constrast to an SOA style message, where the most important semantic – the operation – is actually purposefully removed from the message.
I’m looking forward to his next post, which I anticipate to have a title something like “Oh my, you mean HTTP and RDF are what I’ve been looking for all along?!”. 8-)