this post was submitted on 07 Aug 2024
832 points (96.7% liked)
Technology
59377 readers
5554 users here now
This is a most excellent place for technology news and articles.
Our Rules
- Follow the lemmy.world rules.
- Only tech related content.
- Be excellent to each another!
- Mod approved content bots can post up to 10 articles per day.
- Threads asking for personal tech support may be deleted.
- Politics threads may be removed.
- No memes allowed as posts, OK to post as comments.
- Only approved bots from the list below, to ask if your bot can be added please contact us.
- Check for duplicates before posting, duplicates may be removed
Approved Bots
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
That can't be helped. Hard to explain well without knowing how much CS you're familiar with, but basically in order to guarantee security/user safety you have to sandbox each tab (basically running an entirely separate container program for each tab which constantly checks for illegal memory access to prevent it from being exploited), all separately running their own interpreters for javascript/typescript, HTML, CSS, all of which are very resource intensive (mainly javascript/typescript). There's not really any getting around this, no matter how well you design your browser.
Now, theoretically, with the growing popularity/advances in WebAssembly, and increase in usage of frameworks/graphics APIs like WebGPU, you could completely get rid of that sandboxing and completely get rid of the extremely slow javascript and html/css, in favor of completely using safe, compiled Rust programs. There's active research using versions of WASM which only accept completely safe code (mainly safe Rust code) so using memory bugs generated from user error to access data in different tabs becomes impossible (aside from potential unaddressed bugs in Rust itself obviously) and you don't need to sandbox each tab – the program practically sandboxes itself. Then you could potentially have browsers with thousands of tabs perform perfectly fine, assuming each of the websites is programmed competently.
But that's not going to happen, because billions of users rely on HTML/CSS and JS, and it's not pretty to transition away from. Getting rid of it would be like getting rid of pointy shoes, or getting rid of US Customary Units in the US, it's just not happening no matter how much benefit it would bring to users. It's not so much of a browser company issue as it is everyone ever would complain and potentially trillions of dollars of damage would be done. Also frontend web devs can barely punch out a "hello world" program in JS so there's no way most of them are gonna be touching Rust or Haskell or something.
This is kind of true, but at the same time, I've also seen some pretty talented front-end devs fwiw.