[rfc-i] Drafting issue... use of MAY
barryleiba at computer.org
Wed May 2 12:25:44 PDT 2018
I think Phill has this exactly right. I *really* hate "MAY" most of
the time; it's way overused, and overused confusingly.
Almost every time, when a spec says "MAY do x or y," it really means
"MUST choose between x and y, and do one of them." But what it says,
according to the letter of 2119, is that it can do anything it likes,
and that x and y are what the spec suggests.
I'll really challenge people to show me a case where a spec needs to
use MAY -- really needs to use it, rather than just something like
When <this happens> the server MAY close the client session."
When <this happens>, the server is likely to close the client
session, and clients MUST be able to handle that situation.
(No one asked here, but I also mostly hate "SHOULD". Mostly, not
entirely. Most of the time, "when <this happens> the server SHOULD
<do that>" is useless -- perhaps one might say dangerous -- without an
explanation of when/why it might not do that. And that's most often
better written as "the server MUST <do that> unless <explanation>."
IMO, we use too many unexplained SHOULDs, leaving implementors
But no one asked here.)
On Tue, May 1, 2018 at 8:16 PM, Phillip Hallam-Baker
<phill at hallambaker.com> wrote:
> On Tue, May 1, 2018 at 1:03 PM, John Levine <johnl at taugh.com> wrote:
>> In article
>> <CAMm+LwgBFWW2GoemjDG3nVEO2=RLSH9XO3+uwRaQdi75oq=tyg at mail.gmail.com> you
>> >Quite often in a spec, I find myself writing something like this:
>> >A Frame MAY be either buffered or unbuffered...
>> >Frames are either buffered or unbuffered...
>> >Which is correct? I am thinking the second because it is not actually
>> >normative, it is by definition which is not the same thing.
>> I agree. It is a good idea to reread RFC 2119 every once in a while
>> to remember what the words mean.
>> MUST doesn't mean "do this or die", it means "do this if you want to
>> interoperate." MAY means there are different ways to do something all
>> of which will interoperate.
>> I find relatively few uses for MAY, but one of them would be "letters
>> in domain names MAY be in uppper or lower case."
> No. I thought that but actually it is wrong. You should have a MUST there.
> Applications MUST accept letters in domain names in either upper or lower
> case and treat these as equivalent.
> This only occurred to me earlier today. A MAY for a generating party turns
> into a MUST for the interpreter.
> rfc-interest mailing list
> rfc-interest at rfc-editor.org
More information about the rfc-interest