The 'else' keyword is probably a literal translation from German (2020)
github.com91 points by theanonymousone 4 days ago
91 points by theanonymousone 4 days ago
The submitted title
> The 'else' keyword is probably a literal translation from German (2020)
is editorialised, inaccurate, and very misleading.
The actual title: “if … then … else had to be invented!”
And the content doesn’t say anything about it being a literal translation from German; rather:
> What they do say is that this document was originally written in German and hastily translated into English. I think a carefully-chosen German word was probably translated as an archaic English word and then never revisited.
Wild speculation, and definitely nothing about literality of translation.
As for the author’s description of it being archaic, well, I’d call that misleading too. Bare “else”, arguably (definitely not colloquial in most dialects), but as “or else”, perfectly current.
Seems perfectly reasonable to me that someone considered the options, decided “otherwise”, “or else” too wordy and confusing in its own way, and so settled on bare “else” as the best choice (which I think it is), not how people mostly speak, but perfectly legitimate, and concise.
(In other words: I think we’d have settled on “else” even without the possible German step. This too is speculation, of course.)
Else is a given name in Denmark (a variation of Elsa, I'm guessing). At university we had a professor with the surname True; so if he had a daughter, her name could've been Else True. We found that quite funny.
Else If would also be a possible name in Denmark.
But, according to Statistics Denmark[1], none of those combinations exists:
Women with the first name 'Else' 13,047 Men and women with the last name 'True' 166 No one has the name 'Else True'
Women with the first name 'Else' 13,047 Men and women with the last name 'If' 6 No one has the name 'Else If'
[1] https://www.dst.dk/en/Statistik/emner/borgere/navne/hvor-man...
Also in the English speaking world, but getting rare: Elsie.
I think most Elsies were originally Else, or had a mother or grandmother named it. In Germanic languages the final E is not silent as in English, so you have to spell it Elsie for English people to pronounce it approximately right when they read it off the page.
I don't know if the article writer is north American, or possibly not familiar with traditional/native English, else they would know they are completely wrong it not being English.
The author didn't say it was not English.
The author wrote: "I can't use "else" as a conjunction in normal speech, only in computer programs."
No doubt people use 'else' as a conjunction now, due to the influence of programming.
To show the author is completely wrong requires finding pre-1959 uses of 'else' in a conjunction.
It's always "or else" when used as a conjunction in modern English.
"Take your coat or else you'll regret it."
"Hurry or else you'll miss the bus."
Etc.
> if something is true, then do a thing, else do a different thing.
> That's just English, right? Except that it isn't
No, it is English, grammatically correct English. It's not idiomatic English but it's a perfectly fine sentence otherwise.
Idiomatic English would simply require adding an or
if(x)
do m
orelseif(y)
do n
orelse
do o
But of course a native English programmer would quickly recognize the or is redundant even if it is idiomatic, and drop it.> I think a carefully-chosen German word was probably translated as an archaic English word and then never revisited
This is a weird reach. Else isn't an archaic word.
"Eat your dinner or else."
"If you don't do it someone else will have to."
Plus all the "or else" conjunction examples.
It was probably chosen because it was shorter than "otherwise" and not for any other reason.
There were plenty of long English keywords in early computing: continue, dimension, equivalence, frequency, procedure etc. It seems it was mostly the Lisp folks who strictly shunned long keywords.
It is nor far-fetched to suppose else is a translated German word because that is exactly what happened. The only question is which German word was is it.
> because that is exactly what happened.
No, it's what the author claims to have happened. I am strongly disputing their thesis as spurious.
The only German that makes sense would be
wenn ... dann ... sonst
I don't know if the article writer is north American, or possibly not familiar with traditional/native English, else they would know they are completely wrong it not being English.
British PHP uses 'perchance ... otherwise':
- https://aloneonahill.com/blog/if-php-were-british/#:~:text=E...
‘Else’ is not commonly used in English today but the meaning does fit. From Webster’s (1913):
Else, adverb or conjunction
1. Besides; except that mentioned; in addition; as, nowhere else; no one else.
2. Otherwise; in the other, or the contrary, case; if the facts were different.
“For thou desirest not sacrifice; else would I give it.” – Ps. li. 16.
After ‘or’, else is sometimes used expletively, as simply noting an alternative. “Will you give thanks, … or else shall I?” – Shak.
You can also say "elsewise", which to me still sounds a little old school, but more natural than just using "else" like we do in programming languages.
It's almost tempting to reach for "elsewhen" or "elsewhy", since we have "elsewhere". But if saying "elsewise" feels like chatting with a very elderly relative, saying those ones feels more like a seance with distant ancestors. But apparently it used to be a thing!
https://en.wiktionary.org/wiki/elsewho#English
https://en.wiktionary.org/wiki/elsewhither#English
https://en.wiktionary.org/wiki/elsewhence#English
https://en.wiktionary.org/wiki/elsehow#English
https://en.wiktionary.org/wiki/elsewards#English
Else doesn't sound archaic to my ears.
"When you go shopping make sure to buy flour or else we won't be able to bake the cake"
"otherwise" is a more common word choice but "else" is definitely in the active vocabulary of modern English speakers.
"or else" is redundant. One can omit one word or the other and it still works.
> When you go shopping make sure to buy flour, or we won't be able to bake the cake.
> When you go shopping make sure to buy flour, else we won't be able to bake the cake.
EDIT: TIL: Dictionaries don't commonly define "else" as a conjunction, except for Wiktionary. Still sounds natural to my ears, so this is a surprise.
Except for the phrase "or else!"
I came here to say this.
I my head as a child I instantly understood and thought "Ahhh, they mean like 'OR else this happens.'
I have always assumed it was a boolean logic thing meant to help show that it wasn't an AND, but 'or' had already been used as a keyword so they did 'or else' and dropped the reserved 'or'.
> I can't use "else" as a conjunction in normal speech, only in computer programs.
sure you can. who's going to stop you?
Hurry up, else we'll be late. You'd better leave now, else you'll miss the bus. Do what I say, else there'll be trouble.
If the addressed person does not comply, you can also add "or else" in a threatening tone.
Such a funny movie.
Perhaps after the robot uprising... https://www.smbc-comics.com/comic/the-program
The modern universal keywords if, else, for and while are good because they are fairly short and thus quick to type.
"loop" can all be typed with one finger, as the letters are all together on the qwerty keyboard, and the "o" repeats itself.
"while" on qwerty is sort of a chore.
When you can touch-type, it's better to have keys spread to use separate fingers. That way, you divide up the work. You have one finger still lifting while the other's already starting the next press.
Try it. What's faster to type: one word with a total of 5 distinct letters, or one word with a total of 4 letters, three being distinct?
I understand the theory when writing, you know: sentences. Writing code ain't that. I'm also not typing on a model M. This laptop's keys press down like 1 or 2mm at most. You actually only need to press down twice -- just move your finger from "l" to the "o" depress/press again for another "o" and move right over to the "p".
Do you reprogram your keyboard so parentheses, square/angle brackets, etc can be typed with their respective hands? Naw. When people type numbers all day, are they delighted to use the row of numbers up top, or a numpad? Never have I ever.
Usually for speed and avoiding strain you want to incorporate as many fingers as possible. In fact it's a common mark against dvorak online that "ls -l" is all typed with the right pinky (not an issue in the workman layout luckily).
Also remember this was typed with typewriters. That gives its own set of constraints. It's quicker to type two different characters than the same character twice in a row, as you need to wait for the typebar to return enough.
w TAB in a properly configured emacs
Correct me if I'm wrong– I haven't check on THAT corpse– but couldn't you configure w TAB to be a shortcut for whatever you want (or make your own?).
Yes, otherwise is more natural but less terse.
We often write "otherwise" in mathematics:
https://arxiv.org/html/1501.05438v2#:~:text=otherwise,-%2C
https://arxiv.org/html/1302.5008v3#:~:text=otherwise
https://arxiv.org/html/1501.05438v2#:~:text=otherwise,-%2E
In fact, I think that's the most common alternative, not "else".
I'm writing some Crystal (which has Ruby-like syntax) and I'd add `unless` to the list. I like it!
"Unless" feels like adding come-from (next to goto) to a language. A statement/flow should not change its meaning after being declared/written IMHO.
edit: My criticism is for the suffix version to be clear. Unless / else is actually cool.
`destroy_world() if $angry;` is Perl syntax. And Python has `destroy_word() if angry else live_long_and_prosper()`.
(But it's not remotely like come-from.)
P.S. in re the other response, "unless" is "if not". "until" is "while not".
This guy better figure out how to use English, or else something bad will happen.
it was probably a rote translation of the German word ‘sonst’
Yes something like wenn…dann…sonst?
I remember I heard this structure at Uni at some point.
Das denke ich auch.
I found it strange (merkwürdig) that they didn’t mention this in the article.
Nice article.
Funny enough, even though I know if/then/else by heart for decades now, I also spent a few seconds comprehending that 1960 arrow diagram of ALGOL60...
I think the headline is nonsense.
I was going to mention the MAD language by Bernard Galler et. al. that used whenever/otherwise, which I encountered in a book in the local library back in the days when everyone was coming up with "structured" programming languages, but then I scrolled to the bottom of the article ...
I remember it felt odd when XSLT code provided "otherwise" instead of "else".
Don’t even get me started on “elif”
What about Kierkegaard?
He wrote Either/Or or Enten – Eller in Danish in 1843.
Else in Danish is Ellers.
I don't know if the article writer is north American, or possibly not familiar with traditional/native English, else they would know they are completely wrong it not being English.
If something were to be true, then foo.
Or if this other thing were to be true, then bar.
If it’s something else, then baz.
OR if is ambiguous, and wouldn't work like an 'else if' statement. I think you mean XOR.
No. English has used else to mean "otherwise" since before computers came along. Wiktionary offers this quote from Call of the Wild (1903):
"He had never seen dogs fight as these wolfish creatures fought, and his first experience taught him an unforgetable lesson. It is true, it was a vicarious experience, else he would not have lived to profit by it."
https://en.wiktionary.org/wiki/else#Conjunction
There's also "or else", as made famous in crime dramas: "Meet me by the docks at midnight. Bring the money. Come alone. No cops... or else!" But in other usage it can of course be followed by something. "He had to get to work on time, or else he might be fired."
"or else" is right in the second image, and it's clearly not "else".
Even if it hasn't been invented as the author claims, the question of who used it in code first is a valid one, right?
Some languages also have an "unless" keyword!
Perl also has "until" as the inverse of "while".
(It'll also let you use "unless ... else ..." - but please don't.)
Article states else is archiac English but later says someone called it ignorantly incorrect English and suggested using "or".
Ive always assumed it was effectively "otherwise" but shortened to "or else" -> "else".
Given the alternative to use "or" as the first pushback I feel that acts as confirmation. I prefer else because "or" has implications in boolean and bitwise logic that else doesn't.
Also, one thing that has been happening without much awareness in the history of computer languages: shorter identifiers win over long identifiers
Why not { } instead of begin and end?
def or fn over function/lambda (or just () => now)
Symbols are confusing at first but become practical after a bit
About TFA: Also 'if/or' would make people confuse logical or with bitwise or, so I guess that's why it was eschewed
Give up this mad idea, or else.
If ... then ... otherwise ...
Fixed!
what
> I can't use "else" as a conjunction in normal speech, only in computer programs.
Not true. Here's an example from 1876 in which "else" is used as a conjunction.
> My brother is poor, and I want to look as much like him as I can, else he may feel distant from me.
-- George Eliot ( https://www.victorianlondon.org/etexts/eliot/deronda-0047.sh... )
---
Here's an example of "if ... else" from the 1914 translation of Crime and Punishment ( https://en.wikisource.org/wiki/Crime_and_Punishment/Part_IV/... ):
> Perhaps it will all come back, but now if you love me, give me up . . . else I shall begin to hate you, I feel it.
> > Perhaps it will all come back, but now if you love me, give me up . . . else I shall begin to hate you, I feel it.
It’s not being used in the programming if-else sense here. He’s not saying “if you don’t love me, I shall begin to hate you”. He’s saying “if you don’t give me up, I shall begin to hate you”.
The English language origin is from programming if/then/else
Else can be found in English text prior to computer existence. Else can't be found in a German dictionary as a conjunction [1]. The first suggestion in Duden is the name for alder tree in lower German. Second suggestion is a firstname. If a word would come from German, it seems the first step would be to look up in a German dictionary.
While the look up for history of computer language is interesting, the conclusion is completely wrong.
The claim is that it is a literal translation, not that it is a loan word from German. Ie the Germans wrote their paper for this new control flow in German wenn/dann/sonst, then took their Langenscheidt and looked up "sonst".
I don't think the article author is concluding what you think they are.
The HN title reads "literal translation," which I didn't take to mean "literally".
The linked article doesn't really have a title. The article author states [...] "I think a carefully-chosen German word was probably translated as an archaic English word and then never revisited. Unfortunately we do not have the original German text to consult."