Laziness is a virtue LLMs can't have
- https://www.youtube.com/watch?v=iN_9aH3VuzU
- Original title: I miss when programmers were lazy.
Theo reacts to Brian Cantrill's article "The Peril of Laziness Lost." The three virtues of a great programmer — laziness, impatience, hubris — drive us to build crisp abstractions. LLMs, for whom work is free, lack laziness, and that's a problem.
The classic framing (from Programming Perl): laziness makes you build labor-saving abstractions so you never touch the problem again; impatience makes you fix things; hubris makes you believe you can. Cantrill's point is that good laziness — "hammock-driven development" — is hard intellectual work that optimizes your future self and everyone who comes after. Theo relates it to the T3 stack: built out of laziness (hating cross-boundary type errors), hubris (challenging other stacks), and impatience (not wanting to re-explain it), it let people write far less code (a 5–6k-line Firebase app rewritten in <500 lines).
The danger: LLMs feel no cost to work, so they "happily dump more and more onto a layer cake of garbage," making systems larger, not better. Cantrill skewers Gary Tan bragging about 37k lines of code/day (vs. all of DTrace at ~60k) — "assessing literature by the pound." A cited teardown found a single blog page shipping multiple test harnesses, a whole Hello-World Rails app, a stowaway text editor and eight logo variants (one zero bytes). Theo's darker observation: bad codebases used to die because no good engineer would maintain them (a kind of survival of the fittest); now LLMs keep slop alive past its natural lifespan, so the volume of slop grows exponentially. The conclusion (echoing Cantrill's Larry-Ellison-as-lawnmower bit): the LLM cannot care about quality — it's a token machine; we have to be the ones who care, using AI to attack tech debt and rigor in service of our own virtuous laziness. He notes even Uncle Bob now embraces AI for washing away syntax concerns.