Skip to content
DevMeme
4312 of 7435
When your 'temporary' comment gets immortalized in the git diff forever
TechDebt Post #4714, on Aug 1, 2022 in TG

When your 'temporary' comment gets immortalized in the git diff forever

Why is this TechDebt meme funny?

Level 1: Temporary Turned Forever

Imagine you have a broken toy, say a little car with a wheel that keeps falling off. One day, you quickly fix it by wrapping some tape around the wheel. You tell yourself, "This is just for now, I'll fix it properly later." You even stick a note on it that says "temporary fix". But then weeks go by, and the toy car is still held together with that tape. It still works, so you never got around to gluing the wheel or buying a new toy. Now, instead of removing the tape, you take a marker and cross out the word "temporary" on the note and write "permanent fix" in big letters. You're joking with yourself, because you know that quick tape solution has basically become the permanent solution. It’s funny in a silly way: what was supposed to be short-term is now just how the toy is. In the same way, the meme shows a programmer’s quick code fix that was meant to be temporary, but they never replaced it – they just changed the label and said "okay, fine, it’s permanent now." It makes us laugh because we all know temporary fixes often last a lot longer than we plan!

Level 2: From FIXME to Feature

Let's break down what’s happening in this meme. We have a piece of source code with a comment that says //temporary right above a try statement. In many programming languages (like Java, C++, C#), // starts a code comment – text meant for humans, which the computer ignores. Developers leave comments like this to explain something or mark a TODO. Writing "temporary" in a comment usually means "This is a quick-and-dirty solution for now" – basically a note admitting the code isn't ideal and should be changed later. For example, a programmer might put // temporary workaround for bug #1234 to signal that they plan to come back and do it properly when there's time. It's a heads-up to any other coder reading it: "I know this isn't great, it's just a band-aid."

Now, in the meme's second screenshot, we see a Git diff image. Git is a popular VersionControl system that tracks changes in files. A diff shows the differences between two versions of a file. Typically, removed lines are shown in red with a - sign, and added lines are in green with a + sign. In the diff presented, the line //temporary is highlighted in red (meaning it was removed in the new version) and the line // Permanent is in green (meaning it was added). Both of these lines are in the same place in the code, right above the unchanged try line (which is shown in white or not highlighted, meaning that line wasn’t changed). Here’s a simplified illustration of that diff:

