Comment by rzzzt

2 days ago

That's when you turn to the RFC2119 all-caps requirement levels!

> SHOULD — This word, or the adjective "RECOMMENDED", mean that there may exist valid reasons in particular circumstances to ignore a particular item, but the full implications must be understood and carefully weighed before choosing a different course.

You'll also need RFC 6919[1] for "OUGHT TO":

> The phrase "OUGHT TO" conveys an optimistic assertion of an implementation behavior that is clearly morally right, and thus does not require substantiation.

And the up-threads gut feel that "ought to" is slightly stronger comes across there, I think: ought to conveys that moral stance, where as "should" is more "there's a decision here, possibly".

[1]: https://www.rfc-editor.org/rfc/rfc6919.html; n.b., this is an April 1st RFC. I like it, though, and it isn't uncommon to see a stray "ought to" lacking a citation in a non-April-1st RFC.

  • My understanding is that they’re generally treated as homonyms in most cases but some philosophers like to use OUGHT in a moral sense and SHOULD as practical advice to achieve an OUGHT.

    Hence OUGHT leads to SHOULD and the latter is meaningless without the former.

    E.g.: You OUGHT to secure systems that handle sensitive customer data, so you SHOULD regularly patch your software.

    Just telling someone they should do something without an initial moral motivation to do the “right thing” can fall on deaf ears.

    I’ve seen an official patch management strategy in a government organisation that was simply: “Don’t”.

    Their moral argument was that they OUGHT to save taxpayer money and so they SHOULD save time, money, and effort by not applying updates (which they felt weren’t necessary for security).

    In other words: OUGHTs are like axioms that you can choose, and then the SHOULDs derive from them automatically.

What I find strange about RFC2119 is technically RFC8174 amends it, yet the amended text never seems to be used.

  • The amendment add verbiage which is irrelevant when the purpose for which it is being referenced is almost any purpose other than interpreting an RFC in which one or more of the specified words appear in lowercase in a place relevant to the interpretation.