Because we write extensible instead of composable software. We do not distribute functions, but apps. How many instructions do you need in assembly to compute `1+1`? How many instructions do you need to open your search bar, get the calculator and do the calculation? We also make software responsible for way too much. Cross-platform is a joke. How can we expect developers to consider every platform? Obviously they wi…
It seems like sometime around the late 2000s we literally gave up on the idea of composability as a profession. I think economics has a lot to do with it. People buy apps and services, not functions and components. All the money is at the tail end of the development process when something becomes product, and that involves a lot of things that are at odds with composability.
Making software stable (including for example the web spec) would go a long way improving efficiency.