March 14, 2026
Dev world stuck in a loop
Recursive Problems Benefit from Recursive Solutions
Devs feud over recursion vs loops as “let the compiler do it” takes fly
TLDR: A developer argues recursive code is easier to adjust for small changes than loops, using tree-walking examples. The comments brawl over safety versus clarity: some want compilers to auto-convert recursion to loops to avoid crashes, others say it depends, and one notes breadth‑first is simpler iteratively—maintainability vs pragmatism matters.
A programmer wrote a love letter to recursion, arguing that when a problem is naturally “nested,” recursive code is cleaner to tweak than a pile of loops. They demo’d walking a tree: flipping from “visit the root first” to “visit the root last” took a tiny tweak in the recursive version, while the loop-based rewrite felt clunkier. Cue the comments, and oh boy: Team Recursion and Team Loop showed up with megaphones.
One camp, led by swiftcoder, basically yelled “let the machines handle it,” arguing that turning recursion into a loop with a manual stack is a mechanical process a compiler could auto-do to dodge crashy “stack overflow” errors. Others, like jonathanlydall, went pragmatic: if your data isn’t that deep (he’s walking TypeScript code files), you’ll probably never blow the stack, so why sacrifice clarity? The vibe: keep it elegant unless reality bites.
Then twic dropped a double whammy: first roasting their workplace where everything—yes, everything—gets converted into recursion (“If I had a pound for every recursive function named ‘loop’…”). Then the twist: try breadth‑first search (BFS). Iterative code? Just swap in a queue. Recursive code? “Radical changes.” Suddenly the thread split between “recursion is graceful” and “loops are adaptable,” with memes about being stuck in a loop, and more than a few cheeky “Stack Overflow” puns. Drama? Recursive.
Key Points
- •The article argues that converting recursive functions to iterative ones may not be desirable when requirements change frequently.
- •A TypeScript linked list and binary tree are defined to demonstrate order-sensitive construction during traversal.
- •A recursive preorder traversal uses an accumulator to build the list, producing a reversed order (7 at head, 1 at tail end).
- •A recursive postorder traversal (right, left, root) requires only small changes, preserving code similarity to preorder.
- •An iterative preorder traversal uses an explicit stack, which can add complexity when adapting to new traversal requirements.