Talk:2200: Unreachable State

Explain xkcd: It's 'cause you're dumb.
Jump to: navigation, search

When I tried to go here originally, it was unreachable. 162.158.107.61 03:54, 11 September 2019 (UTC)

Yes that was really a funny coincidence, although it lasted a bit too long. --Kynde (talk) 09:37, 11 September 2019 (UTC)
Any relation to the user database breach & DDOS attacks that hit some other xkcd community this week?ProphetZarquon (talk) 15:00, 11 September 2019 (UTC)

Nothing about the comic suggests a website. it looks more like the error message of a program. also, i don't think CB is typing it, just reading. 172.68.50.124 06:20, 11 September 2019 (UTC)

Im positive you are right, Cueball's hands are hovering over the keyboard while he reads this message. The caption is a note to programers not to leave this kind of message to users by writing them when tired. I will correct the explanation and the transcript. --Kynde (talk) 09:45, 11 September 2019 (UTC)
"Can't happen"

This comic is not about "a problem that the programmers did not anticipate", but rather a situation that the programmer rules out as impossible, which is technically called "Can't happen" or "Impossible Error" in the hacker/programmer's jargon. See http://catb.org/jargon/html/C/can-t-happen.html

For example:

for ($i=1;$i<=5;++$i) {echo $i." - ";}
if ($i<10) {echo "Bye!";} else {echo "Can't happen!";}

ElfQrin (talk) 07:14, 11 September 2019 (UTC)

Also it helps not to be too cute even with impossible error messages. A colleague left a message along the lines of Application rubbish bin has broken. once. Cue a somewhat perplexed user call several years later…

“Scientists have calculated that the chances of something so patently absurd actually existing are millions to one. But magicians have calculated that million-to-one chances crop up nine times out of ten.”

Who is genuinely surprised that Cueball managed to reach the unreachable error condition?

― Terry Pratchett, Mort

--Kventin (talk) 07:51, 11 September 2019 (UTC)

Do you mean "garbage collector"? Because that's not being cute, that's the actual technical term. 162.158.122.30 13:24, 11 September 2019 (UTC)

The "anything can happen" may be reference to undefined behavior in some programming languages (most famous are C and C++) https://en.wikipedia.org/wiki/Undefined_behavior. And the error message is rather about assertion failure https://en.wikipedia.org/wiki/Assertion_(software_development) 162.158.92.54 08:03, 11 September 2019 (UTC)

Undefined behaviour can even result in time travel! Ahiijny (talk) 18:44, 11 September 2019 (UTC)

I rewrote the intro from a developer's perspective, since I'm pretty sure this is more about coding than about websites. Would be nice to add something about assertions there too. Hawthorn (talk) 12:37, 11 September 2019 (UTC)

It's relatively common to include assertions for certain invariants because it can potentially allow compilers to make better optimizations, though this is usually a sign of premature optimization. Probably not Douglas Hofstadter (talk) 15:11, 11 September 2019 (UTC)

In the picture, Cueball seem to be writing the comment, instead of reading it, which seems to me a bit more logical (the surprise of someone finding such comment is less funny than the weird state of mind of the tired develloper that takes the time to put such an elaborate and self describing as useless message, but that may just be me) 172.68.198.130 11:36, 12 September 2019 (UTC)

I think the image does not support this interpretation. The presence of the !Alert suggests that this is a dialog or warning that has popped up, and the speech lines suggest that the computer is "saying" (ie. displaying) the error message to Cueball. I also think that Randall would have made it more clear that Cueball is typing, if that was the case. Hawthorn (talk) 11:51, 12 September 2019 (UTC)

I want to clarify on why one would write an "impossible" error message. This isn't because one sits around thinking of conditions the program could be in and writing messages for them. It's because one can add a sort of "try/fail" condition to any line of code one is adding, and pass along a message in case it fails. Some programmers will do this constantly. So it's not that they anticipated the conditions of an impossible state the program is in when it fails, they simply wrote a "try/fail" around a line of code even though they think could never fail. This is also why the programmer can't suggest anything useful to the end-user: When writing it, he simply can't imagine why that "try" would ever fail. — Kazvorpal (talk) 16:22, 12 September 2019 (UTC)