Editing 2730: Code Lifespan

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 10: Line 10:
  
 
==Explanation==
 
==Explanation==
 +
{{incomplete|Created by a BOT PROGRAMMED 50 YEARS AGO. Do NOT delete this tag too soon.}}
  
This comic contrasts two scenarios involving [[Ponytail]] writing a computer program: in the first panel, she has taken great care to future-proof her code, while in the second, she decides not to under the assumption it will soon be deprecated and/or replaced. The captions below each panel note that, ironically, code that ''was'' written with future-proofing in mind will often quickly cease to be used, defeating the purpose of future-proofing, while the code that was ''not'' will often be used much longer than the original programmer(s) intended. This is a {{w|Catch-22 (logic)|''Catch-22''}} situation that many developers have experienced; the first one even has a name, {{w|YAGNI}}.
+
In the first panel, [[Ponytail]] painstakingly future-proofed her code, but all in vain, as it will never be reused again. In the second panel, she decided that future-proofing would be unneccessary, as she assumes nobody would reuse her code that far in the future anyway. This feels like a {{w|Catch-22}} situation for developers.
  
The second panel could be an allusion to the {{w|Year 2000 problem}}, although it is important to note that problem was not simply due to developers not thinking ahead but also because the developers were working with extremely limited computer resources at the time, promoting the use of 2-digit years.
+
The title text proposes four permutations of sentences software developers may consider, which given the context of the comment, usually start out as these two hoped-for ideals:
 +
* Surely everyone will recognize how flexible and useful this architecture is. And,
 +
* Surely no one will spend a huge amount of effort painstakingly preserving and updating this garbage I wrote in 20 minutes.
 +
However, reality often falls short of such hopes, in that insufficient numbers of people recognize code intended for re-use, and far more people than intended will attempt to maintain and adapt sloppy work. The latter sometimes happens because the corner-cutting peculiarities of hasty work are often seen as far deeper necessities than they actually are.
  
The title text is a modular sentence with two parentheticals, each containing two alternative phrases. This allows for four permutations of the sentence, each of which may be said by programmers. The following two permutations may be the hoped-for ideals of software developers:
+
==Transcript==
 +
{{incomplete transcript|Do NOT delete this tag too soon.}}
  
* "Surely everyone will recognize how flexible and useful this architecture is."
+
[Two situations are depicted between Ponytail and Cueball.]
* "Surely no one will spend a huge amount of effort painstakingly preserving and updating this garbage I wrote in 20 minutes."
 
  
However, reality often falls short of such hopes, in that insufficient numbers of people recognize code intended for re-use, and far more people than intended will attempt to maintain and adapt sloppy work. The former can occur because of uncertain or unclear assumptions which aren't clear when the time comes to re-use code capable of it, and the latter sometimes happens because the corner-cutting peculiarities of hasty work are often seen as far deeper necessities than they actually are. The remaining two permutations express these far less hopeful outlooks:
+
[Situation 1:]
  
* "Surely no one will recognize how flexible and useful this architecture is."
+
Ponytail: It took some extra work to build, but now we'll be able to use it for all our future projects.
* "Surely everyone will spend a huge amount of effort painstakingly preserving and updating this garbage I wrote in 20 minutes."
 
 
 
==Transcript==
 
  
:[Two almost identical panels side by side depict a conversation between Ponytail and Cueball.]
+
Caption below the panel: How to ensure your code is never reused
  
:[Ponytail standing next to Cueball, with her palm raised.]
+
[Situation 2:]
:Ponytail: It took some extra work to build, but now we'll be able to use it for all our future projects.
 
  
:[Caption below the panel:]
+
Ponytail: Let's not overthink it; if this code is still in use '''''that''''' far in the future, we'll have bigger problems.
:How to ensure your code is never reused
 
  
:[Nearly identical situation to the first, but with the arm raised slightly less emphatically.]
+
Caption below the panel: How to ensure your code lives forever
:Ponytail: Let's not overthink it; if this code is still in use '''''that''''' far in the future, we'll have bigger problems.
 
  
:[Caption below the panel:]
 
:How to ensure your code lives forever
 
  
 
{{comic discussion}}
 
{{comic discussion}}
[[Category:Comics featuring Ponytail]]
 
[[Category:Comics featuring Cueball]]
 
[[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)