Back to Podcast Digest
Theo - t3.gg18m

I miss when programmers were lazy.

TL;DR

  • Laziness used to mean building fewer, better abstractions: Theo returns to the classic "three virtues" from Programming Perl, laziness, impatience, and hubris, and says the best programmers are still the ones who simplify systems so they barely need maintenance.

  • Brian Cantrill's point is that LLMs have no incentive to simplify: Because work is effectively free for a model, it will happily add layer after layer of code without optimizing for future human time, cognitive load, or maintainability.

  • Theo ties this directly to his own T3 Stack story: He says Create T3 App and the broader T3 approach came from being too impatient to keep explaining the same setup, too lazy to tolerate cross-stack type errors, and arrogant enough to think he could improve on existing patterns.

  • Gary Tan's 37,000-lines-per-day post becomes the anti-example: Theo agrees with Cantrill that measuring software by output volume is like judging literature by the pound, especially when the resulting artifact contained redundant assets, test harnesses, and obvious junk.

  • LLMs may keep bad software alive longer than it deserves: Theo says weak codebases used to die because strong engineers would either fix them, get blocked and leave, or check out entirely, but now AI can keep "slop" operating past its natural lifespan.

  • The real role for AI is handling syntax and grunt work, not caring about design: Echoing both Cantrill and even Uncle Bob, Theo says models are great tools for removing tedious work, but humans still have to decide what should be simpler and what complexity is actually necessary.

The Breakdown

37,000 lines of code a day is not a flex, it's a warning sign. Theo argues that the old programmer virtue of laziness, doing hard thinking now so software stays simple later, is exactly what LLMs do not have, and why humans still need to care about abstraction, bloat, and quality.

Was This Useful?

Share