We should distribute software in a way such that its dependencies are completely described. So when we pull something from the internet (be it a JS file or some HTML), the system will know what other software to pull and it will just run. The current way of doing things works most of the time, but it is fundamentally flawed, which becomes apparent when viewing stuff from a decade ago.