- //temporary  
+ // Permanent  
  try {  
      // ...  

What does this mean? It means the developer went into the code and changed the comment from "temporary" to "Permanent". The actual code logic (try { ... }) did not change at all. So effectively, nothing about the program's behavior was fixed or improved – only the comment was updated. The initial tweet caption "uh huh." shows a bit of sarcasm or eye-roll: the author is saying "Yeah, I see what you did there," referring to that lazy //temporary comment. In the reply tweet "I don't want y'all to worry, I fixed it.", he jokes that he fixed the issue — and then demonstrates that the "fix" was just renaming temporary to Permanent. This is a tongue-in-cheek way to say: if you’re concerned about that quick hack, don’t be — I’ve officially made it a permanent part of the code!

This plays on a common DeveloperHumor theme: TechnicalDebt and procrastination in code. Technical debt is a term for the consequences of choosing an easy, quick solution now instead of a better, but longer solution. It's like borrowing time: you "take on debt" by coding something sloppily or temporarily, and ideally you "pay it back" later by cleaning it up. But just like real debt, if you ignore it, interest accumulates – the code might become harder to change or cause bugs. In our case, the comment //temporary was a visible marker of technical debt: a temporary thing to fix later. The funny (and sad) part is that instead of paying off that debt (doing the real fix), the developer just renegotiated the terms by calling it Permanent!

Why would someone do this? Often, it's because the temporary solution ended up "good enough" and there was no time or priority to replace it. Perhaps the code went through a CodeReview (where other developers examine changes) and someone asked, "Hey, is this temporary fix going to be addressed properly soon?" If the original author or the team couldn’t immediately refactor or improve the code, they might jokingly update the comment to be honest. It's a form of irony: acknowledging that "temporary" has, in fact, become indefinite. It's also a bit of coding humor directed at the practice of leaving TODOs and not following up. By changing the comment text, the developer is basically saying, "Let's not fool ourselves, this isn't temporary at all."

The meme is funny to programmers because it exaggerates a real scenario. Almost every coder has seen or written something like // TODO: remove this hack or // TEMPORARY FIX and then checked back on it much later only to find it still in the code. The phrase "immortalized in the git diff" refers to how once you commit code to a repository, it's saved in history. Even if you later delete or change that code, the record of it (the diff) lives forever in the project’s history. So your embarrassing quick hack or comment will always be discoverable with the right git commands. In this case, the diff itself is the joke: it's showing that history will remember the code was labeled temporary and then got relabeled to permanent. Developers find this humorous because it captures the absurdity of how our "temporary" shortcuts have a way of sticking around. It's a gentle poke at our own bad habits in coding and the shared understanding that "temporary" rarely means what it says in a codebase.

Level 3: Nothing More Permanent

There's an unwritten law in software: nothing survives longer than a temporary hack. This meme nails that irony. In the first screenshot (a tweet by Nick Craver), a code snippet shows a comment //temporary highlighted in green above a try statement. That one-word comment is the developer admitting, "This is just a quick fix, not how it's supposed to be." It's a classic hallmark of Technical Debt – a reminder that some code here isn't up to CodeQuality standards and should be revisited. But the punchline lands in the follow-up tweet: "I fixed it." Now we see a git diff screenshot (red/green lines) where the code comment has been changed from //temporary to // Permanent. The actual code (try) remains the same. In plain English, the coder literally crossed out "temporary" and labeled the hack Permanent, committing that change. The joke bites because we've all seen "fixes" like this during CodeReviewPainPoints: instead of removing the shaky workaround, someone just blesses it as official.

This dark humor speaks to every senior developer who's battled creeping TechnicalDebt. The comment "temporary" was likely added to appease a reviewer or conscience, a promise to clean up later. But later never came. Perhaps a critical deadline hit, the temporary try-catch stayed in production, and everyone moved on. Over time, that quick fix became part of the foundation. As a result, the code comment turned into a lie: it said "temporary," but lived on for months or years. In the meme, the developer cynically "corrects" the lie by renaming the comment to Permanent. It's a bitter acknowledgment that this hack isn't going anywhere. The VersionControl diff is the perfect stage for this reveal: version control (like Git) tracks every change, so the moment of truth is immortalized. The original hack may be gone from the latest code, but it's forever preserved in the repository history (every future git blame will chuckle at that commit). In other words, the "temporary" tag is now git-immortal; it exists in a commit diff that future programmers can discover and facepalm over.

Why is this so relatable? Because in real development life, temporary solutions often ossify into permanent architecture. Maybe that hack was holding together a production system at 3 AM and nobody dared refactor it after things finally worked. Code reviews (CodeReviewPainPoints indeed) sometimes wave through kludges with a comment attached, on the condition that it'll be fixed "next sprint." But next sprint brings new priorities, and the patch remains. There’s even a grim joke among veteran engineers: “There’s nothing more permanent than a temporary fix that works.” Once the pressure is off, management forgets the promised cleanup, developers are reassigned, and that sketchy try block quietly becomes part of the app's DNA.

This meme also highlights how CodeComments intended as notes-to-self or warnings to others can backfire. A // TODO remove by 2021 can linger untouched in 2022 and beyond, haunting new team members. Here, the comment //temporary likely drew attention during code review (“Is this still temporary? When will it be fixed?”). The cheeky response was to change the comment rather than the code - a satirical take on how teams sometimes address symptoms, not causes. It's a bit like painting over a crack instead of repairing the wall. The version control diff makes the absurdity obvious: the diff shows exactly what changed, and it's purely semantic – only the comment text. The underlying risky code path (try without a proper handling or a better architectural solution) remains. We essentially get a record saying: We know this is a hack, and we’ve decided it’s permanent. If that isn't a definition of technical debt being acknowledged, what is?

From a senior perspective, this is cathartic humor. It captures the gap between ideal and reality in software engineering. Ideally, VersionControl histories should show progressive improvement: temporary scaffolding coming down, replaced by solid code. In reality, we often see commits that merely rename, re-comment, or slightly shuffle the mess to make it more palatable. The meme’s diff is funny because it feels excruciatingly true. The Git repository becomes a scrapbook of our broken promises. Years later, when debugging an issue in this area, someone will do git log -S"Permanent" to find why on earth that comment says "Permanent." They'll discover this very commit and likely laugh, groan, or both. It's the kind of DeveloperHumor that stings: we laugh to keep from crying about the state of our codebase. And perhaps, hidden in the laughter is a lesson: the only real fix for a temporary hack is to replace it properly – anything else is just changing labels.

Description

The image is a two-part Twitter screenshot using the dark TweetDeck theme. In the first tweet, the user writes “uh huh.” above a clipped IDE view showing green comment text “//temporary” followed by the keyword “try” in pastel pink on a black background - clearly a quick hack left in the code. The follow-up tweet says “I don’t want y’all to worry, I fixed it.” and shows a classic git diff: a red deletion line “//temporary” and a green addition line “// Permanent”, both above the unchanged pink “try”. The joke plays on how throw-away comments and hacks survive code reviews and become permanent, highlighting technical-debt, code-quality problems, and the realities exposed in version-control diffs

Comments

8
Anonymous ★ Top Pick The only thing with stronger durability guarantees than our S3 Glacier tier is the ‘//temporary’ workaround that got promoted to //Permanent in today’s diff
  1. Anonymous ★ Top Pick

    The only thing with stronger durability guarantees than our S3 Glacier tier is the ‘//temporary’ workaround that got promoted to //Permanent in today’s diff

  2. Anonymous

    The only thing more permanent than a temporary fix is the git blame that will haunt you when it inevitably becomes load-bearing infrastructure three acquisitions later

  3. Anonymous

    Ah yes, the classic 'ship it and forget it' pattern - where 'temporary' is just a comment away from becoming a load-bearing architectural decision that survives three rewrites, two acquisitions, and outlives the original author's tenure. Nothing says 'enterprise-grade' quite like a try-catch block that's been in production longer than some of your junior devs have been coding. At least he documented the transition from technical debt to technical mortgage

  4. Anonymous

    We finally made it official: the “temporary” try is now a Permanent fixture - because in production, hotfixes have a higher SLA than refactors

  5. Anonymous

    Nothing nukes tech debt like a green diff turning //temporary into //Permanent - congrats, it’s now an ADR

  6. Anonymous

    '// temporary' fixes: outliving Moore's Law since the first hack

  7. @bezuhten 3y

    lgtm

  8. @azizhakberdiev 3y

    // Permorary

Use J and K for navigation