ietf
[Top] [All Lists]

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

2016-08-12 19:48:37
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/
<http://www.qualcomm.com/%7Epresnick/>
Qualcomm Technologies, Inc. - +1 (858)651-4478


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