Subject: Re: [hybi] Versioning is a anti-pattern

From: "Shelby Moore" <[email-masked]>
Date: Sat, 4 Sep 2010 09:32:23 -0400

Fundamental law may help.  Separating interface from implementation breaks
Liskov Substitution Principle as explained here:

http://esr.ibiblio.org/?p=2491#comment-277013

Thus version numbers are nothing more than orthogonal interfaces, i.e.
replacement. And any assumptions about relationships between the
interfaces of two versions are bound to fail at some granularity
(complexity) of interaction. To assume you can wall off the complexity
(e.g. that this or that won't happen) is not a sufficient defense against
a Turing-complete machine.

The solution is to make interfaces orthogonal and more finely grained, so
you only have to version (replace) the affected portions of your system. I
have given up trying to push for those principles here, as I see for
example the MORE bit is still the concensus choice. I respect the right of
people to learn by fire.

COM uses a QueryInterface() for example. You may be tempted to think this
does not apply to a protocol, but it does just the same.

Good luck to everyone and may the efforts of this WG be interesting times.