Programming frameworks can seem ubiquitous one day and disappear the next. Some hypotheses on why:
- API surface is too large. This is the most common reason frameworks fail. API surfaces naturally grow over time. Without a clear understanding of the problem space and diligent leadership, they can grow extremely quickly. In AI, this is an especially pointed problem — a fast-moving frontier can encourage frameworks to implement everything to keep up.
- Underlying paradigm shift. Microservices. Mobile. Cloud. Thick vs. thin clients. Paradigm shifts create opportunities for new frameworks (which, in effect, obsolete others)
- Bad rewrite / Wrong direction. Angular 2.0 is different enough from Angular 1.0 that it might have been called a completely different name. Complete rewrites are usually a wrong decision. They take a long time and often contain the hubris of believing they can short-circuit the discovery process (step-wise is hard to pull off).
- Funding / Stewardship evaporates. A maintainer moves on. A company focuses on different priorities. Especially in the age of open-core software, this is prevalent. Many frameworks exist only because of the institutional power behind them — see the support and growth of React vs. React Native.
- Misaligned Incentives. Other times, open-core companies have misaligned incentives with their users, intentionally designing a framework to support their business model rather than the customer’s desires.
- M:N connectors. The last trap is the ETL problem of connectors. Frameworks hack distribution by connecting as many systems as possible. In the short term, this works (and feels magical). Long-term, the connectors slowly degrade and break as the developers face an unsurmountable maintenance problem.