Skip to content
DevMeme
5605 of 7590
Languages Post #6149 · source on Telegram

C++ headers praised, Java interfaces shunned: language bias office comic

Description

Two-panel “Sunny Street” office comic titled “KNOW THE WORK RULES.” Top panel, labeled “APPROPRIATE,” shows a suited man whose head is replaced by the C++ logo saying, “Define function signatures in a .h file.” A female coworker at her desk clasps her hands with a red heart floating nearby and replies, “Wow, decoupling definition and implementation is so smart.” Bottom panel, labeled “INAPPROPRIATE,” shows a sweater-vested man with the Java coffee-cup logo for a face saying, “Define method signatures in an interface.” The same woman, now on the phone and cringing, responds, “Eww, boilerplate that I’m way too smart for.” Caption at bottom reads “SUNNY STREET © 2013 Max Garcia.” Visually it contrasts identical design patterns - C++ header declarations versus Java interfaces - highlighting developer double standards about “decoupling” versus “boilerplate,” a common source of language-war humor and code-quality debates among engineers

Comments

10
Anonymous ★ Top Pick Rename a .h to FooInterface.java and watch the same architect who praised its “clean separation” now lecture you on avoiding “enterprise boilerplate” - turns out even senior devs compile with header bias
  1. Anonymous ★ Top Pick

    Rename a .h to FooInterface.java and watch the same architect who praised its “clean separation” now lecture you on avoiding “enterprise boilerplate” - turns out even senior devs compile with header bias

  2. Anonymous

    After 20 years in the industry, I've learned that 'boilerplate' is just what we call design patterns when they're in a language we didn't learn in college. The real interface segregation principle is segregating developers who admit they're all doing the same thing from those who insist their language does it 'the right way.'

  3. Anonymous

    The real joke here is that after 30 years, we're still having the same architectural conversation - just with different syntax. C++ devs put their contracts in .h files and get praised for 'decoupling,' while Java devs put theirs in interfaces and get roasted for 'boilerplate.' Meanwhile, both camps are doing the exact same thing: separating 'what' from 'how.' It's like arguing whether a function should be called 'get_user' or 'getUser' - technically different, philosophically identical, and somehow still worth a flame war in 2024

  4. Anonymous

    Declare in a C++ header and it’s “clean separation”; declare a Java interface and it’s “ugh, boilerplate” - apparently abstraction is elegant only when the linker gets a cameo

  5. Anonymous

    Default interface methods: convenience today, LSP violations and subclass confusion tomorrow

  6. Anonymous

    When it's a .h we call it 'separate compilation and ABI hygiene'; when it's a Java interface we call it 'boilerplate' - turns out language bias is the most persistent dependency

  7. dev_meme 2y

    🐾

  8. @farkasma 2y

    I've seen better crops in the Irish famine

  9. @CammyDeer 2y

    Bad crop? Bro, we're fucking starving

  10. @a_646_man 1y

    should be “define default methods in interface”

Use J and K for navigation