Editing 292: goto

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 8: Line 8:
  
 
==Explanation==
 
==Explanation==
''{{w|Goto}}'' is a construct found in many computer languages that causes control flow to go from one place in a program to another, without returning. Once common in computer programming, its popularity diminished in the 1960s and 1970s as focus on {{w|structured programming}} became the norm. {{w|Edsger W. Dijkstra}}'s article [https://dl.acm.org/doi/10.1145/362929.362947 "Go To Statement Considered Harmful"] in particular contributed to the decline of ''goto.''
+
{{w|goto}} is a construct found in many computer languages that causes control flow to go from one place in program to another, without returning. Once common in computer programming, its popularity diminished in the 1960s and 1970s as focus on {{w|structured programming}} became the norm. {{w|Edsger W. Dijkstra}}'s article [http://www.u.arizona.edu/~rubinson/copyright_violations/Go_To_Considered_Harmful.html Go To Statement Considered Harmful] in particular contributed to the decline of ''goto''.
  
Often, people learning programming are told that ''goto'' is bad and should be avoided, but frequently, they are not given a good reason. [[Cueball]], as one of these people, sees no harm in using ''goto'' to avoid rewriting much of his program, most likely written in the C programming language. As a result, he is attacked by a [[velociraptor]]. Velociraptor attacks are a running joke (and fear) often expressed in [[xkcd]].  
+
Often people learning programming are told ''goto'' is bad and should be avoided, but frequently are not given a reason. In this case, [[Cueball]] can see no harm in using ''goto'' to avoid rewriting much of his program. As a result, he is attacked by a {{w|velociraptor}}. Velociraptor attacks are a running joke (and fear) often expressed in [[xkcd]]. The humor derives from the fact that a velociraptor attack is [http://tvtropes.org/pmwiki/pmwiki.php/Main/WhatCouldPossiblyGoWrong an unexpected and severe consequence] of using a ''goto'' statement.
  
The name ''main_sub3'' of the ''goto'' destination also shows bad programming style: it is an unmeaningful name suggesting that at least two similarly unmeaningful names are used for other ''goto'' marks and it is contradictory in that a chunk of code can either belong to the main program or to a subroutine, but not both.
+
The title text refers to {{w|Neal Stephenson}}, an author of cyberpunk novels. A label is used in many programming languages to refer to a point in a program that a goto instruction can jump to. The joke is that one of Stephenson's characters in ''{{w|Cryptonomicon}}'' is named 'Goto Dengo'.
 
 
The title text refers to {{w|Neal Stephenson}}, an author of cyberpunk novels. A label is used in many programming languages to refer to a point in a program that a goto instruction (or other flow-control statements) can jump to. The joke is that one of Stephenson's characters in ''{{w|Cryptonomicon}}'' is named Goto Dengo. When said out loud, "Dengo" sounds like "Then go."
 
  
 
==Transcript==
 
==Transcript==
:[Sideways view of Cueball sitting at computer, thinking.]
+
:[Cueball sits at computer, thinking.]
:Cueball: I could restructure the program's flow  
+
:Cueball: I could restructure the program's flow - or use one little 'GOTO' instead.
:Cueball: or use one little 'GOTO' instead.
 
 
 
:[Cueball starts typing.]
 
 
:Cueball: Eh, screw good practice. How bad can it be?
 
:Cueball: Eh, screw good practice. How bad can it be?
 
:Text on computer: <tt>goto main_sub3;</tt>
 
:Text on computer: <tt>goto main_sub3;</tt>
 
:<nowiki>*Compile*</nowiki>
 
:<nowiki>*Compile*</nowiki>
 
+
:[Cueball looks at the computer.]
:[We now have a view from behind Cueball. Cueball looks at the computer.]
+
:[A raptor jumps into the panel and attacks Cueball.]
 
 
:[A raptor jumps into the panel, pushing Cueball off his chair.]
 
 
 
==Trivia==
 
* Like all velociraptors in xkcd, the velociraptor in this comic is specifically the man-sized movie monster from ''{{w|Jurassic Park (film)|Jurassic Park}}.''  Real velociraptors were more like [http://commons.wikimedia.org/wiki/File:Vraptor-scale.png carnivorous turkeys.]  The beast devouring Cueball might actually be ''[http://commons.wikimedia.org/wiki/File:Dromie_scale.png Deinonychus antirrhopus.]'' The beast may also be ''[https://en.wikipedia.org/wiki/Utahraptor Utahraptor.]''
 
* This comic heads the official [http://php.net/manual/en/control-structures.goto.php PHP manual page on goto].
 
  
 
{{comic discussion}}
 
{{comic discussion}}

Please note that all contributions to explain xkcd may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see explain xkcd:Copyrights for details). Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Cancel | Editing help (opens in new window)

Templates used on this page: