Pool of Shame: Mocked for Duplicating Code Instead of Abstracting
Description
The classic 'people pointing and laughing in a pool' comic illustration: eight grinning swimmers in a yellow-tinted public pool form a circle around one miserable, wide-eyed man standing chest-deep in the middle, all pointing at him. Overlaid captions give the mockers dialogue: "where's your base class, loser?", "hahaha, he duplicated code that could have been abstracted", and "i bet he doesn't even know how generics work". The meme lampoons OOP-purist code review culture, where copy-pasting code instead of building base-class hierarchies and generic abstractions invites public ridicule - while seasoned engineers know premature abstraction is often the worse sin (WET vs DRY, 'duplication is cheaper than the wrong abstraction')
Comments
23Comment deleted
Laugh now - in six months that 'missing' base class would've grown nine template parameters and a config flag, and the copy-paste guy ships while you refactor
Everyone laughed at the duplicate code until the base class needed a boolean named `isActuallyThisSubclass`.
Claude, what are they talking about? Comment deleted
https://youtu.be/wo84LFzx5nI Comment deleted
first interpretation: vibecoder being shamed on not knowing basics second interpretation: simple code chad being shamed on making code simple and readable both interpretation fail basic logic. the first one fails because vibecoder has clean water around him and all other piss their pants. should be vise versa. the second one contradicts the definition of chad. sad person ashamed of their simple code cant be a chad. so the real interpretation of the meme is unclear. ps do I sound like llm? Comment deleted
Hobbyist junior that was not taught oop and used what simply worked but now faces it in the workplace Comment deleted
Perfect example is this video https://youtu.be/pCbZYe2yoDo Comment deleted
This. The meme is thrash. Comment deleted
Same. So i came to the third interpretation: someone cant meme Comment deleted
Stop with those vibevoders Meme laughs at application of design principles and approaches without even considering any need for them Do you see any context why they are suggesting any of it? Yeah Comment deleted
people with abstract thinking ability at the level of a dishwasher from '90s often reject any abstractions by calling them redundant, and their trash code "beautifully simple" over-engineering is also a thing, but it's impossible to say whether the author of the meme is a case of the latter or the former without seeing the code Unfortunately, vibecoders and other Dunning-Kruger peakers alike will use memes like that to feed their delusions of grandeur Comment deleted
1. If his code is beautifully simple, then why does he feel bad? That's the "Chad" case. 2. One does literally say "he duplicated the code that could have been abstracted". The abstraction level is debatable, ofc, but the fact of the occurrence of code repetition is a hint that the probability that the code is shit is higher. Comment deleted
I’m so tired of people’s attempt to make abstractions to handle 100 small cases "but besides this small nuance the rest is exactly the same" being repeated again and again… No, there’s tons of cases when big portions of code can be duplicated instead of god-like base class abstractions Comment deleted
I'm not talking about godlike base classes. Those are garbage. In a broader sense (not just in terms of interfaces, abstract classes and stuff), any move of duplicated code to a function that's not made precisely for that single action with 100 lines of case-specific code, is an abstraction too. Comment deleted
Image has no context People all around suggest what guy in clean water should change and name him names Doesn’t look like a sane review process to me Comment deleted
> sane review process Shall we create a ticket with a request for more context for that unclear task of understanding the meme? Comment deleted
Let’s setup a real quick meeting first, fill in checklist in confluence and agree on epic which will contain intended scope 🙏 Comment deleted
You assumed the person in the middle is chad who's never upset. He's just a guy that wanted to write simple code and was shamed for it therefore he is sad. I like the meme Comment deleted
You sound like a terminally online person with optimisation OCD and analytical mind. Btw i have a 3rd interpretation: premature abstraction is the root of all eveil, YAGNI Comment deleted
Or maybe someone who doesn't use OOP in the circle of C# users Comment deleted
If you don’t have 3 layers of boilerplate - you are not doing it right Comment deleted
overengineering vs traditional engineering Comment deleted
I think the main reason is that there are a huge number of low-quality js and python programmers without any basic cs knowledge and for whom abstractions are some kind of abstruse and unnecessary things Comment deleted