It’s one month later and I am back to reply:
I don’t want to replace HTTP, or the web. But, I also absolutely don’t want to build anything in greater complexity than what we have today. In other words, keep it for what it’s doing now, but having an isolated app/container based platform efficiently served through a browser might just be a good thing for everyone?
5 years ago I was writing rust code compiled to web-assembly and then struggling to get it to run in a browser. I did that because I couldn’t write an efficient enough version of whatever the algorithm I was following in javascript - probably on account of most things being objects. I got it to run eventually with decent enough performance, but it wasn’t fun gluing all that mess together. I think if there was a better delivery platform for WASM built into browsers and maybe eventually mobile platforms, it would probably be better than today’s approach to cross-platform apps being served via HTTP.
I’m personally of the opinion it’s not so much an issue of a lack of talent that prevented graceful fallback from being adopted, but simply the amount of extra effort necessary to implement it properly.
In my opinion, to do it properly you can’t make any assumptions about the browser your app is running on; you should never base anything on the reported user agent string. Instead, you need to test for each individual JavaScript, HTML, (or sometimes even CSS) feature and design the experience around having a fallback for when that one singular piece of functionality isn’t present. Otherwise you create a brand new problem where, for example, a forked Firefox browser with a custom user agent string doesn’t get recognized despite having the feature set to provide the full experience, and that person then gets screwed over.
But yeah, that approach is incredibly cumbersome and time consuming to code and test for. Even with libraries that help with properly detecting the capabilities of the browser, you’ll still need to implement granular fallbacks that work for your particular application, and that’s a lot of extra work.
Add to that the fact devs in this field are already burdened with having to support layouts and designs that must scale responsively to everything ranging from a phone screen to a 100" inch TV and it quickly becomes nearly impossible to actually finish any project on a realistic timeline. Doing it that way is a monumental task to undertake, and realistically it probably mainly benefits people that use NoScript or similar – so not a lot of people.