Software sucks because business models must frequently be addressed before customer's needs are addressed. Of course this is a simplification of the process, but no company continues writing software if their business models for that software fail and they run out of money or is threatened with shutdown if they don't comply with the government.
To "reinvent" the "web" (or what I call the Intercloud), business models must be removed from the equation. New models of work storage and exchange must be created to allow developers to write code for the people who need it. When a user relies on a feature, there should always be a clear path for them to a) continue using that feature for as long as they see fit and b) enter into a contractual agreements with a developers to develop new features they need. This should be able to be done without a corporation or business model getting in the way.
It also implies all the software down the stack is reinvented in the same way to support this new methodology. Deployments/installs, for example, will need to be done differently moving forward.
This is obviously bad news for the "startup" scene, but good news for humanity. Things are getting complicated and clearly don't scale well doing it the old way. It's time for a change.