There’s a term in software development, “technical debt”, which refers to the old stuff in a codebase that over time becomes something that has to be worked around, or accomodated, or otherwise becomes an impediment to further development. People often talk of addressing technical debt incrementally over the lifetime of a project by factoring out the problem bits and redoing them with the current tech, which is hard: complex, hard to keep the whole thing running while you change it, easy to break stuff that depends on it. At some point it becomes easier to just rewrite your code from scratch.
I’m starting to think of this as analogous to what we’re trying to do with late-stage capitalism. Take an old engine that bootstrapped the world to a certain place but which is now creating more problems than it’s solving: the climate emergency, inequality, oligarchy and corporate power. We’re trying to mitigate these things within the system, while preserving the bits without which the system would fall down, fixing the plane while it’s in the air. Theoretically, at some point it becomes easier to rewrite from scratch: given a global population of 8 billion, resources of X, what’s the best way to allocate resources to make everyone’s lives work? What institutions do we just get rid of, rather than fixing? But generally it’s easier, short-term, to just patch up what we’re doing and try to redirect it to address the issues.