My Opinion on Spelling Run Time vs. Run-time vs. Runtime
41 points by rbr
41 points by rbr
This reminds me of another one: "setup" vs "set up". They have a different rhythm, and "set up" feels more verb-like while "setup" feels more noun- or adjective-like:
This one has a clear rule, and it's what you say. In cases like this the one-word version is a noun, and the two word version is a verbal phrase. See also "log-on/logon" versus "log on", "write-up/writeup" versus "write up", etc. (That said, people definitely confuse these pairings all the time, enough that it can make you doubt yourself.)
I'm not the only one! I think a lot of non-native speakers get this wrong, which is fair because it's quite a subtle point if it's not your first language, why are these words glued together only sometimes?. But reading "Here is how you setup the machine" makes my stomach backflip. This kind of compound noun is always a noun.
I don’t think that’s the split. Native speakers get these (and, especially, login versus log in) wrong a lot. It seems to be easier if you come from a language where they’re different terms that are not homophones.
Microsoft manages to get both setup and login wrong (using the noun form where they need a verb) in their installer for Windows.
Phrasal verbs like "set up" are Germanic (note the detached preposition [1]), Romance terms like "project", "conduct", "record", "object" etc. (note the prefixes) stress the first syllable for nouns and the second for verbs.
[1] "particle", historically a prefix. In German and Dutch (as well as Hungarian), prefixes detach to the end in some contexts which became the default in English. Sometimes English preserves both forms like "keep up" and "upkeep", "stand out" and "outstanding".
Yes, separable verbs is a feature of Germanic languages. All Germanic languages, but English has forgotten how to use them: In every other Germanic language, it holds that the wordclass of a compound word is that of its stem. So to make a compound verb, it must end on a verb. Meaning that whatever else must be the prefix:
You can more or less use these in English too, but only English allows concatenating words in the wrong order, as in "setup", "login", "passer-by", etc. Or randomly concatenate words when not using them as compounds, like "swim underwater", "sleep overnight". Actually, I think that's an error in English too, but a common one.
Shouldn't it be "set up instructions" then? Like how "operating instructions" is a correct usage. But I guess "operation instructions" does not sound wrong either.
I've been using this exact distinction for a while now. Since Korean, my native language, has distinct terms for the system (런타임), the point in time (實行時), and the duration (實行時間), using a single spelling for all three in English always felt a bit blurry to me. This spelling convention helps bridge that gap and makes technical writing much more precise.
We also have words that make this distinction in English: period, moment, instant and so on.
Maybe we should be saying: run period, run moment, and execution environment.
Oh, that's cool. English is such a messy language (though maybe that's a bit hypocritical coming from a native Dutch speaker.)
My experience learning Japanese was that anything that's one word but multiple concepts in English are multiple words (rights of man vs right and left) and lots of concepts get split in ways you don't expect (open a Western door vs. open a sliding door), but also they have their own words that collect a lot of seemingly random bits and bobs (kakeru: hang, put, place, lay, stand, splash, trap, tie, span, turn on, wear, sit, call, spend, take, multiply).
Run-time: use the moment meaning, but only when used in the adjective position.
This feels right because the hyphen is for grouping: it has higher "operator precedence" than a space. When "run time" is a noun you don't need the extra grouping:
When it's modifying another word you want "run-time" to stick together more tightly:
This is quite close to the definitions I use:
For example, the Objective-C runtime is the run-time library that supports the operation of Objective-C code at run time.
My copy editor gave up and just highlighted every use of any of the three and asked me to check.
I prefer no spaces like in German and long thought hyphens were dumb, but eventually enough lisp influence made me start hyphenating words, occasionally.
In german its the same, laufzeit is runtime and you can say zur laufzeit (at runtime) to both all of these
Oh no. So for the "Java runtime v21" in German you also say "Java laufzeit v21"? Mentally translating that to Dutch that makes no sense to me ("looptijd", time to walk). But to be fair I don't even know what the translation is for runtime in Dutch. Probably we'd just use runtime too.
I don’t know for German and Dutch but I can tell that the official French translation for “Java Runtime v21” is “Java Runtime v21”. Or, “JRE 21” (pronounced “j’y ère euh vingt-et-un”, of course).
In theory we can write “l’environnement d’exécution Java v21” but this quite verbose. It’s the formula used on the Wikipedia page but not so much in practice IMO.
Yes we say java laufzeitumgebung, which is java runtime env, but some do shorten it to simply java laufzeit, which literally means java walk time
java laufzeit, which literally means java walk time
Na, na, na! Java walk time would be the Java Gehzeit. (And a slow JRE would be the Schlafensgehzeit.)
This didn't cover the kind of "run-time" that is in contrast to "compile-time", and I don't think I'm consistent even with "compile-time" vs "compile time".
Regarding your second point: that still annoys me. Ideally I'd use "run-time" uniquely for the moment meaning, and run time uniquely for the duration meaning. But from what I've seen when skimming some style guides, hyphenation seems to be reserved for adjectives. So using hyphenation specifically for a noun seems irregular, even though it feels natural for all the *-time words.
I'd be interested to hear if anyone, maybe a native US/UK speaker, could weigh in on this. I have a hard time thinking of words with similar shades of nuance such as runtime (though I expect that once you find two examples, you won't be able to stop seeing them.)
I'm a native speaker of US English. Hyphens are more commonly used for adjectives, e.g. "well-known", but are still used for nouns to to make a compound word. The hyphen in "run-time"/"compile-time" makes "run"/"compile" feel like an adjective on "time", but specifically an adjective that changes the nature of the word into a compound word. Contrast "heavy metal" and "heavy-metal"; the former could be either any kind of metal that is heavy or a term of art, but the latter is almost definitely a term of art.
The difference between and unhyphenated compound and a hyphenated compound is often simply how standard the compound is, so there is a tendency for hyphenated compounds to become unhyphenated over time (e-mail -> email, re-attach -> reattach). This makes hyphenated compounds feel more "ad-hoc" or flexible. "Run-time" lightly implies the existence of other "-times", while "runtime" does not imply this.
It's all good fun until some develops an input method editor called Runt, then we'll have RuntIME too.
The great thing about being a native English speaker of something other than American English is that the same word can (and will) mean many different things, sometimes complete opposites. And this is language working exactly as it should.