Self-Explanatory Variable Names Taken to Absurd Extremes
Description
A screenshot from ProgrammerHumor.io showing a Reddit-style thread. The original post by ecky--ptang-zooboing (682 upvotes, 29 comments) states: 'Your function and variable names should be self explanatory.' A reply by Seradwen (58 upvotes) takes this literally by writing function calls using every possible capitalization variant of 'selfExplanatory': 'selfExplanatory(selfexplanatory);', 'seLfExplanatory(selFExplanatory);', 'selfexplanatory(SELFEXPLANATORY);', 'sElfExplanatory(selfExPLANatory);' followed by 'Am I doing it right?' A third user JustAnotherPanda replies with just '(' expressing despair. The joke plays on case-sensitivity in programming and the gap between naming advice and naming practice
Comments
11Comment deleted
There are only two hard problems in computer science: cache invalidation, naming things, and consistent capitalization of selfExplanatory
This isn't camelCase or PascalCase; it's ransomNoteCase, and the only demand it makes is for the linter to be disabled and the PR to be approved out of sheer exhaustion
Pro tip: if your identifier shows up in four different case-sensitive permutations, congrats - you’ve implemented Schrödinger’s function: simultaneously readable and unbuildable until the CI collapses the waveform
This is what happens when you tell a senior engineer their code needs to be 'self-documenting' one too many times - they create functions that literally document nothing but their own existence, achieving perfect semantic accuracy while violating every principle of useful abstraction
When your tech lead insists on 'self-documenting code' so aggressively that you end up with `selfExplanatory(selfexplanatory)` - because nothing says 'maintainable codebase' quite like a function that takes itself as a parameter with varying capitalization. It's the programming equivalent of 'this sentence is false,' except your linter is now having an existential crisis and your code reviewer just filed for early retirement
“Self-explanatory” works great - right up until the case‑sensitive runtime, a case‑insensitive DB collation, and your grep pattern all disagree about which SELF you meant
selfExplanatory(selfExplanatory): the polymorphic variable that outlives any style guide or linter
Encoding meaning in capitalization is human-only obfuscation - the cheapest refactor is a good noun, not a new camel
so far so good Comment deleted
Self(explanatory); Comment deleted
self::explanatory(); Comment deleted