Editing 1421: Future Self

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==
This comic is a joke about how the person you were in the past can be viewed as a distinct entity from who you are now, as well as the predictability of future events relating to your future actions.
+
{{incomplete|Mostly there?}}
 +
The comic shows presumably a segment of a code transcript from an old project of Cueball's, this part entirely consisting of comments (a number of computer languages, including several popular dialects, use "#" to indicate "the remainder of this line is a comment") written with apparent foresight by the Cueball's "younger self" in anticipation of being read by his "older self" at some point in the future.  The language in the comments is similar to how people address themselves in personal {{w|Time_capsule|time capsules}}, in which they put letters away to read years later to see how much they've changed.
  
The comic shows comments, informational notes left in the code that do not change the algorithm, from a project completed by [[Cueball]] some time ago that is still being used and maintained.  It is implied that Cueball is looking at these comments because the algorithm, a parsing function, is no longer working. These comments were written by Cueball's "younger self" in anticipation of being read by his "older self" at a date close to the present. The function has held up to the younger Cueball's expectations as it has lasted until the publication date of this comic, September 2014. The comments indicate a firm belief that the parsing function could not be easily "re-kludged" to handle the new situation but instead would need to be re-written.
+
A "{{w|Parsing#Parser|parse}} {{w|Subroutine|function}}" is code that interprets some form of input (e.g. the text of a web-page that has been 'scraped' by another part of the code or the command-line input of a program) and makes sense of it in a way that enables functionality in some other part of the code. Usually parsing is used in compiler construction - the program code is "interpreted" to form an abstract syntax tree. Parsing can be a difficult problem to solve in general, and programmers will often take shortcuts based on assumptions on the kinds of input that the parsing function will have to handle.  If the programmer does not have control over the input, such as reading a page from someone else's web-site, then any changes to the input in the future can cause the parser to spontaneously break even if the parsing function has not changed.  In the case of a web page, the difference may be in the structure of the page and not even visible to someone looking at the page in a web browser, or it could be the result of a "site refresh" where the look and feel of the entire web-site is changed to avoid appearing dated, or the website may no longer exist, or any number of other possible differences.
These comments are surprisingly accurate, leading Cueball to rhetorically reply to his younger self that these comments were creepy. Cueball's "younger self" must have anticipated a snarky reply and reminded his older self that his older self has likely not fulfilled his dream of going to Iceland. Cueball again replies that his younger self should stop judging him.  
 
  
In the title text, current-day Cueball lashes out at his younger self, further emphasizing the way he is viewing his past self as a different person, blaming the ineffectiveness of his past self's coding for never going to Iceland, even though the effectiveness of his past code has no correlation with being able to travel, unless he had to fix the code for a project, ruining the time space he had to travel, or his code helped him plan his trips.
+
Certainly, that the parsing function has 'failed' indicates that it worked once but possibly it was {{w|kludge|kludged}} together with no expectation that it would handle future changes, and the comments indicate a firm belief that the parsing function could not be easily "rekludged" to handle the new situation but instead a would need to be re-written.  This may be because the parsing function was written using {{w|Regular_expression|regular expressions}} or some other {{w|Write-only_language|write-only language}}, where the program is typically created through means of trial-and-error, and it is considered easier to start from scratch than try to determine how the original program worked. An other problem might be that the new situation has "mightier" inputs that can not be parsed by regular expressions (i.e A regular grammar is replaced by a context-free grammar). The parsing function seems to have lasted one year longer than expected by the younger Cueball.  This is more likely due to external factors (the web page not changing as often or as much as expected) than the parsing function operating better than expected, however.
  
A comment is a line, or a portion of a line, of code which should not be executed. A number of computer languages, including [[353: Python|Python]], use "#" to indicate "the remainder of this line is a comment". The comment symbol tells the compiler to skip to the next line, ignoring everything after the symbol. Programmers make use of comments to leave notes about what a particular line or section of code is meant to do, places that require debugging, ideas for future revisions, etc.
+
Current-day Cueball feels the need to rhetorically reply to his younger self's commentary, only to find a forward-looking snark that is both prescient and emotionally hard-hitting. The title-text is a comeback by current-day Cueball who lays the blame back on the younger Cueball. Past Cueball has the advantage that it is easy to predict that you might not follow through with aspirations or resolutions, but current-day Cueball seems to fail to realize that he is only blaming himself for his own problems.
 
 
The language in the comments is similar to how people address themselves in personal {{w|Time capsule|time capsules}}, in which they put letters away to read years later to see how much they've changed.
 
 
 
A "{{w|Parsing#Parser|parse}} {{w|Subroutine|function}}" is code that interprets some form of input and makes sense of it in a way that enables functionality in some other part of the code. Parsers are commonly used to extract useful information from a source external to the algorithm.  
 
Often parsing functions are written using {{w|Regular expression|regular expressions}} or in some other {{w|write-only language}} style. Parsing can be a difficult problem to solve, and programmers will often take shortcuts (perform {{w|kludge|kludges}}) based on assumptions on the kinds of input that the parsing function will have to handle, or possibly code through means of trial-and-error.
 
As the programmer may not have control over the input, such as reading a page from someone else's web-site or using the output of an unpredictable program, an input that does not match the assumed input syntax in can cause the parser to break, even if the parsing function has not changed.
 
  
 
==Transcript==
 
==Transcript==
:[Cueball is sitting at a laptop, reading code. The two separate parts of code as well as the two comments by Cueball is connected with "speak" lines, with the line from the code going down to the computer screen.]
+
{{incomplete transcript}}
 
 
 
:<nowiki>#</nowiki> Dear Future Self,
 
:<nowiki>#</nowiki> Dear Future Self,
 
:<nowiki>#</nowiki>
 
:<nowiki>#</nowiki>
Line 42: Line 35:
 
:Cueball: Stop judging me!
 
:Cueball: Stop judging me!
 
{{comic discussion}}
 
{{comic discussion}}
 +
 
[[Category:Comics featuring Cueball]]
 
[[Category:Comics featuring Cueball]]
 
[[Category:Programming]]
 
[[Category:Programming]]

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)