On Wed May 16 21:10:02 2012, Randy Bush wrote:
> Authors must be fastidious about this.
s/this/documents/
RFC 2119 §6 says:
Imperatives of the type defined in this memo must be used with care
and sparingly. In particular, they MUST only be used where it is
actually required for interoperation or to limit behavior which has
potential for causing harm (e.g., limiting retransmisssions). For
example, they must not be used to try to impose a particular method
on implementors where the method is not required for
interoperability.
I note two things:
1) RFC 2119 also uses lower-case "must" and "may" throughout.
2) RFC 2119 also clearly states that using the terms too much will
harm interoperability.
The second is the one I feel we have violated much more, and caused
much more damage, than any possible problem with the first.
Consider:
"An octet may contain 0-255".
This is most certainly not going to be helped if we say:
"An octet MAY contain 0-255".
We could either rephrase:
"An octet contains 0-255".
Or use a different awkward word - although up with this I will not
put:
"An octet might contain 0-255" - or it might not?
But many requirements can be re-cast as statements of fact about
valid protocol:
"The Foo octet MUST lie between 0 and 127 inclusive; that is, the
highest bit MUST NOT be set."
As Pete Resnick, I think, once said, these terms are not just a stick
to beat people with.
"A valid Foo octet lies between 0 and 127 inclusive; that is, the
highest bit is never set."
That's just as clear, to me, and allows me to concentrate the MUST
stick where I actually do want to stress a real problem, perhaps:
"Receivers of an invalid Foo octet - that is, one with the highest
bit set - MUST emit the 'Invalid Foo' error, and therefore terminate
the session immediately."
Overuse of RFC 2119 language reduces its utility.
Dave.
--
Dave Cridland - mailto:dave@xxxxxxxxxxxx - xmpp:dwd@xxxxxxxxxxxxxxxxx
- acap://acap.dave.cridland.net/byowner/user/dwd/bookmarks/
- http://dave.cridland.net/
Infotrope Polymer - ACAP, IMAP, ESMTP, and Lemonade