Hacker News new | ask | show | jobs
by BAReF00t 2457 days ago
Browsers are a case of monolithism (and the inner-platform effect, of course).

In actuality, they are multiple different kinds of programs, welded together for no sensible reason.

* 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.

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.)

That is what we should work towards.

Not that Google would ever not fight that, tooth and nail.

1 comments

The other huge factor is that developers love re-inventing stuff. Nobody wants to be content just maintaining something that has been working for 30 years, because thats career suicide in today's world. "Hey, tell me about the cool stuff you're working on.." "You guys are still using that framework? Wow!". Its an interesting contrast from the industry I'm in (vaccines) where people are extremely risk-averse and do not ever want to disturb code/process flows that work and are making money. I have come to appreciate software reliability a LOT more.

Also.. given the massive surface area of new untested code thats being constantly pumped out, visiting a website today, is absolutely no different than downloading a random binary from the internet and running it. The ".com" address might as well be an actual .COM file that is downloaded and executed...

No, I must cometely disagree there.

We certainly love improving stuff. But more than half the point of programming is, that you only have to come up with and do it once. We just copy the code, and add our improvement.

And open source developers aren’t interested in a ”career“, but in making a good program.

Frameworks are another pathological case of monolithism by the way. Use libraries. That can be combined however you want. Under your rule. Not frameworks. That accept no other framework beside them. Under their rule.

I completely agree on the second paragraph though. VMs are not a security solution. The OS has to do its job.