To add on to this, the centralization factor of your webapp being a google search away is just one token of the overarching theme of "write once, run anywhere" -- this translates to value for the user. Web apps are quite literally the only thing that can be run on essentially any device that is or can be connected to the internet. Nothing else achieved this because nothing else had an interpreter which was the most essential foundation of browsing the internet.
From a user perspective, being able to instantly download any "app" you need (i.e. visit a website) has been the logical conclusion of high speed mobile data. It's low investment, takes up a miniscule amount of ephemeral storage, and works on anything.
From a developer perspective, you can be assured that your single codebase will run on virtually any device, with minimal adaptations to it. You have enough performance to run mildly resource intensive 3D games, some basic concurrency, and an ecosystem that fixes all of the most important faults in the language (typescript is the biggest one IMO). You also increasingly have APIs that allow you to do everything that you could otherwise do with a proper desktop/mobile app.
Literally the ONLY reason webapps are not the first choice for most companies is because they're not as sticky (obnoxious). Users aren't forced to look at your icon and receive your notifications until they disable them. That's it.
Well there's also some other factors I would think... as soon as you want that fancy web app of yours to convert a 10GB video file you're going to be sad. Or if you want to have control of your data. Or if you don't want someone ELSE to have control of your data. Or if you don't want them listening to everything you say, profiling everything you do, and lacing everything with advertising... Much is done remotely which has absolutely no need to be. Voice recognition is the perfect example now. Sure you need a gigantic corpus and a datacenter full of GPUs to train the recognizer... but once its trained, you could use it on a raspberry pi without a problem. But the company wouldn't get the data that way.
There's no reason a similar system couldn't be built to deliver platform-native applications that run with full access to data you control and which call out to corporate servers only for situations where those corporations are going to provide actual VALUE that couldn't be had locally couldn't be made. It just hasn't been.
>There's no reason a similar system couldn't be built to deliver platform-native applications
I'm very into the idea of HTML/CSS/JS on the desktop (and by extension, things like react native), even if simply as a frontend to a heavier duty application running on localhost. I feel like the OSs should be shipping runtimes for it instead of having insane 120MB hello world electron apps.
Web apps also don't necessarily mean someone else has control over your data -- it is technically easier to determine whether they do. You can inspect web requests in your browser, you can't in most native apps. There are plenty of silly things like Dark Souls stat calculators that make so much more sense as a webapp, and are 100% client side.
> I'm very into the idea of HTML/CSS/JS on the desktop
Why? there are better languages, platforms and layout engines. HTML/CSS/JS was meant to be a document markup sharing platform, not a rich application one. Use the best tool for the job.
> I feel like the OSs should be shipping runtimes for it
Well, Windows does come with the MSHTML control. Sadly for some reason they decided to version lock it at IE6 instead of keeping it up to date for applications to use.
Windows 8+ added the HTML/JS native application stack in the WinRT/UWP modern application world. That stack is a lot nicer to work within than bad old days trying to script MSHTML to do what you need, if you give it the chance.
From a user perspective, being able to instantly download any "app" you need (i.e. visit a website) has been the logical conclusion of high speed mobile data. It's low investment, takes up a miniscule amount of ephemeral storage, and works on anything.
From a developer perspective, you can be assured that your single codebase will run on virtually any device, with minimal adaptations to it. You have enough performance to run mildly resource intensive 3D games, some basic concurrency, and an ecosystem that fixes all of the most important faults in the language (typescript is the biggest one IMO). You also increasingly have APIs that allow you to do everything that you could otherwise do with a proper desktop/mobile app.
Literally the ONLY reason webapps are not the first choice for most companies is because they're not as sticky (obnoxious). Users aren't forced to look at your icon and receive your notifications until they disable them. That's it.