Talk:292: goto

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

Note that the concept of goto being harmful fortunately is weaning a little. Jumping forwards in code to the end where error handling is implemented is actually in wider use now; including many locations in the Linux kernel. Kaa-ching (talk) 09:53, 9 September 2012 (UTC)

Actually, goto has been used quite with some frequency in low-level code in C programming over the years, so it's not altogether surprising that it is used in the Linux kernel, or any other tight bit of code. Given the "advance" of programming languages, I wouldn't say that there's been any weaning, except off of the concept of an unstructured goto in more recent languages. Admittedly, there's a schism between the low-level (that is, near-to-assembly) coders who more readily use goto because in the end, that's what the compiler reduces code branching down to, and developers using higher-level languages (that is, more highly abstracted, more removed from 1 statement ~ 1 machine instruction languages) avoiding such because alternative structures abound, making goto somewhat unnecessary. There has been a bit of a dogmatic approach to teaching various languages, as in "thou shalt not use goto lest thou produce monsterous, unmaintainable code!" applied that many if not most developers observe; the humor in the panel is that this dogma is manifested in the appearance of a literal monster (a velociraptor, no less...) -- IronyChef (talk) 05:08, 11 September 2012 (UTC)
From an historical perspective, in the 80's, back when BASIC was the norm for developing proggies on home computers, because code blocks (begin...end, { ... }, etc.) were nonexistent, one had the option of two keywords: GOTO and GOSUB. In the case of branching beyond code that wasn't executed, many programmers abused GOTO even beyond the necessity of its use. This was a fairly hot topic in home-computing magazines at the time, again with BASIC in mind, and it appears that developers using C, [Turbo] Pascal and the like, having hangups about BASIC, emitted serious frowns at the idea of using GOTO at all. But for quick jumps that avoid having to tab forward entire blocks of code, GOTO (case notwithstanding) certainly has my support. Thokling (talk) 16:05, 20 September 2013 (UTC)
"Jumping forwards in code to the end where error handling is implemented is actually in wider use now [...]" try-catch-finally? Syntactically not a goto but the effect can be similar. 108.162.219.47 17:58, 22 November 2013 (UTC)
Yeah, in most high-level languages exception handeling is preffered to goto. But some lower-level languages like C don't have that construct. Note that exception handling allows to go straight from inside a function to the error-handling code outside the function, which is an advantage over C-style error handling which usually require you to check the return value of every function in case you got a specialized "error code".141.101.99.228 19:46, 19 December 2013 (UTC)
You actually can throw true exceptions in C, but without the syntactic sugar it's tedious (a lot more code), confusing (what the hell does this do?) and error prone (one could easily just wind up going to the start of the try block again, rather then going to the catch block). Also a throws and catch in the same function/method is generally frowned up for the same reasons as GOTO.--108.162.238.224 16:48, 27 March 2014 (UTC)

"Velociraptors are a running joke..." Ha, I get it 79.169.177.15 13:06, 9 October 2013 (UTC)

Personal tools
Namespaces

Variants
Actions
Navigation
Tools

It seems you are using noscript, which is stopping our project wonderful ads from working. Explain xkcd uses ads to pay for bandwidth, and we manually approve all our advertisers, and our ads are restricted to unobtrusive images and slow animated GIFs. If you found this site helpful, please consider whitelisting us.

Want to advertise with us, or donate to us with Paypal or Bitcoin?