A web application burning through a ton of JavaScript and a very complex DOM can very easily start demanding a lot of CPU and RAM.
I've never had a browser crash a phone, but having the phone start to immediately feel sluggish after opening something like a moderately sized GitHub pull request--that's certainly a thing.
Perhaps android apps are relatively resource intensive or inefficient, but in terms of "web apps" like SPAs vs server rendered websites, web apps are doing more on the client. They inherently use more resources. Electron apps don't tend to have awful performance characteristics on the desktop just because they can't share the underlying Chrome instance, opening the same apps (like Slack) in the browser is only marginally better. And if native resource consumption on Android is really that bad, that would be pretty unique for that platform. iOS and desktop platforms definitely have much more efficient native apps than web apps.
However making it more difficult to crash the device is a definite advantage, you're right about that. Although I very rarely have native apps crash my devices anyways. I can't remember a time it's happened on my phone, and on my desktop it's usually a device driver issue combined with a game that causes an issue. Definitely an edge case and not something I encounter with native applications in general.
Too many websites at the same time cause the same issue.
If I open a site like cnn.com without an adblocker, all apps running in background (even e.g. spotify if I'm listening to music) are force closed because the phone runs low on RAM.
Every website or web app I've used so far has used > 100-200M RAM, while a well developed Android app stays below 20-50M.
My phone has 2GB RAM, 1GB is used by the OS, 500-800M are used by Google Play Services, and a web browser with 1-2 tabs takes another 200M of RAM.
As soon as I open a website any more complex than HN, everything feels sluggish.
Agreed. The DOM and JavaScript, as used by many heavy websites and web apps, are heavy.
On the other hand, JavaScript in a more constrained environment--React Native, for example--is a lot more reasonable. Still heavier than an Android app, but not so heavy that it kills processes except on very downmarket phones.
I've never had a browser crash a phone, but having the phone start to immediately feel sluggish after opening something like a moderately sized GitHub pull request--that's certainly a thing.