Random users installing random software gives you botnets.
This is only true in case of insufficient security mechanisms. Virtualization/containerization (for example, docker model) would allow users to run independently installed applications safely.
Similarly, I guess that the motivation for centralized store (apart from the financial motive of the store owner: Apple/Google) is to provide security through the process of vetting the apps. But again, if we had proper virtualization software, there would be no reason not to allow users to add unofficial repositories, maintained in a decentralized way.
Of course, virtualization/containerization done on the OS level is (currently) quite resource-intensive. But the alternative is even worse—with everything moved to the web, we are building (we have built...) OS inside OS! With all the problems that it entails: this “new OS” supporting really only one language, having extremely limted set of protocols, overall not having anything close to the full environment of the proper OS.
Summarizing: why would you advocate this all just to solve intercompatibility and safety problems (which, if I read your post correctly, are the reasons for moving apps to web), instead of dealing with them properly, on the OS level?
Android does allow sideloading APKs and installing third-party app stores (ex: https://f-droid.org/), though iOS does not. An unvetted mobile app is less risky than an unvetted traditional program (with full user-level access), but still more risky than a web app.
If Android and iOS (and Windows, Linux, macOS...) put in the effort to where loading a program was a safe as visiting a webpage, that would essentially be fine. I would prefer a world in which you could write for a single platform and then run on any device with a browser, but it’s the gatekeeping I’m most concerned about.
On the other hand, I can’t see iOS doing this when they don’t even allow custom browsers.
This is only true in case of insufficient security mechanisms. Virtualization/containerization (for example, docker model) would allow users to run independently installed applications safely.
Similarly, I guess that the motivation for centralized store (apart from the financial motive of the store owner: Apple/Google) is to provide security through the process of vetting the apps. But again, if we had proper virtualization software, there would be no reason not to allow users to add unofficial repositories, maintained in a decentralized way.
Of course, virtualization/containerization done on the OS level is (currently) quite resource-intensive. But the alternative is even worse—with everything moved to the web, we are building (we have built...) OS inside OS! With all the problems that it entails: this “new OS” supporting really only one language, having extremely limted set of protocols, overall not having anything close to the full environment of the proper OS.
Summarizing: why would you advocate this all just to solve intercompatibility and safety problems (which, if I read your post correctly, are the reasons for moving apps to web), instead of dealing with them properly, on the OS level?
Android does allow sideloading APKs and installing third-party app stores (ex: https://f-droid.org/), though iOS does not. An unvetted mobile app is less risky than an unvetted traditional program (with full user-level access), but still more risky than a web app.
If Android and iOS (and Windows, Linux, macOS...) put in the effort to where loading a program was a safe as visiting a webpage, that would essentially be fine. I would prefer a world in which you could write for a single platform and then run on any device with a browser, but it’s the gatekeeping I’m most concerned about.
On the other hand, I can’t see iOS doing this when they don’t even allow custom browsers.