"It's easy to make mistakes that only come out much later, after you've already implemented a lot of code. You'll realize Oh I should have used a different type of data structure. Start over from scratch"
About this Quote
Van Rossum’s warning lands like a quiet rebuke to a certain kind of programmer bravado: the belief that shipping lots of code is the same as making progress. He’s pointing at the most expensive category of mistake in software - not the typo, not the bug, but the early structural decision that only reveals itself after your codebase has accumulated commitments. By the time you notice the mismatch, you’re no longer just fixing an error; you’re renegotiating a whole architecture.
The line “Oh I should have used a different type of data structure” is deliberately mundane, almost comic in its simplicity. Data structures are CS 101 material, which is precisely the point: catastrophic rewrites often originate in choices that felt small, obvious, even boring. Van Rossum’s subtext is that complexity doesn’t always announce itself as complexity. It often arrives as friction: performance cliffs, tangled interfaces, features that take twice as long as they should.
“Start over from scratch” isn’t romantic advice about the purity of refactoring. It’s an acknowledgment of path dependence: once you’ve built enough on top of a shaky foundation, incremental fixes become a tax you pay forever. Coming from the creator of Python - a language shaped by hard-won pragmatism and iterative design - the context is clear: flexibility is not the same as forgiveness. You can move fast, but your early abstractions will eventually demand payment, with interest.
The line “Oh I should have used a different type of data structure” is deliberately mundane, almost comic in its simplicity. Data structures are CS 101 material, which is precisely the point: catastrophic rewrites often originate in choices that felt small, obvious, even boring. Van Rossum’s subtext is that complexity doesn’t always announce itself as complexity. It often arrives as friction: performance cliffs, tangled interfaces, features that take twice as long as they should.
“Start over from scratch” isn’t romantic advice about the purity of refactoring. It’s an acknowledgment of path dependence: once you’ve built enough on top of a shaky foundation, incremental fixes become a tax you pay forever. Coming from the creator of Python - a language shaped by hard-won pragmatism and iterative design - the context is clear: flexibility is not the same as forgiveness. You can move fast, but your early abstractions will eventually demand payment, with interest.
Quote Details
| Topic | Coding & Programming |
|---|
More Quotes by Guido
Add to List






