Caring About Performance: The New Generational Divide in Programming
Why is this Performance meme funny?
Level 1: Waste Not, Want Not
Imagine you have a grandpa who grew up when things were scarce – say, during a time when money was tight or gadgets weren’t as powerful. Because of that, Grandpa is very careful not to waste anything. For example, he’ll always turn off the lights when he leaves a room to save electricity, even if it’s just for a few minutes. Now, you might not worry about that as much because electricity feels unlimited and every bulb is an energy-saving LED anyway. To you, leaving a light on by mistake isn’t a huge deal, but to Grandpa it’s a habit: why use more power than you need? He’ll shake his head and say, “waste not, want not,” meaning if you don’t waste resources now, you’ll have them later when you need them.
This meme is like that, but with computer power. The “old person” in the joke is a programmer who always tries to make their code use as little computer resources as possible – they don’t want the program to be slow or use too much memory. That was really important back in the day when computers were weaker, just like saving electricity was important when it was expensive. These days, computers are super fast and have tons of memory, so a lot of young programmers don’t even think about those things at first. They might write code in a quick and easy way, not really minding if it’s a bit wasteful with power or memory, kind of like leaving the lights on because it doesn’t seem to hurt. So when someone says, “When programming, I care about performance,” and calls it an “old person thing,” they’re joking that being careful and efficient with code is an old-timer’s habit. It’s funny because caring about not wasting (whether it’s electricity or CPU time) is actually pretty wise – but here it’s being teased as something only a grandparent-type would fuss over. The core of the joke is easy to feel: it’s poking fun at how the younger generation takes today’s powerful computers for granted, while the older generation still treats those resources like precious gold.
Level 2: Performance vs Convenience
This meme comes from a Reddit thread where someone asked, “What ‘old person’ things do you do?” – basically asking people to confess habits they have that might be considered old-fashioned. The funny part is that one user replied, “When programming, I care about performance,” implying that caring about code running fast is an “old person” habit. It’s a screenshot of that Q&A: you see the question at the top and a single highlighted comment as the answer. The commenter got some upvotes (24 points) for this answer, meaning other Reddit users found it relatable or amusing. The humor here is that something we’d normally consider just good engineering (making software efficient) is being framed as if it’s a quaint, grandma-era behavior. It’s like saying, “I still worry about how heavy my code is, the way someone might worry about how heavy their rotary telephone is.” It’s both a joke and a gentle jab at how attitudes in software development have shifted.
Let’s break down the technical ideas to understand why this joke lands. Performance optimization means improving how fast or efficiently your program runs. That could involve making code execute in less time or use less memory or other resources. For instance, if you write a function that sorts a list of numbers, doing it in a smarter way can make a huge difference when the list is very large. An old-school developer might think carefully about using the most efficient sorting algorithm available and avoiding any unnecessary work in their code. They might use tools to profile their program (which means measuring exactly where the program spends most of its time) or benchmark it (which is testing how fast it runs under certain conditions) and then tweak the code to run faster. They’ll pay attention to things like how many times a loop runs, how much memory is allocated, or how many network calls are made, because all those factors affect performance.
On the other hand, many modern developers (especially newer ones) often prioritize something called Developer Experience (DX) or ease of development. Developer Experience is all about making the process of writing and maintaining code easier, faster, and less error-prone. This has led to wonderfully powerful programming languages and frameworks that do a lot of heavy lifting for you – but that convenience sometimes comes at the cost of raw performance. For example, writing a web application in Python using a big framework like Django can make a developer very productive (they can get features up and running quickly with relatively few lines of code), but Python will generally run slower than a low-level language like C. If the app isn’t doing super heavy computations, that speed difference might not matter at all to the end user. And nowadays, computers and servers are so fast that they can handle a lot of inefficient code without users really noticing... up to a point. It’s a trade-off: ease of coding vs. speed of execution. Many new devs lean towards ease, figuring “the code runs fast enough, and my time is more valuable spent building new things.”
There’s also the factor of hardware and resources. Today, if your code is a bit slow, you often have options to compensate that don’t involve changing the code: you can increase the server’s CPU power, add more memory (RAM), or even run your application on multiple servers at once (horizontal scaling). Cloud platforms like AWS, Azure, or Google Cloud make it relatively simple to throw more hardware at a problem – for a cost, of course. An older developer comes from a time (or a mindset) where you couldn’t easily do that. If your program was slow, you had to optimize the code, because you didn’t have 128 GB of RAM or a thousand-core cloud cluster at your fingertips. Older systems were limited: think of computers with a single CPU core running at a few hundred MHz (compared to multiple cores at several GHz today) and maybe megabytes (not gigabytes) of memory. When you only have 2 MB of memory to work with, wasting 1 MB due to sloppy coding is catastrophic! Thus, veteran programmers developed habits of checking the efficiency of every part of their code. It was normal to be a bit paranoid about performance back then.
Now, along came a famous saying in programming: “premature optimization is the root of all evil.” This quote, by legendary computer scientist Donald Knuth, is often used to mean “don’t try to micro-optimize your code too early — first make sure it works, then improve the parts that need it.” The intent was to discourage programmers from wasting time on tuning things that aren’t actually bottlenecks. But many novices misinterpret this as “never worry about performance until very late.” So, some younger devs might roll their eyes at someone who is carefully optimizing every little function from the start. They might think that person is doing unnecessary work – acting like an old-fashioned worrywart. In reality, the best approach lies in the middle: you don’t want to waste time hyper-optimizing code that isn’t critical, but you also don’t want to ignore performance completely and end up with a slow, inefficient product. Skilled devs (of any age) learn to identify performance-critical paths – parts of the software that run frequently or handle lots of data – and make sure those are efficient. But outside those hot spots, it’s often okay to prioritize clarity and development speed.
The meme is funny because it exaggerates a real generational difference in mindset. Many junior developers today start off using high-level languages (like Python, JavaScript, or Java) and frameworks that handle a lot of optimizations under the hood. They might not even know exactly what’s going on in the machine – and they don’t need to, as long as the app is working well. Their focus is on building features: Does it function? Is it easy to maintain? Performance might not be on their checklist unless there’s an obvious problem. In contrast, a lot of senior developers (especially those who began programming in the 80s, 90s, or early 2000s) learned to code in an environment with tighter constraints. They might have started with languages like C or C++ or even assembly, where you manage memory manually and one misplaced operation can crash your program or slow it to a crawl. These folks had to learn efficient coding techniques just to get things working. For them, worrying about speed and memory isn’t an extra step – it was ingrained as part of writing good code. So today, even when using modern tools, they still have that habit: they’ll notice if a function does redundant work, or if an object is using more memory than necessary, and they’ll comment on it.
A good analogy in simpler tech terms is comparing native apps to web apps. An old-school dev might favor writing something in C++ or Rust (which compiles to machine code and runs very fast), whereas a newer dev might spin up the same tool as an Electron app (which is essentially a web app packaged for desktop, running on a Chromium engine). The Electron app is much easier to create and can be written in JavaScript, but it’s going to use significantly more memory and CPU because it’s running a whole browser behind the scenes. Many users won’t mind or won’t even know – if you have 16GB of RAM, what’s a few hundred MB for convenience? But the old dev will see that and raise an eyebrow, because from their perspective it feels wasteful. This is exactly the kind of scenario the meme is pointing out: the older mindset (care about those extra CPU cycles!) versus the modern mindset (we can afford a bit of waste if it saves developer time).
In summary, the Reddit meme labels “caring about performance” as an old-person trait to poke fun at this shift. It’s saying, “Haha, I’m basically an old grandpa in programming because I still worry about making my code run fast.” The fact that other users upvoted it indicates a lot of developers have noticed the same thing and find it relatable. It’s affectionate ribbing – nobody is actually saying older devs are wrong to do this; if anything, they’re acknowledging that it’s a mark of someone who’s been around the block. If you’re a newcomer, don’t get the wrong idea: performance does matter, but it’s about knowing when and where to care. The joke just highlights that obsessing over performance from the get-go is now seen as something mostly seniors do, akin to an old-timer fussing about things the youth barely think of.
Level 3: Cycle Counting Chronicles
To an experienced developer, the humor here hits like a bittersweet inside joke. Only old devs care about performance? It’s a wry twist on reality. Decades ago, caring about code performance was just called “doing your job.” Everyone had to worry if their code would run fast enough on limited hardware. Now, this Reddit thread frames it as an "old person thing," as if optimizing your code is akin to clinging to VHS tapes or writing checks at the grocery store. The absurdity is palpable: we’ve gone from performance tuning being standard practice to being a quirky trait of the graying veteran programmer. Seasoned engineers are chuckling and shaking their heads: since when did making software efficient become something to tease as old-fashioned?
The reason this quip resonates is that it contains a nugget of truth about modern developer culture. Contemporary dev teams often prioritize shipping features and maximizing developer experience (DX) over squeezing out every drop of performance. In today’s startup-flavored, rapid-iteration world, it’s common to hear “premature optimization is the root of all evil” echoing through stand-ups and code reviews. The result? Many younger or less experienced devs default to “just get it working” and assume it’ll be fast enough. After all, if the app is slow, you can always increase the AWS instance size, add more servers, or rely on powerful hardware to brute-force the issue, right? Why fret over a few milliseconds or a few megabytes here and there when you’ve got cloud auto-scaling and practically limitless RAM? In many organizations, spending hours to optimize code might even raise managerial eyebrows unless there’s a clear emergency — new features bring in customers, but a 50% faster response time might go unnoticed until it’s a problem. So performance work often gets deprioritized, implicitly teaching the next generation that runtime efficiency is a second-tier concern.
Yet, the wise old devs have learned sometimes the hard way that ignoring performance is a ticking time bomb. They’ve been in the war rooms when a poorly optimized routine brought a system to its knees under peak load. Picture a veteran engineer poring over a CPU graph at 3 AM because some “innocent” piece of code – say, an inefficient database query or a naive sorting routine – couldn’t handle Black Friday traffic. That engineer likely warned about the issue weeks or months before, only to be told, “It’s fine, the tests passed and the demo looked good. We’ll optimize later if needed.” Later arrived all at once, in the middle of the night, with alarms blaring. These experiences forge a certain battle-scarred wisdom: performance isn’t just academic or vanity, it’s the difference between a smooth launch and a firefight while customers rage. So when a senior dev reviews code, they might instinctively ask “Do we really need to recompute this inside a loop? Can we cache it?” or “What happens when this process scales to millions of records?” To younger teammates, those questions can feel like overkill for a feature that “works on my machine.” But to the senior, that’s muscle memory from years of firefighting.
This generational gap is exactly what the meme is poking fun at. The Reddit comment by user dullbananas essentially says: “When I’m programming, I care about performance” — and they offered that in response to “What ‘old person’ things do you do?” The implication is tongue-in-cheek: caring about performance is so rare among younger devs that it’s jokingly equivalent to a grandma clipping coupons. It’s an ironic self-own and a subtle roast of industry trends. Older devs in the thread likely smirked in agreement, upvoting that comment (it earned 24 points, meaning a bunch of readers went “heh, so true”). It’s a form of developer humor that relies on shared experience: the senior engineers in the room immediately get the reference, because they are the ones still fussing over memory usage and response times, often surrounded by colleagues who act like compute resources are infinite and free.
The humor also highlights how developers’ values have evolved. For example, a grey-beard coder might reminisce about spending days writing assembly to optimize a routine to run in under 50 milliseconds. Meanwhile, a modern web developer might grab a giant JavaScript framework to save a day of work, even if it makes the webpage 5 MB heavier and a bit slower, trusting that users’ fast internet and devices will handle it. The veteran might cringe – to them, that’s like using a chainsaw to cut butter and leaving a mess of chunks. But the industry at large often finds this trade-off acceptable: developer time is costly, user CPU time is comparatively cheap. It’s a classic performance trade-off: we’ve traded some runtime efficiency for faster development and richer interfaces. Most users won’t even notice a minor slowdown if they get cool new features quickly – until they do notice, when the bloat crosses a threshold. The old guard lives in quiet fear (or anticipation) of that threshold.
There’s a bit of “they don’t know what they don’t know” between generations. Younger devs who have never debugged a gnarly performance issue under pressure might genuinely see constant micro-optimizations as premature or unnecessary. The senior dev has the thousand-yard stare from having done exactly that at 3 AM when a service died. It’s almost a rite of passage: after the first time you watch a poorly optimized system crumble, you, too, start seeing performance concerns around every corner. In other words, given enough time, even a fresh grad developer might turn into the “old person” who cares about performance – not due to age, but due to scars earned. The meme playfully implies that those who already care must be “old,” when in fact they might just be experienced or forward-thinking.
Finally, we have the meta irony. This scenario is essentially “old man yells at cloud,” except in tech the “cloud” is literal cloud computing. Instead of an old man yelling at a fluffy cloud in the sky, imagine a grizzled senior dev fuming at the idea of solving every slowness problem by “throwing it in the cloud” – spinning up more servers, using more CPU, paying more dollars – rather than improving the code. From their perspective, that approach is like trying to fix a leaky faucet by just turning up the water pressure. Sure, it kinda works until it doesn’t (and wastes a ton in the process). The meme is funny because it rings true: the cynical veteran inside many developers is nodding, “Yep, kids these days would rather add another Kubernetes cluster than refactor an $O(n^2)$ loop.” The comment exaggerates to label that difference as being about age. It’s a mix of sarcasm and reality that lands well among developers who share the feeling that caring about efficiency has somehow become retro. In short, it’s humor with a pinch of frustration – a knowing laugh that says “Call me old, but I like my code fast.”
Level 4: Algorithmic Austerity
At the deepest technical level, this meme touches on fundamental computer science constraints that veteran programmers grew up with. An “old” developer’s concern for performance is rooted in the theory of algorithms and hardware limits. They know that no matter how much hardware you throw at a problem, certain inefficiencies will eventually bite. For instance, an algorithm that runs in $O(n^2)$ time (where work grows with the square of input size) will bog down exponentially as data grows. A seasoned engineer has seen how a seemingly innocent nested loop can turn a pleasant 1-second task into a 10-hour ordeal when n scales up. They carry in their bones the lessons of algorithmic complexity: choose the right data structures, avoid unnecessary work, and respect the math that governs runtime. It’s not just pedantry – it’s physics and math dictating what code can do within time $t$. Modern hardware can mask sloppy code only up to a point; beyond that, even 64-core servers melt under a bad $O(n^2)$ or (heaven forbid) $O(n^3)$ routine.
These veteran developers also internalized laws like Amdahl’s Law and the end of Moore’s Law’s free lunch. They remember when CPU speeds doubled every few years, which lulled some into thinking software could be as inefficient as needed because new hardware would bail it out. But physical limits (power, heat, quantum scales) slowed that party down. The “free” performance boost is over – nowadays, you can’t count on next year’s CPU to magically make your slow code fast. Amdahl’s Law reminds us that optimizing one part of a program yields diminishing returns if other parts remain slow; in practice, this means old-school devs focus their optimization efforts where it truly counts (the “hot path”). They’ll profile code to find the 10% of code using 90% of the time, and laser-focus on that critical section. This ruthless prioritization of optimizations stems from deep theoretical understanding: speed up what users feel most, lest you waste time polishing code that isn’t the bottleneck.
Under the hood, an older performance-focused engineer is also thinking about computer architecture. They grew up in the era where you needed to know what the CPU and memory were doing. Terms like cache misses, branch prediction, and memory allocation overhead aren’t abstract academic ideas – they’re everyday considerations that determine if a program runs in 0.1 seconds or 1.0 seconds. For example, they might consider data locality: an array that stays in L1 cache can be processed an order of magnitude faster than a linked list that causes constant cache misses. They know a mispredicted branch can stall a CPU pipeline for dozens of cycles. These are microscopic effects by themselves, but in a tight loop they add up to real time users notice. A veteran dev might do something seemingly eccentric like unrolling a loop or using bitwise operations to squeeze more speed, because they understand the hardware-level costs. To many modern developers insulated by thick layers of frameworks, such low-level maneuvers seem arcane. But for the old guard, efficiency is a principle, grounded in the reality that bytes and cycles still matter. The meme jokes that this awareness is an “old person” trait, yet ironically it’s built on timeless CS truths: no matter how advanced our tools get, we’re still bounded by algorithmic complexity and the laws of hardware. The elders in the field know this, even if the new generation is blissfully riding on the coattails of three decades of Moore’s Law.
Description
A screenshot of a thread from the r/AskReddit subreddit. The post, submitted by user u/Glittering-Air-1927, asks the question: 'What "old person" things do you do?'. Below the post, a comment by user dullbananas provides the answer, 'when programming, i care about performance'. This simple statement has been upvoted 24 times. The humor in this meme stems from the idea that concerning oneself with code performance is now considered a trait of an older, more experienced generation of programmers. In an era of powerful hardware and high-level abstractions, the focus for many newer developers is on rapid development and feature delivery, whereas veterans who started in more resource-constrained environments often retain a deep-seated appreciation for efficiency and optimization. The meme serves as a humorous commentary on the shifting priorities and generational differences within the software development field
Comments
24Comment deleted
The fastest way to feel old as a developer isn't a sore back, it's watching someone import a 2MB library to pad a string and then complain about CI build times
Gen-Z dev: “Why micro-optimize? Just add another node.” Me, the fossil: “Horizontal scaling isn’t a garbage collector for bad algorithms, kid.”
The real 'old person' thing is remembering when we had to count CPU cycles because AWS didn't exist to throw infinite money at performance problems
Ah yes, the classic generational divide: caring about Big O notation and memory allocation is now considered 'vintage' alongside reading physical newspapers and using a landline. Next thing you know, they'll tell us that profiling before optimizing and actually measuring performance metrics makes us dinosaurs. But hey, when their O(n²) algorithm brings the production server to its knees at scale, guess who they'll call? The 'old person' who still remembers that computational resources aren't infinite and that users notice when your React app takes 8 seconds to render a button
Call it "old" until p99 breaches the SLO and Finance forwards the AWS bill - suddenly microseconds have product-market fit
Performance caring: because after 15 years, you've held the pager when 'it'll scale with more RAM' became a multimillion-dollar lie
Old-person habit: I open perf and fix the hot path; modern habit: open AWS Cost Explorer and call it scalability
trying to understand assembly Comment deleted
memory managment Comment deleted
I use very slow devices and I fucking should care about performance Comment deleted
Yes, and I use onion architecture and write clean code Comment deleted
nobody knows what clean code is Comment deleted
well, you're kinda right Comment deleted
Uncle Bob shakes your hand 😏 Comment deleted
TBF, when the eShop is too heavy for the Switch to run without hitches, people should be caring about performance more Comment deleted
And no it's not “the Switch is too weak to render a shop” LMAO it renders 3D games my guy It's “the eShop application is a web app downloading and running several MB's of JS for its unnecessary React FE and they turned JIT off on the Switch browser because they thought it was scary” That shop does not need to have more than a few lines of JS, nor does it need to be a web app ffs just build a shop like you build games Nintendo, clearly you can make those! Comment deleted
dw their recent games are just as shit Comment deleted
I'm just going to say that they're about the only AAA studio delivering polished games, rather than buggy and half-finished They're the only not-indie studio I buy games from Comment deleted
I'm just gonna point towards literally any pokemon game post-2020 Comment deleted
I agree, those suck I used to be a Pokémon fan but not anymore Nintendo however still makes good games, even when TPC doesn't Comment deleted
the good games they publish are contracted though I suppose pokémon is too, so… nevermind actually Comment deleted
I meant their first party games; their Mario, Kirby, LoZ games, those are still really well polished Pokémon is a “second party” game, and also infamously shit especially according to Nintendo fans Comment deleted
I guess but those are rare gems, certainly worth more attention than a crummy e-shop Comment deleted
I wouldn't call some of the bigger game franchises such as Mario rare gems If anything Nintendo first party games are almost always really well made; even if you don't like them you can still notice they're not buggy, the mechanics work well together and they respond to the controls well But this doesn't apply to everything released on their console, nor does this even extend to their so called second party franchises, e.g. external companies that release exclusively with them And Pokémon is an incredible outlier by Nintendo and their second party standards Comment deleted