March 23, 2026
++ or bust? The internet has thoughts
Side-Effectful Expressions in C (2023)
C’s ++ meltdown: coders split between “ban it” and “meh”
TLDR: A writer blasted C’s “do stuff while computing” tricks—especially ++/-- and assignment-in-expressions—as readability traps, and the community instantly split. Minimalists cheer Go-style simplicity, while C veterans shrug and say “learn the rules,” turning a coding nitpick into a culture war over safety and clarity.
An opinion piece called out C’s sneakiest habits—like doing an action while calculating something else—spotlighting assignments and the notorious ++/-- operators as the chief culprits. The author argues this makes code harder to read and reason about, pointing to a silent number‑shrinking example that compiles without a peep. Cue the comments: the internet lit up.
Minimalists rallied behind “less magic, more clarity.” User andrewla went in hard, saying Go (go.dev) got it right by allowing ++/-- only as stand‑alone commands, not inside bigger expressions. Their vibe: compact code isn’t a goal, readable code is. Some even want the equals sign to stop behaving like a sneaky expression in disguise. On the other side, long‑time C fans shrugged. User commandlinefan admitted a bit of “Stockholm syndrome” but still wasn’t convinced the examples justify tossing C’s quirks, much less replacing the language.
Between quips about “C without ++ just being C—” and sighs about teaching beginners, the split is clear: clean‑code crusaders want to declutter, while C lifers say the weirdness is part of the charm—and there are tools and warnings if you care. The stakes feel big because C powers a lot of crucial software. Change the habits, change the culture. Or don’t, and brace for more spicy threads.
Key Points
- •The author groups C language issues into two buckets: safety and user/implementer sanity.
- •An example shows an implicit narrowing cast from uint64_t to uint16_t compiles without warnings under clang -Wall.
- •The article focuses on two problematic C features: assignment expressions and pre/post-increment/decrement operators.
- •It argues computations suit expression trees, while side effects are better expressed as sequences of statements.
- •The author contends that embedding side effects in expressions obscures order and harms clarity and predictability.