Re: New Version Notification for draft-leiba-rfc2119-update-00.txt

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



FWIW, I was being glib in trying to toss out MUST/MAY/SHOULD (I should have used a smiley :-)).

Both adverbs and adjectives are need because protocols include both actions and state:

Adverbs indicate constraints on action (of the protocol, implementer, or operator).

Adjectives indicate constraints on state.

It's equally awkward to use either one for both types of constraints, IMO.

Joe

On 8/12/2016 5:20 PM, Pete Resnick wrote:

On 12 Aug 2016, at 19:04, Joe Touch wrote:

It's inefficient to repeat the phrase "X MUST be supported by any
implementation that complies with this specification".

Perfect example. That passive construction is just as bad as "X is REQUIRED". That's a compliance statement, not an interoperability statement as required by 2119. When "X" is a feature (not a protocol operation) what does "X MUST be supported" even mean? Why MUST it be supported? What interoperability problem does it cause if I choose to do otherwise? 99 times out of 100, when I've see "X is REQUIRED" or "X MUST be supported", it's a completely bogus use.

The phrase "X is REQUIRED", RECOMMENDED, or OPTIONAL corresponds to the
incorrect English of "X is a MUST".

And I would say don't use any of them. ("X is a MUST" is an abomination.)

I.e., these are reasonable adjective forms of the adverbs
MUST/MAY/SHOULD. Omitting these adjectives then requires authors to
select their own adjective forms or to have to rewrite everything as an
adverb.

Rewriting things to use an adverb is good because it requires you to have a verb. If the verbs are "support" or "comply", it's a pretty good sign that you're making the spec less clear.

IMO, if you want to drop anything, drop the MUST/MAY/SHOULD - directives
of protocol specs should describe the spec, not the actions of the
implementer.

Violent agreement on that one.

pr

On 8/12/2016 4:13 PM, Pete Resnick wrote:

On 11 Aug 2016, at 6:44, Stewart Bryant wrote:

Optional is useful in a requirements RFC.

Feature x is REQUIRED

Feature y is OPTIONAL

One last (and perhaps fruitless) attempt to keep this section and
deprecate the adjectives:

Using REQUIRED and OPTIONAL results in exactly the problem of using
passive voice anywhere: REQUIRED by whom? OPTIONAL for whom? If you
say, "A MUST do X and B MAY do Y", it is perfectly clear which actor
is responsible (and in network protocols there are inevitably at least
2). If you say "X is REQUIRED and Y is OPTIONAL", you'll end up
needing more text to explain the actors and their roles.

Using REQUIRED and OPTIONAL is lazy. It makes specs less clear. They
ought to be dropped.

pr

--
Pete Resnick http://www.qualcomm.com/~presnick/
Qualcomm Technologies, Inc. - +1 (858)651-4478



[Index of Archives]     [IETF Annoucements]     [IETF]     [IP Storage]     [Yosemite News]     [Linux SCTP]     [Linux Newbies]     [Fedora Users]