[Top] [All Lists]

Re: BCP 14 a.k.a. RFC 2119 keyword meanings (Was spamops-04)

2005-07-03 14:14:15

No, I didn't say "SHOULD means MUST", I said "MUST do this unless
you have a good reason to make an exception."

Yes, hence the ellipsis.

Which is a paraphrase of the more carefully worded language in

Actually not. Note that the 2119 text for SHOULD does not give implementers, end users, etc. leave to "make an exception" because doing so makes them feel good,

who said anything about making an implementor (or whomever) feel good?

it states "that there may exist valid reasons in particular
circumstances to ignore a particular item ...", e.g. while the
recommendation is made for good cause, there may be particular
protocol states, network conditions, backward compatibility issues,
etc. which may apply -- and a careful specification writer will make
clear why a recommendation is made and under what sorts of circumstances the recommendation might be ignored.

Uh, no.  SHOULD and SHOULD NOT exist precisely because specification
writers too often get into the business of trying to specify exactly when it is permissible for an implementor to make an exception to a specification.

In particular, MUST is an imperative and MUST only be used where there is potential for harm or where required for interoperation.

That language was intended to apply to all of the keywords in the document. e.g. SHOULD is also an imperative. gives definitions of imperative which include such terms as "command", "obligation", and "rule [...] that compels a certain behavior".

It is unwise to assume that the author of 2119 consulted before using that word. I can recall cases where that same author objected to the use of SHOULD in a document because he didn't think it was necessary to prevent harm or to ensure interoperability.

Now I think you are the one interpreting 2119 liberally.  It
doesn't say that SHOULD is a recommendation.

Considering that SHOULD has the same BCP 14 meaning as the adjective RECOMMENDED, and that a recommendation is something which is recommended, it's pretty hard not to reach that conclusion. You're welcome to try to rationalize not doing so...

I can see why you reached that conclusion. But there are subtle and important differences between the definition given in 2119 and the normal meaning of "recommended" (just as there are subtle and important differences between 2119's SHOULD and "should"). If we want to encourage a practice without imposing the requirement that "the full implications _must_ be understood and carefully weighed before choosing a different course" (emphasis mine) then we need another word besides RECOMMENDED, or we need to use definitions other than those in 2119.


<Prev in Thread] Current Thread [Next in Thread>