Semantic Compression (2014)

Dev mocks overcomplicated code; fans cheer simplicity while skeptics warn about real‑world chaos

TLDR: A revived essay blasts overbuilt, class-heavy coding and cheers building the simplest thing that works. Commenters mostly agree, while critics say real business needs—like databases and downtime—demand planning; the clash matters because it influences how teams balance speed, safety, and future pain.

An old-but-gold rant just resurfaced, and devs are reliving the great coding divorce: keep it simple or architect the cathedral. In the essay, a game engineer roasts the “class-every-noun” style taught in books, poking fun at endless hierarchies and flowcharts before any real work happens. The comments? A victory lap for the ship it, then shape it crowd. One top voice cheers, “I never engineer anything until I have to,” while another calls it the permission slip they needed to ditch trendy object worship. The vibe is clear: fewer diagrams, more doing, and please, no more “Manager<Contractor<Person>>” jokes.

But not everyone is clapping. A skeptic points out the piece dodges messy realities like databases, migrations, and downtime—the unglamorous business stuff that forces structure. Another dry quip: “not hard to predict you’ll need buttons more than once,” a nudge that foresight isn’t evil. The counter‑take says the author still ended up with layers of indirection anyway. Meme patrol reported in with beard jokes, UML bingo cards, and “OOP or Oops” one‑liners. The thread lands in a spicy middle: build the simple thing first, then earn the abstractions when pain shows up—but don’t pretend real‑world constraints won’t crash the party.

Key Points

  • The article satirizes building class hierarchies from domain nouns as a starting point for C++ programs.
  • It highlights complications from inheritance decisions (e.g., Manager as Employee vs. Contractor) and the pitfalls of multiple inheritance.
  • It critiques adding templates and UML modeling as escalating abstraction without addressing real coding needs.
  • The author states that many programmers, including prominent figures, promote this approach; the author previously did as well.
  • Experience at RAD Game Tools influenced the author to reject OOP-heavy design and advocate for practical, efficient coding.

Hottest takes

"I never engineer anything until I have to" — thefourthchime
"It was the permission I needed to buck those trends" — imron
"You’re not dealing with persistence. No DB, no migration headaches" — lijok
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.