You’ve almost surely heard the Jon Postel phrase “Be liberal in what you accept, and conservative in what you send”. But do you agree with it?
It can be interpreted as a suggestion on how to behave. While this might make good advice for conservatives (don’t get mad because people don’t act the same as you), for liberals it seems like a guide for a needlessly boring life. If we were all conservative in what we do, then we wouldn’t do much that is new, or different. This would seem to retard progress. Of course, the same would be true in protocols so perhaps we need a “where possible” qualifier. That is, you should use the most conservative way of saying something. This makes sense in protocol design, where there are only computers at the other end, but in real life there is far more than semantic equivalence: associations, beauty, etc.
Others argue that context must be taken into account, that the suggestion is only for the purposes of interoperability. This makes more sense to me; I have found myself on several occasions making misleading or false statements for the purposes of interoperability. Obviously, interoperability is essential.
Others say it is only applicable to protocol design. Even in this narrowest view, it would seem that some agree. Certainly, XML (highly endorsed by people who unfortunately don’t know any better) encourages you to be conservative in what you accept and liberal in what you put out.
It seems to me that a well-designed protocol would have only one saying things and require that you use it. After all, there are two types of interfaces: good interfaces and user interfaces. (There is actually a third type, as demonstrated by XML: bad interfaces, which are neither good for computers nor users. It never ceases to amaze me how XML is bad at everything.)