Welcome to the explain xkcd wiki!
We have an explanation for all 2730 xkcd comics,
and only 42
(2%) are incomplete. Help us finish them!
Go to this comic explanation
Title text: Surely (no one/everyone) will (recognize how flexible and useful this architecture is/spend a huge amount of effort painstakingly preserving and updating this garbage I wrote in 20 minutes)
|| This explanation may be incomplete or incorrect: Created by a BOT PROGRAMMED 50 YEARS AGO (STILL YOUNGER THAN UNIX). 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 panels note that, ironically, code 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 Catch-22 situation that many developers have experienced, the first one even has a name, YAGNI.
The second panel could be an allusion to the 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 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:
- "Surely everyone will recognize how flexible and useful this architecture is."
- "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 those far less hopeful outlooks:
- "Surely no one will recognize how flexible and useful this architecture is."
- "Surely everyone will spend a huge amount of effort painstakingly preserving and updating this garbage I wrote in 20 minutes."
- [Two almost identical panels side by side depict a conversation between Ponytail and Cueball.]
- [Ponytail standing next to Cueball, with her palm raised.]
- 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:]
- How to ensure your code is never reused
- [Nearly identical situation to the first, but with the arm raised slightly less emphatically.]
- 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
Is this out of date? .
Lots of people
contribute to make this wiki a success. Many of the recent contributors, listed above, have just joined
. You can do it too! Create your account here
You can read a brief introduction about this wiki at explain xkcd. Feel free to sign up for an account and contribute to the wiki! We need explanations for comics, characters, themes and everything in between. If it is referenced in an xkcd web comic, it should be here.
- There are incomplete explanations listed here. Feel free to help out by expanding them!
Don't be a jerk.
There are a lot of comics that don't have set-in-stone explanations; feel free to put multiple interpretations in the wiki page for each comic.
If you want to talk about a specific comic, use its discussion page.
Please only submit material directly related to (and helping everyone better understand) xkcd... and of course only submit material that can legally be posted (and freely edited). Off-topic or other inappropriate content is subject to removal or modification at admin discretion, and users who repeatedly post such content will be blocked.
If you need assistance from an admin, post a message to the Admin requests board.