| I feel weird about what's happening in the browser. I can't put my finger on it, but something seems off... We're moving towards an operating system on top of an operating system (browser)... And now, node.js and other runtimes, in the browser, on top of that. I'm hoping we can flatten this at some point... It seems like the core problem is that: 1. Operating system vendors have failed to provide UI SDKs that beat HTML & CSS (plus browser APIs for modification of that HTML and CSS). 2. Operating system vendors have failed to have such a UI SDK work cross-platform across operating systems. 3. Operating system vendor UI SDKs do not allow UI to be bootstrapped dynamically (e.g. retrieved dynamically over the web) and built-up in code via APIs as simple as browser APIs. 4. A failure in open distribution and discovery of apps. Am I wrong? Is this direction in computing a failure of OS vendors to get together and solve this problem? This seems like a source of sudden disruption some day... I feel like one day Microsoft is going to wake up to find they're not needed anymore. |
As a result, OSes are able to offer a lot of features and simplicity that would be impossible or painfully difficult otherwise.
You can see that as the fault of OS vendors, and in many ways I agree, but it's also their strength and the source of their advantages.
If OSes were to provide all of that, they'd end up looking a lot like web browsers. So I think it's mostly a matter of allowing web browsers to be web browsers and operating systems to be operating systems, even if that means that web browsers become a type of operating system themselves—a type with many added constraints.
The OS vendors are at least working on it from their side. Sandboxing, UI toolkits, and accessibility are improving. I'm just guessing that the optimal endpoint is going to be some distance from the optimal endpoint of web browsers, because the underlying constraints are different.
And some of extra layers are being removed: consider WASI, for instance.
You're not wrong!