HN user

adjav

259 karma
Posts0
Comments32
View on HN
No posts found.

PNaCL was essentially "let's shove LLVM into every browser and make it a mandatory part of the web", which somehow seems even worse than "let's shove the JVM into every browser and make it a mandatory part of web"

My Caste 3 years ago

They may not have talked about it to you, but that doesn't mean they didn't talk about it at all.

Waterloo Style 3 years ago

Is the term 'data-oriented design' not widely known? That seems to be largely what is attempting to be described here.

It's not that the add-ons were slow, it's that the architecture built to support those add-ons made the browser as a whole inherently slow. Everything was quite siloed, and required a series of dynamic dispatches to accomplish anything. This allowed extensions to easily change lots of core functionality, but also meant that the entire Firefox codebase had become a public API, and practically any change made would break something.

Stardew Valley, Celeste, Bastion

Those are all games where the average frame time is so low GC pauses are basically irrelevant.

And Minecraft was re-written in C++ for a reason.

I will note that Rust has all of those features you mentioned. 1) Traits 2) You have to be explicit, by implementing the Clone trait, otherwise arguments are passed by reference or moved. 3) Rust has both RAII and linear typing, which is effectively a proven-correct form of moves - you can't access something that has been moved, unlike C++.

Rust doesn't have class inheritance, no, but often combining traits and delegating to a "parent" field works. Although sometimes that can be considerably more cumbersome, yeah.