The Ultimate Coding Style Holy War
Description
This image uses a well-known, non-technical debate as a metaphor for programming arguments. It shows a two-panel comparison of toilet paper orientation. On the left, a roll is mounted so the paper hangs over the top, which is labeled 'Good' in green text. On the right, the paper hangs from the bottom, against the wall, labeled 'Bad' in red text. The post's caption, 'Coding style', makes the analogy explicit. The meme humorously equates the fierce, often subjective debate over how to hang toilet paper with the 'holy wars' in software development over coding styles, such as tabs versus spaces, brace placement, or naming conventions. It speaks to the tendency of developers to have strong, seemingly arbitrary preferences that become major points of contention within teams
Comments
8Comment deleted
I've seen PR comments longer than the actual code change debating brace placement. It's the modern equivalent of arguing about toilet paper orientation, except one of them can actually break the build
Architecture guild verdict: “over” gives constant-time paper access; “under” turns it into an O(n) edge-hunt - non-deterministic behavior is grounds for PR rejection
The team that spent three sprints debating toilet paper orientation just shipped a critical API that returns HTTP 200 for every response, including errors
The 1891 patent settled this - 'over' is the spec. Everything else is a downstream fork that should've been rejected in review
This is the equivalent of discovering your senior architect has been implementing the Singleton pattern by creating a new instance every time. Sure, it technically works in their isolated test environment, but it violates the fundamental specification (US Patent 459,516, 1891) and creates unnecessary friction for every downstream user. The 'Bad' implementation is like code that passes CI but fails the architectural review - functionally operational but architecturally wrong, and everyone who encounters it will silently judge the implementer's understanding of established conventions
Over is O(1) end discovery and idempotent tearing; under is wall-coupled hidden state that turns 'find the edge' into distributed tracing with exponential backoff
Over: trailing commas prevent git merge hell. Under: your PRs deserve the linter flames
Left is gofmt: one canonical orientation; right is “engineer discretion,” which guarantees a 200-comment PR and three bikeshed meetings