Browsers are a case of monolithism (and the inner-platform effect, of course).<p>In actuality, they are multiple different kinds of programs, welded together for no sensible reason.<p>* A http fetching daemon.
* A "runner" to open URLs.
* Several document viewers.
* A virtual machine.
* An OS with an API.
* Extensive libraries for everything that the OS below the OS already offered.
* One or several programming language JIT compiler(s) and runtime(s).
* And some bits and pieces.<p>In a healthy environment, there would not be a second OS on top of the normal one.
And all those parts would be separate software, with standardized interfaces. Doing one thing and doing it right.
(Most of which already exist in the OS, and don't have to be reinvented. Case in point: WebSockets. Or, worse even, DNS over HTTP.)<p>That is what we should work towards.<p>Not that Google would ever not fight that, tooth and nail.