6 ms·
> SHOULD is a requirement. I once had a job where reading standards documents was my bread and butter. SHOULD is not a requirement. It is a recommendation. Fo
by BeetleB 9mo ago
> SHOULD is a requirement.
I once had a job where reading standards documents was my bread and butter.
SHOULD is not a requirement. It is a recommendation. For requirements they use SHALL.
My team was writing code that was safety related. Bad bugs could mean lives lost. We happily ignored a lot of SHOULDs and were open about it. We did it not because we had a good reason, but because it was convenient. We never justified it. Before our code could be released, everything was audited by a 3rd party auditor.
It's totally fine to ignore SHOULD.
- seb1204 9mo agoYes, except there seems to be a move on the best words from SHALL to MUST and from SHOULD to MAY. IANAL but I recall reading this in e.g. legal language guidance sites.
- aunderscored 9mo agoRFC language is expmicltly defined in 2119[0]. Any other interpretation is incorrect. [0] https://www.rfc-editor.org/rfc/rfc2119 https://www.rfc-editor.org/rfc/rfc2119
- Alive-in-2025 9mo agoThank you for that. So should is optional, people!
- sisve 9mo agoI think that is a bit to easy. MAY is described ar optional. SHOULD - Should really be there. It's not MUST, you can ignore it but do not come crying if your email is not delivered to some of your customers ! you should have though about that before.
- strken 9mo agoPulling exact quotes out, SHOULD means "there may exist valid reasons in particular circumstances to ignore a particular item" while MAY means "an item is truly optional." I don't think this can be interpreted as simply "should is optional".
- Dylan16807 9mo agoThey're both optional, but one comes attached to a big warning message.
- Arnt 9mo agoWell… yes… no… SHOULD means that you must either do the thing or understand the consequences of not doing it. That's not simply optional, the two options are to ① spend time on writing code and ② spend time on learning the consequences. Either way you need to think hard and spend time. And that's why the definition of SHOULD includes the word "must".
- zephen 9mo ago> So should is optional, people! Only once you have satisfied: > but the full implications must be understood and carefully weighed before choosing a different course. In other words, you better have a damn good reason for deciding not to do it. And (possibly even more to the point), you must decide not to do it, rather than simply throwing code at the wall until most emails make it through unscathed.
- dsl 9mo agoMaybe the standards documents you are used to differ from RFCs, but here is the official language: 3. 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. SHOULD is effectively REQUIRED unless it conflicts with another standards requirement or you have a very specific edge case.
- jcelerier 9mo agoI just don't understand how you get from the text you pasted to "required". Nowhere does it say that anything is effectively required. Words have meaning.
- zdragnar 9mo ago[flagged]
- shakna 9mo agoNo, its not a "required"... It means someone may have reasons not to use something, and so spec implementors need to allow for circumstances where it is not present. Those reasons can be anything. Legal, practical, technological, ideaological. You don't know. All you know is not using it is explicitly permitted.
- zephen 9mo ago> You don't know. All you know is not using it is explicitly permitted. In theory, if they are truly following the specification, you know they thought hard about all the consequences. I think the pushback in the comments comes from the commonsense feeling that this... didn't happen here.
- nosianu 9mo ago"permitted" is a pretty empty word in the given context. Because dropping such emails is equally "permitted". Sure, there will be no arrests made, but there will be consequences. And those are what this article is about.
- calvinmorrison 9mo agoEmail is about standards like browsers were about standards in 2017...
- useragent42 9mo agoBrowsers are still heavily standardized. Processes and organizations have evolved, but they still develop plenty of specifications and standards.
- cmsefton 9mo agoAgreed. We use RFC language at work for documents, and whenever I see someone using the word SHOULD, I always ask what is the MAY where you don't need to do the thing? If they can't think of one, then make it a MUST. SHOULD always means there are valid reasons to not do it.
- Arnt 9mo agoFYI slightly over 10% of RFCs contain at least one occurrence of SHALL. Even that small minority uses other words for most requirements.
- Foobar8568 9mo agoCould was yeah nice to have. Should, was yeah the system shall have it, but it's ok if not. Shall : ffs we will hunt you and kill you if you don't implement it.
- dodobirdlord 9mo agoAssuming we’re talking about RFC 2119, it’s important not to collapse the distinction between SHOULD and MAY, which is there for a reason. MAY elements are legitimately optional, SHOULD elements are there for a reason and are disregarded at one’s own risk. > 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. To validly disregard a SHOULD, you need to (a) fully understand the implications, and (b) accept them. Any time someone disregards a SHOULD and then complains about the result, they are necessarily in the wrong. Either they didn’t fully understand the implications, or they don’t actually accept them.