Skip to content
DevMeme
149 of 7435
A Casing Style So Bad, Not Even Hell Wants It
CodeQuality Post #186, on Feb 28, 2019 in TG

A Casing Style So Bad, Not Even Hell Wants It

Why is this CodeQuality meme funny?

Level 1: Too Messy Even for the Naughty List

Programmers have spelling rules for naming things, like agreeing that everyone on a team writes dates the same way so nobody gets confused. This person named something in a way that breaks every rule at the same time — capital letters in random places, dashes and underscores mixed together, letters disguised as numbers. The joke is that he's so bad at it that when he shows his work to the devil — the one guy whose whole job is welcoming bad people — even the devil gasps in horror and won't let him in. It's like showing up to a monster's house and being too scary for the monster.

Level 2: A Field Guide to Casing

The joke assumes you know the casing taxonomy, so here it is:

Style Example Typical habitat
snake_case user_count Python, Ruby, SQL
camelCase userCount JavaScript, Java
PascalCase UserCount Class names, C#, Go exports
kebab-case user-count CSS, URLs, file names
SCREAMING_SNAKE USER_COUNT Constants, env vars

Each language community standardized on one or two of these, and a naming convention simply means: pick the local one and never deviate. The meme's identifier deviates in every direction at once.

Why anyone cares: you read code far more than you write it. Consistent casing lets you skim — you see MAX_RETRIES and instantly know it's a constant without checking. Inconsistent casing forces a tiny conscious decision on every name, and those micro-costs compound across a 100k-line codebase. This is also why your first week at a real job involves a linter (a tool that flags style violations automatically) and a formatter rejecting your pull request. It's not hazing; it's the team outsourcing arguments to a config file so code review can focus on logic instead of aesthetics. And one practical warning from lOOk: never put characters in names that can be confused for others (l/1, O/0) — someday, someone will debug for an hour because of it, and that someone is usually future you.

Level 3: Crimes Against the Style Guide

Satan: So what are you in hell for? Me: Because of my casing style Satan: Can't go to hell because of casing style Me: here_lOOk-At_it Satan:

— and the final panel is a vintage cartoon devil recoiling in wide-eyed horror, hand to his face. The Prince of Darkness, who presumably processes war criminals before lunch, draws the line at this identifier.

Dissect here_lOOk-At_it and you find it's not one violation — it's a combinatorial one, which is why it reads as genuinely cursed rather than merely sloppy. It mixes snake_case (here_), kebab-case (-At), and arbitrary mixed capitalization (At_it) in a single name, which in most languages isn't even legal: the hyphen makes it a subtraction expression in Python, JavaScript, Java, and C — here_lOOk - At_it — so this identifier doesn't violate the style guide so much as the parser. And the middle segment, lOOk, weaponizes lookalike characters: a lowercase l followed by two capital Os, visually impersonating 100k. That's the same homoglyph trick used in actual supply-chain attacks (typosquatted package names, spoofed domains), which means this name isn't just ugly — it's adversarial. Code review exists precisely because some defects are invisible to compilers but obvious to a horrified human face.

The deeper truth being satirized: naming conventions are one of the few zero-cost, high-leverage agreements a team can make, and yet they generate the most theological conflict. Casing carries semantic weight by convention — PascalCase for types, camelCase for variables, SCREAMING_SNAKE for constants, kebab-case for CSS and URLs — so a reader's brain pattern-matches on shape before reading letters. An identifier that scrambles those signals doesn't just look bad; it actively lies to the reader about what kind of thing it is. That's why teams enforce this with linters and formatters rather than trust: the entire point of tools like ESLint's camelcase rule or gofmt's opinionated tyranny is to make this meme impossible by construction. The joke's framing is perfect — the sinner doesn't get condemned for the identifier, he gets rejected. Even hell has standards, and this fails intake review.

Description

The meme is a dialogue-based joke followed by a reaction image. The text describes a conversation: 'Satan: So what are you in hell for? Me: Because of my casing style. Satan: Can't go to hell because of casing style. Me: here_lOOk-At_it. Satan:'. The final line is followed by an image of a cartoon devil, red with horns, looking utterly horrified and repulsed. The humor comes from the programmer's 'casing style,' which is a chaotic mix of snake_case, camelCase, and random capitalization (`here_lOOk-At_it`). This is a major violation of coding best practices, which emphasize consistency for readability and maintainability. The joke is that this coding sin is so egregious that it disgusts even Satan, the embodiment of evil, making it a relatable and funny scenario for any developer who has encountered inconsistent and messy code

Comments

8
Anonymous ★ Top Pick I once inherited a codebase with mixed casing like that. We didn't refactor it; we put it behind a VPN and charged archeologists to study it as a digital atrocity
  1. Anonymous ★ Top Pick

    I once inherited a codebase with mixed casing like that. We didn't refactor it; we put it behind a VPN and charged archeologists to study it as a digital atrocity

  2. Anonymous

    Mix snake_case, camelCase, and kebab-case in a single identifier and you’ve effectively implemented chaos engineering at the lexical layer - production will self-destruct so you don’t have to schedule the game day

  3. Anonymous

    This is the same variable naming convention the contractor used before they "successfully migrated" our monolith to microservices and disappeared with half the budget

  4. Anonymous

    Even Satan has a style guide. Mixing snake, kebab, and camel case in one identifier isn't a convention violation - it's a war crime the linter refuses to autofix

  5. Anonymous

    The real hell isn't the mixed casing style - it's realizing this would actually compile in some languages, pass through code review because everyone's too horrified to comment, and eventually become 'legacy code we can't touch' that gets cargo-culted across the entire codebase for the next decade

  6. Anonymous

    Our polyglot stack tolerates snake_case, camelCase, and SCREAMING_SNAKE_CASE, but here_lOOk-At_it triggered a sev-hell bikeshed until a pre-commit linter exorcised the Studly-kebab-snake

  7. Anonymous

    Even Satan knows: inconsistent casing turns grep into an exorcism

  8. Anonymous

    Polyglot casing: camelCase to the client, snake_case in Postgres, kebab-case in URLs, and SCREAMING_SNAKE_CASE in env vars - incident severity is proportional to who forgets the mapper

Use J and K for navigation