25

In Information Technology, the "RFC2119 standard" (not exactly standard, but it does not matter here) provides guidance for the use of some words: "must", "must not", "should", "should not", and "may". The definitions there are very clear and there is no ambiguity.

Then there is the word "shall" that is

used in laws, regulations, or directives to express what is mandatory

Is there any practical difference between "shall" and "must"?

I am not a native speaker of English and in my language (French) you have all kinds of acrobatic constructions to soften or graduate some concepts. This is even more pronounced in some Asian languages.

I wanted to understand if this is the case with "must" and "shall" (= if they mean the same, possibly with some sugar coating) - I do not care in the text I am writing is gentle or not, I just do not want to have any doubts about the coercive meaning (in case there would be, for a reason or another, a "shall").

I understand the formal/dictionary definition above (which clearly states "mandatory"), I am more interested in the "feeling" of these words for an English native speaker.

A practical example (following the comments and answers): "Users must use a password" vs "Users shall use a password". Is there any difference for a native speaker? Any nuance?

WoJ
  • 675
  • 1
  • 6
  • 13
  • I think it would be helpful if we also knew how RFC2119 defined *must*. Then we could point out the differences between the two. It's quite possible that *shall* merely means legally bound but I would first need to know what *must* meant. – EllieK - Don't support her May 20 '21 at 13:46
  • 2
    Context is extremely important, sometimes more important than the actual choice of words. If your friend says "You simply MUST try this new dessert" that's not a command or order, it's a friendly recommendation. It means "This new dessert is really good and if you don't try it you're missing out." On the other hand if your boss says "You WILL show up on time tomrrow or else!" changing WILL to MUST doesn't really alter the seriousness. – barbecue May 20 '21 at 13:53
  • @barbecue: I added a practical example to set the context – WoJ May 20 '21 at 13:56
  • Whenever ***shall*** appears in ***formal written instructions or specifications***, it ALWAYS implies ***mandatory*** actions or conditions. But note that this is a declining usage - learners should be prepared to read and understand, but ***not copy*** it (use ***must*** or some other phrasing that unmistakably conveys the sense of "compulsory"). – FumbleFingers May 20 '21 at 14:17
  • @FumbleFingers: *note that this is a declining usage*, ah indeed: https://books.google.com/ngrams/graph?content=shall%2Cmust&year_start=1800&year_end=2019&corpus=26&smoothing=3&direct_url=t1%3B%2Cshall%3B%2Cc0%3B.t1%3B%2Cmust%3B%2Cc0 – WoJ May 20 '21 at 14:28
  • 2
    For the specific usage we're looking at here (exemplified by legal documents and technical specifications), the extent to which ***shall*** has declined today is far more extreme than your "single-word" comparison would suggest. (So you really, *really, **really*** want to avoid it in your own writing! :) – FumbleFingers May 20 '21 at 14:41
  • @FumbleFingers: I don't like "shall" (for no reason, just that as non-native speaker of English its meaning bounced between "will have to" and others as I was learning English). I have, however, some people who will be coming with their docs bouncing on one hand and simultaneously doing splits to bring in SHALL so I want to be ready :) – WoJ May 20 '21 at 14:57
  • I think they are in virtually all cases, equivalent (and the answers cover virtually all of the ground I think), but the one usage that illustrates a difference between them is in the Lord of the Rings when Gandalf proclaims to the Balrog "You shall not pass," this conveys something different than if he had used "must" instead. – Yorik May 20 '21 at 15:31
  • Related: [difference between will and shall](https://ell.stackexchange.com/q/124164/9161) and [using shall mean must](https://ell.stackexchange.com/q/99763/9161) – ColleenV May 20 '21 at 15:31
  • 1
    @WoJ There is plenty of info about this topic on the 'Net and in text books/user guides. So, what research did you do? – BillJ May 20 '21 at 17:07
  • 1
    Apart from "first person questions" *(What **shall** I do? Where **shall** we go?)*, native speakers today very rarely use ***shall*** anyway (unless they're writing literature, legal texts, or technical documentation). And imho the safest / easiest option for *learners* is ***never*** to use it. – FumbleFingers May 20 '21 at 17:17
  • @BillJ: *So, what research did you do?* Did you take the opportunity to see the answers to realize that there is no clear consensus? I would be delighted if you have a source that explains **how a native speaker understands/feels** must vs shall. Obviously these would not be the hundreds of sites that explain what shall means (starting with the dictionaries). This is just to say that across the 72k and 10 years of SE I know I must do my homework :) – WoJ May 20 '21 at 17:28
  • @FumbleFingers One **always teaches** the use of **Shall I** and **Shall we** as a suggestion to do something for someone or to do something. That is a very important idiomatic usage. But otherwise, I agree with you, as I explained in my answer at great length, I might add. – Lambie May 20 '21 at 18:03
  • https://ell.stackexchange.com/questions/16832/what-is-difference-between-have-to-and-should/16893#16893 – James K May 20 '21 at 20:24
  • This was a kinda big thing during the garland SC appointment back a couple years ago. https://www.theatlantic.com/politics/archive/2016/05/senate-obama-merrick-garland-supreme-court-nominee/482733/ – eps May 21 '21 at 16:23
  • 1
    In the context here (specifications), _shall_ creates a requirement, as stated in several answers. Sometimes _must_ will also appear, in its mathematical sense - a consequence of the requirements - as an aid to the implementer. A simple made-up example: "The LOGIN command _shall_ be accepted at any time. (Since no other commands are accepted in the initial, unauthenticated, state, this must be the first command sent by the client.)" – Toby Speight May 22 '21 at 07:41
  • *Must* is to *compelled* as *shall* is to *required*. – Myridium May 22 '21 at 10:07
  • In everyday speech, there is no confusing them. Must is used all the time, and shall is not used to mean must there. Shall for must is **only legal or legalese**. – Lambie May 22 '21 at 13:53
  • In short: Americans use must use "Must", and English shall use "Shall", to denote the same thing: An obligatory action. – PcMan May 22 '21 at 20:23
  • @PcMan Wrong. Sorry. That is simply not true. – Lambie May 24 '21 at 14:48
  • @Lambie there are multiple american guides that demand that "must" be used, they state that "Shall" is archaic and imprecise. Among others, the language guides for state legislation and army contract language. In exactly the same role, there are guides in England that state the reverse, that "shall" is unambiguous, and the use of "must" is to be avoided in all official documentation as "must" is only an advisory, not a compulsory. Example, "That must be true" in England indicated only that the fact is *very likely* true, not certain. In America, that sentence means it better be true, or else! – PcMan May 24 '21 at 15:25
  • @PcMan If I say "I shall go tomorrow" it is not an obligatory action, not in the US, and not in England. As for the "must" ambiguity, that can be found in both varieties. – Lambie May 24 '21 at 15:49
  • @Lambie "**If I say "I shall go tomorrow" it is not an obligatory action, not in the US,**". my. point. exactly. The US, "shall" is a statement of vague intention to do something. To UK, it is a firm commitment. – PcMan Jun 02 '21 at 06:06

11 Answers11

19

In formal and technical language and traditionally in legal language, "shall" is used to express obligation and is no weaker than "must". In fact, in some cases it was formerly preferred to "must" (this may no longer be the case, or may be the case in very restricted scenarios).

In ordinary language, "shall" is sometimes (especially in the first person) simply an expression of the future (or a way of asking for suggestions in first-person interrogatives) - although "shall" is increasingly rare in American English, and even in British English is less used than it once was.

The US government's Plain Language Network advises:

Use “must” not “shall” to impose requirements. “Shall” is ambiguous, and rarely occurs in everyday conversation. The legal community is moving to a strong preference for “must” as the clearest way to express a requirement or obligation.

Surprisingly enough, US courts have ruled that "shall" can have multiple meanings even in a legal context, where it might be thought obvious that it ought to be interpreted in the traditional way.

By contrast, the Alberta Law Review noted in 1994 that "shall" was the preferred word and cited a Canadian legal scholar's view that...

Strictly speaking, ... Everyone must does not directly create a duty; it merely asserts the existence of a duty, however it may have been created. Thus, anyone can say that all motorists must drive on the right, because the legislature has said that they shall.... Hence, in directing commands to persons shall is better.

And:

In contracts and statutes "must" is traditionally used to state conditions of validity that do not directly impose a duty on anyone

But this view is out of date (in most jurisdictions, including Alberta) - to quote the US government's Plain Language Network again:

Australia and at least three Canadian provinces (British Columbia, Alberta and Manitoba) ... have amended their Interpretation Acts to say that “must” is to be interpreted [in legislation] as imperative.

In the UK, there is no suggestion as far as I know that legislative "shall" could be ambiguous, but its meaning is still considered less obvious to the average reader than "must", so the Office of the Parliamentary Counsel, in its guidance on drafting legislation, says:

Office policy is to avoid the use of the legislative “shall”. There may of course be exceptions. One reason for using “shall” might be where the text is being inserted into an Act that already uses it.

rjpond
  • 22,752
  • 2
  • 42
  • 76
  • 1
    Traditionally, another concern was that "must" as a command was too "strong" for the Sovereign/Government. https://www.justice.gc.ca/eng/rp-pr/csj-sjc/legis-redact/legistics/p1p8.html – xngtng May 20 '21 at 14:44
  • This was a part of the garland SC appointment debate: https://www.theatlantic.com/politics/archive/2016/05/senate-obama-merrick-garland-supreme-court-nominee/482733/ – eps May 21 '21 at 16:24
  • 3
    "Thus, anyone can say that all motorists must drive on the right, because the legislature has said that they shall" strikes me as funny, because to me it could just as easily be phrased "Thus, anyone can say that all motorists shall drive on the right, because the legislature has said that they must" and mean the exact same thing. Interesting that these words seem to have had so much regional variation. – Darren Ringer May 21 '21 at 16:34
8

The first thing to note is that language used in specific fields such as Information Technology is jargon, and does not necessarily carry the same meaning as dictionary definitions of the words. Your document is defining these words specifically as they apply to the RFC process which is part of the ITIL methodology. I will address the English meaning of the words first, then return to your stated context.

In English grammar, "must" denotes compulsion. If you must do something, it means you are expected to, required to, or compelled to.

"Shall" is just a more formal way of saying "will", only used when the subject is "I" or "we" (ie "you will", "we shall"). It does not carry the same inference of compulsion.

For example, "I will go to the store tomorrow" is just a statement of intention; whereas "I must go to the store tomorrow" infers that you have a purpose or a reason why going tomorrow is important.

Having said that, orders made with "will" or "shall" (for example, "you will clean your room!") could be said to mean that you must carry out the order.

The meaning of these words as set out in your document is not meant to override the dictionary definitions of the words, and the scope of these definitions is limited to RFCs in ITIL methodology. The purpose of defining the words is so that they can be used to clearly indicate requirement levels associated with each element of the request for change. There are many other words used in ITIL which have specific meanings in the process and do not match their English language counterparts. The example I always cite is "unresolved", which in incident management means to reverse the process of marking a ticket as resolved. Of course, in English, "unresolved" means that something has never been resolved. In short, don't be surprised if jargon in a field of business does not make grammatical sense.

Astralbee
  • 85,169
  • 1
  • 93
  • 179
  • 1
    I think the OP is referring to definitions specific to RFC2119. – EllieK - Don't support her May 20 '21 at 13:48
  • 3
    @EllieK: well actually RFC2119 puts MUST and SHALL at the same level. I wanted to understand if for a native speaker there is a nuance between them (would someone who does not know RFC2119 see a difference between these words?) – WoJ May 20 '21 at 13:54
  • @EllieK That's not how I understood the question. The document lays out definitions of these words in relation to the limited use of them within RFCs. This is more in the realm of *business jargon* than English grammar. The OP actually asks for *practical differences* which is why I've given real-life examples. – Astralbee May 20 '21 at 13:56
  • @Astralbee: this is correct. In order to set some context, I added an example that is indeed business-oriented. – WoJ May 20 '21 at 13:58
  • @woj I've added a bit more detail to my answer based on my own experience working in this field. – Astralbee May 20 '21 at 14:02
  • *In short, don't be surprised if jargon in a field of business does not make grammatical sense.* yes, I am absolutely aware after 25 years in said field :). It is just that I may end up with some SHALLs, which are formally MUSTs, and despite the fact that everyone is expected to know the rule (MUST=SHALL) I am curious if, when whipped^H^H^H^H^H asked, they will say that shall implies that they are, well, somehow expected to do this and that but maybe not that fast and with a lesser priority, yada yada yada (it will not matter that much because the Word Is The Law (TM) but still) – WoJ May 20 '21 at 14:08
  • 1
    The explanation on Grammar Monster https://www.grammar-monster.com/easily_confused/shall_will.htm agrees with what I was taught in school. That is, I/we shall and you/he/she/they will are predictions but I/we will and you/he/she/they shall express determination or possibly compulsion. – Peter May 20 '21 at 14:18
  • 1
    This answer *must* be right -- I read it on the Internet. – Barmar May 21 '21 at 00:01
  • 4
    Shall is an imperative. It is a directive/command. "Must" describes the existence of a command. Shall *is* the command. – David May 21 '21 at 00:25
  • ‘RFC° is ‘request for comments’, not ‘request for change’. – Austin Hemmelgarn May 21 '21 at 11:30
  • 1
    @David ‘Shall’ is only sometimes an imperative, just like ‘will’ is only sometimes an imperative. And ‘must’ _can_ be an imperative depending on context. – Austin Hemmelgarn May 21 '21 at 11:32
  • "the RFC process which is part of the ITIL methodology" I believe that the RFC publications predate ITIL by at least a decade. RFC1 (https://datatracker.ietf.org/doc/html/rfc1) is dated "7 April 1969", for example. – kelvin May 21 '21 at 21:06
  • @kelvin very possibly, but this question was asked yesterday, not in 1969. If you're working in ICT today and using RFC process, it's probably been lifted from ITIL. In any case, I only mentioned ITIL because I used an example of jargon from one its other processes. It doesn't have any bearing on my answer, overall. – Astralbee May 21 '21 at 22:02
  • @Astralbee "very possibly, but this question was asked yesterday, not in 1969." The IETF has been publishing RFCs for decades and continues actively doing so to this very day. – kelvin May 22 '21 at 01:22
  • @Astralbee "If you're working in ICT today and using RFC process, it's probably been lifted from ITIL." The thing is, OP mentioned an IETF RFC specifically (and not e.g.: RFC processes as a concept), but the way it's worded on the answer makes it seem like "IETF RFCs are a part of ITIL", rather than "ITIL recommends using the concept of RFCs" (i.e.: "is-a" vs "has-a"), which is confusing because the IETF bears no relation to the entity which came up with ITIL AFAIK. – kelvin May 22 '21 at 01:22
  • @Astralbee I have worked in IT for years and this is the first time that I've ever heard of RFCs in relation to ITIL (which is something rather alien to software development teams IME). 99% of the time "RFC" means an IETF RFC, especially since a wide variety of very widely-used networking and security-related standards are published on it. When that's not the case, it's usually some software ecosystem (e.g.: a programming language) that copied the process over from the IETF. – kelvin May 22 '21 at 01:25
  • 'only used when the subject is "I" or "we"' - I don't believe this is true? For example "You shall go to the ball", "You shall not pass". – snakecharmerb May 22 '21 at 09:31
  • 1
    @AustinHemmelgarn For all intents and purposes, you can replace *X shall* with *It is my/our decision/we will ensure that X will*. In other words, the reason things will happen the way the speaker describes is the speaker's will. It is only logical then, that *shall* is not imperative when used in the 1st person, and imperative in most other contexts. I hope I'm making sense – crizzis May 22 '21 at 20:15
  • This answer misses the key point, that _shall_ means something different in the second and third persons from what it means in the first person. – Dawood ibn Kareem May 23 '21 at 20:17
6

Here is the basic difference, native speaker-wise:

As found in orders or instructions, in formal language, including technical language. must is to have to do, but more formal.

  • All students must enter the gym through the side door this week.
  • Lever B must be upright before the door is closed.
  • Applications must be filed before June 2nd.

Shall is no longer used in sentences like the ones above to signal an order or instructions.

Must here in French is devoir or Il faut que etc.

As found in everyday language where one person tells another they have to do something. To have to do something = semantically, must do something.

  • You must go back to the office now or your boss will find out your are out.

  • You have to go back to the office now or your boss will find out you are out.

  • We must finish this job by 5 o'clock.

  • We have to finish this job by 5 o'clock.

  • He must do it immediately, mustn't he?

  • He has to do it immediately, doesn't he? [has got to do it, hasn't he]

  • Must you keep doing that?

  • Do you have to keep doing that?

In this sense, must and shall are not related.

past tense: He must have seen the dog run out the door. [devoir avoir + participe passé]

In legal language, shall is still used to express a binding obligation in a contract or treaty or those kinds of documents and contexts, and must would never be used there in a contract or treaty. Must is not much used in contracts, though, of course, it might be. That said, shall in contract means must in everyday language:

  • The parties shall meet once a week for the first six months of operation.

Here is an example of a treaty between the US and Turkey where it is used 58 times.

international investment treaty

It is discouraged now by some legal writers. In any event, it just means will or imposes an obligation, depending on context, and here is a technical legal discussion about that, which is not super relevant here:

shall, will and consistent legal writing [French documents usually use the present tense even when expressing obligation]

Everyday language: Traditionally, an intention to do something was usually expressed by: shall and will, shall for the 1st person singular and plural, and will for the other person**s. And in that sense, will can replace all shalls.

Please note: The Brits do tend to use it quite a bit this way, and in general, "Shall I" or "Shall we"" is used to offer to do something for someone in both "BrE" and "AmE".

  • I shall [intend to leave] leave at 2 o'clock today unlike other days. They will leave [intend to leave] at 5 o'clock. [future in French and has the same feel of formality.]

  • Shall I leave the door open when I leave? [Yes, please do, No, etc.] [Voulez-vous que je laisee, etc. pour rendre service]

This last use of shall to offer to do something is very idiomatic and the answers to it vary and are also idiomatic:

  • Shall we go now? Yes, let's do.
  • Shall I open the window? Yes, please do.

In AmE, will has mostly replaced any use of shall in everyday conversation (except the usage given above). But not necessarily in formal contexts. ["Shall we leave it at that?" Also, the contracted forms are very used: You'll, we'll, etc. "Shall" is no longer used much to express an obligation in everyday speech:

  • You shall arrive on time every day. [that would be an order and is old-fashioned]

Summary:

-Must expresses an obligation in everyday usage.

  • shall is a special case in legal language. (consistency rule: shall versus will)

  • shall is either first person singular/plural for future intention in everyday usage: I shall do that work later.) Often used to offer to do something for someone or to make a suggestion about a situation: Shall we leave now? where "will" cannot be used. That use of shall in French is future or expressed as a future.

In everyday language, there should be no reason to confuse the use of must (obligation) and shall (suggestion or offer to do something, used in the first person singular and plural, mostly as a question).

  • You must leave now! = Il faut que tu partes maintenant.
  • Shall I open the window? = Voulez-vous que j'ouvre la fenêtre?
  • Shall we go? = Partons(-nous)?
  • You shall do it now. [désuet, en anglais] = Tu le finiras.
  • You shall do it now. an order, in modern speech has become: You will do it now.

The only confusion between the two might possibly arise in legal language because in everyday language, the old-fashioned use of shall as in: "I say he shall go tomorrow"!, an order, which is the same as: I say he must go tomorrow!, is no longer commonly used in English. Even when expressing intention, will has mostly replaced shall ("I shall do it tomorrow" has become "I'll do it tomorrow") except for certain speakers who seem to love their "I shalls": "We shall finish this discussion in the morning. It's late." And that in French is a future tense.

Lambie
  • 39,020
  • 3
  • 29
  • 84
  • "All students must enter the gym..." is ambiguous. Does it mean "Every student is required to enter the gym this week, and must enter using the side door" or "Students who enter the gym this week must use the side door, but entering the gym is not compulsory" ?? – alephzero May 21 '21 at 03:39
  • @alephzero: I don't think it's ambiguous. Your first interpretation would match "All students must enter the gym this week, through the side door." But that comma is not optional there. The presence of the comma disambiguates the two meanings. – MSalters May 21 '21 at 11:02
  • ah, so you really meant "All students must enter the gym **only** through the side door this week." not creating a compulsion to enter the gym only a restriction on the method of doing so, – Jasen May 23 '21 at 01:32
4

English has a lot of inherent ambiguity, context matters a lot, and there may not be one single correct answer to a question. In general speech, you will need to rely on context to determine what's meant.

In the case of an official document such as an RFC, legal contract, or policies and procedures, and so forth, these terms are often defined in the documents themselves or in related documents, and in most cases, SHALL means the same thing as MUST, a mandatory requirement. This is a formal rule for a specific type of writing, not a general English language rule.

For example, in ISO standards writing, SHALL means a mandatory requirement. ANSI standards also use SHALL for mandatory requirements, but actually goes further and states that MUST is unacceptable, and only SHALL should be used.

In short, for specific business and legal documents, you need to know the specific definitions used in those contexts in order to determine what is meant.

It's sort of like programming, where a common word is assigned a very specific meaning in that context which is different from the usual meaning in spoken or written English.

barbecue
  • 1,271
  • 12
  • 16
  • Interesting point about ANSI, thanks. I wonder where their "universal" knowledge comes from, though - NIST does not agree, neither UK IS frameworks, or OWASP to take a few. – WoJ May 20 '21 at 14:53
  • Yes, it's a bit strange, but since it's their own system, they get to make the rules. The whole point is there's not a single correct answer, you need to look at the context. Many organizations have their own style guides, and if you're writing for a specific audience, you should try to use the styles that audience prefers. – barbecue May 20 '21 at 15:04
  • This is the answer wrt standards (and formal requirements, e.g. in aerospace). wrt RFC2119's use of "must", the questioner's comment "not exactly standard, but it does not matter here" says it all, really. – user_1818839 May 21 '21 at 14:15
  • 1
    It's hilarious that the ANSI requirement is summarized as "....only shall should be used..." rather than "...only 'shall' shall be used" -- not following its own advice. – user8356 May 21 '21 at 19:15
4

Rather than duplicate some of the other detailed answers, a word swap illustration may help.

Compare the memorable quote "You shall not pass!" to the lamer "You must not pass!"

"Must" is weaker here, and implies the speaker's logically valid belief that it would be undesirable or unfortunate or impossible for the addressee to proceed further. It doesn't necessarily imply that the speaker would, or even can, do anything.

"Shall" is stronger, (or strongest, no other single English word is stronger here), and implies not just the speaker's logically valid belief, but the speaker's potential resolve to see that belief through. It suggests that if the addressee won't stop or fall back, then there will be a sufficient opposition either by nature or circumstance, perhaps guided or directed by some action of the speaker or the speaker's corporeal or supernatural allies.

(In practice, "shall" is more often spoken with more volume or force than "must".)

agc
  • 437
  • 4
  • 11
  • A computer language metaphor: "shall" is more of a compile-time (or even meta-compiler) word, whereas "must" is more of a run-time conditional word. In many computer languages it's possible and even common to program without ever using a compiler word -- similarly in English it's possible and common enough to get by without ever using "compile time" English terms. – agc May 21 '21 at 02:57
  • "You shall not pass!" only appears to be stronger because we [hear Ian McKellen's voice](https://www.youtube.com/watch?v=YZf0Q-v3u-k) Intonation is Prince, in language. – Mari-Lou A May 23 '21 at 09:20
  • I like your example, but I think I'd interpret the issue not as one of weakness, but one of direction. Saying "You must not pass" directs the person being addressed to refrain from passing, while "You shall not pass" is a statement that the universe has an obligation to prevent the person from passing. – supercat May 23 '21 at 19:04
  • @Mari-LouA, Re *"...only appears to be stronger..."*: Perhaps someone can use deepfake software to tweak that video so Ian McKellen says "must" instead of "shall" with the same intonation -- but I doubt it would satisfy... – agc May 24 '21 at 02:42
2

As a native English speaker, my understanding of the word "shall" in non-question conversational statements is that it indicates an expression of intent or strong predictive expectation. I do not recall ever seeing it defined as imposing a requirement or obligation. In any case, it is rarely used.

"Must" in most cases either creates or states the existence of a requirement or obligation. Whether the requirement is newly created or pre-existing depends on context. "Must" can also be used to emphasize a strong recommendation.

Douglas
  • 257
  • 1
  • 4
  • 3
    Re *" I do not recall ever seeing it defined as imposing a requirement or obligation"*: See Bill of Rights -- "Congress **shall** make no law..." – agc May 21 '21 at 02:34
2

The difference outside of formal requirement-specification or legal environments is subtle, but that subtlety carries significance.

In order to drive a car you must start the engine, and you must take the car out of park and put it in gear.

If you ignore those, it really is impossible to drive a car. You might be able to roll down a hill, but you won't be able to go up hills, and you really won't be able to get anywhere you want to go unless "where you want to go" happens to be the bottom of the hill.

Once you have started the engine and taken the car out of park, there are still some "musts", e.g. for gasoline engines you must periodically add fuel, for electric engines you must have charged batteries, but now there are also a bunch of "shalls" that have zero meaning if the car is not started and taken out of park, but are critical unless you really want to have accidents or really want to get into legal trouble.

Unless you are "off-roading", you --

  • shall drive on the proper side of the road.
  • shall follow the laws of the road.
  • shall take defensive action when a collision appears about to happen.

Lots of others. They really are not "musts" because you can drive a car without doing them, but if you do, bad things might happen, none of which will happen without starting the car and taking it out of park and putting it in gear.

1

No, there is no difference.

I will not go into generic everyday language issues, or the usage in other fields like laws, but from both the aspect of the RFC you quoted (which deftly defines SHALL and REQUIRED as equal to MUST), as well as practical use in the IT world in my experience, SHALL/MUST/REQUIRED mean exactly the same. They all mean that a sentence using these words specifies an absolute requirement.

Looking at that RFC, this is not the only case where multiple words are defined to be the same: SHOULD vs RECOMMEND, MAY vs OPTIONAL. MUST/SHALL is the only case where two verbs are specified with the same meaning - presumably because there were plenty of RFCs before the creation of RFC2119 which used those words interchangeably. The acknowledge this in chapter 8 of the RFC:

The definitions of these terms are an amalgam of definitions taken from a number of RFCs.

AnoE
  • 111
  • 1
  • I agree that in the RFC they're exact synonyms, although the OP seemed interested in the broader question of "the 'feeling' of these words for an English native speaker". – rjpond May 21 '21 at 15:52
1

"You must not do this" implies that something should not be done because of bad consequences. "You shall not do this" implies that something should not be done because of the speaker's authority. There is some overlap but still a distinctive difference in meaning.

The KJV bible's commandment section is full of "thou shalt" and "thou shalt not" because it does not convey rules but commandments. While a modern reading of a lot of kosher/non-kosher distinctions and commandments conveys hygienic and health reasons, the science of the day was not sufficient for formulating a hard cause/consequence relationship. The commandments answer the "but why?" question essentially with "because I say so". Hence the use of "shalt/shalt not".

When the subject is first person ("I"/"we"), the difference is more marked: "I shall do this" strongly conveys a personal intent to go through with some act while "I must do this" conveys feeling compelled to go through with it.

Eddie Kal
  • 18,658
  • 26
  • 80
  • 165
user136366
  • 11
  • 1
0

In everyday English, I’d be more likely to use must if someone is being compelled to do something by force. I often use it when it’s not me who’s making the other person do something. “You must pay your taxes,” is a statement that you have no choice, but I’m not necessarily saying that I will be the one to make you do it, or that I approve. It’s common to follow a “must” clause with an “or” clause, stating the consequence of disobeying: “You must pay your taxes, or you will go to jail.”

Shall reads to me as a formal way of making a rule that I expect to be followed. “All employees shall submit expense reports,” is me making or invoking a rule, but not saying anything about enforcement. I wouldn’t use shall to make a specific request or tell one person what to do one time; shall is used for policies or rules.

I more often give a direct order with will, although, depending on context, that might mean something different. “You will send me a copy,” could mean that I’m ordering you, confirming what you agreed to do, or merely predicting your actions.

In technical writing, these words are used differently. Other answers have covered that very well. Even though the usages overlap, you would use must for requirements that are forced by some external constraint. So, for example, “All eight-bit unsigned values must be between 0 and 255.” The word shall would not make sense there, because the rule is impossible to break. On the other hand, “This value shall be between 0 and 100,” implies that it’s a choice I made. “This value must be between 0 and 100,” is something I’d be more likely to say if bad things would happen otherwise: “The value must be between 0 and 100, or the result of the calculation will be out of range.”

In nineteenth-century English grammar, which you’ll still find in some old books, there was a more complicated rule. The future tense was formed with the auxiliary verb, “I shall, we shall, you will, she/he/it will, they will.” Switching this, by saying, “I will” or “You shall” was in theory more emphatic, and expressed my determination to make something happen. Formal writing sometimes went along with this, but that was not how people spoke. There was a joke in the late 1800s that a grammarian was walking by a lake, and heard a young boy shout, “Oh no! I will drown, and no one shall save me!” The grammarian said, “Very well then, have it your way,” and walked off.

Davislor
  • 6,333
  • 8
  • 34
0

The differences are only in emphasis; nominally both must and shall express a mandatory rule, as the definition in RFC2119 says.

Traditionally, shall implied the power to define reality. An emperor would not simply utter a wish or an order; he would describe the future reality, because he had absolute power. For example, the Mexican emperor's ruling stated "the sentence shall be executed within twenty-four hours". The only answer was "consider it done".

In modern times such a decree is issued by a judge or, as here, by a technical regulation. Neither can, to the same degree, define reality; but they have uncontested power to define regulations.

Therefore, in modern use the emphasis of shall is that it creates a requirement for compliance with a regulation. For example, in the C++ standard draft we find the sentence "a conforming implementation shall [...] accept and correctly execute that program." The C++ committee issues a decree, very much like an emperor: It defines a future reality, in its limited domain. Each conforming implementation shall (as in a future action) do that because if it didn't, it would not be conformant. It's a little less clear in legalese like "both parties shall try to settle the dispute": This is the behavior defined by decree in this contract. If they don't, they are in violation (not conformant, so to speak).

Interestingly, because the modern institutions, including ISO standardization committies, are democratic by nature, this modern use of shall is a bit more of an agreement than a simple must. A contract has been signed by both parties. A C++ implementation author decided that it should be conformant, etc.

Must, by contrast, is neutral: It can be mandatory for any number of reasons, including forces of nature. It is not necessarily a decree.

  • A problem with *shall* in technical constructs is that it is not always clear to who bears the responsibility of ensuring that something happens. For example, the means an implementation uses to convert pointers to integers or vice versa, but a pointer formed by round-trip conversion "shall" compare equal to the original. Does that mean that the implementation is required to define its means of conversion such that the statement would be true for all possible pointers that could be converted, or that behavior would only be defined if a program refrains from... – supercat May 23 '21 at 19:08
  • ...comparing a round-tripped pointer to the original in any cases where they wouldn't happen to match? I think the intention is the former, but since the C Standard uses passive-voice "shall" to describe both behavioral guarantees implementations must honor and impose conditions upon when programs can perform certain actions, the mixed usage leads to ambiguity. – supercat May 23 '21 at 19:10
  • @supercat No, I think the duty lies with the conforming implementation. You do X, and according to this standard the result is Y, by *fiat.* There is no discussion, not even a rule: It is a stated fact for all conforming implementations, not more, not less. Hence the (semantic) "passive": Nobody is required to do anything particular, we are simply describing the future ;-). – Peter - Reinstate Monica May 23 '21 at 19:51
  • Some other parts of the Standard use the passive voice to imply constraints on what a program may do, and impose no requirements on how an implementation behaves if the program violates such a constraint. – supercat May 23 '21 at 20:10
  • @supercat Yes of course: "No conforming program shall... " -- equally clear. But one can probably use a true passive and create an ambiguity. We'd have to discuss specific examples. – Peter - Reinstate Monica May 23 '21 at 20:12
  • @supercat By the way, I think that all such ambiguities (an invented "not two pointers shall compare equal" or such, where the responsibility is unclear) would equally occur with "must", wouldn't they? – Peter - Reinstate Monica May 23 '21 at 20:20
  • How about the part that underlies an absurd amount of controversy: "An object shall have its stored value accessed only by an lvalue expression that has one of the following types"? It seems intended as a constraint, but the passive voice construction and the fact that, if upheld literally, it would make the language almost useless since modifying an object entails accessing it, but lvalue expressions cannot not, themselves, modify objects. The verb "must" generally requires as its subject the entity upon which an obligation is being imparted. – supercat May 23 '21 at 20:22
  • @supercat "... must only be accessed" works very well, doesn't it? – Peter - Reinstate Monica May 23 '21 at 20:24
  • Otherwise, when describing the meaning of a language construct, there's no need for any helper verb. If the intention is that round-tripping a pointer yields a pointer equivalent to the original, simply say that a pointer formed by round-tripping a pointer through intptr_t or uintptr_t *is* equivalent to the original. Note, btw, that the present formulation doesn't require that round-trips yield pointers that are useful for anything. Given e.g. `int arr[5][2];`, the pointers values `arr[0]+2` and `arr[1]+0` will compare equal, but are not equivalent. – supercat May 23 '21 at 20:28
  • If code were to e.g. try to access the lvalue expression `*(int*)(uintptr_t)(arr[1]+0)`, a compiler could replace the pointer value with `arr[0]+2`, since that pointer would compare equal to the original `arr[1]+0` even though attempting to access `*(arr[0]+2)` would invoke Undefined Behavior. – supercat May 23 '21 at 20:31
  • Interestingly, the Standard's use of shall is "nonstandard" in another way: constraints only apply. in the conventional sense, to *strictly conforming* programs. The fact that a program violates a constraint does not imply that it is not conforming--it merely means that the Standard waives jurisdiction over what conforming implementations would be required to do with it. – supercat May 23 '21 at 20:33