3 ms·
> Their primary leverage is unique features and functional adblockers, neither of which is impacted by the layout engine. Yes, unique features like being writt
by timschmidt 2y ago
> Their primary leverage is unique features and functional adblockers, neither of which is impacted by the layout engine.
Yes, unique features like being written in a memory safe language and depending on memory safe implementations of image and video decode libraries are exactly what I care about in an all-knowing sandbox which touches network services and runs untrusted code on my computer.
> And again, you're taking away resources from something that is already behind right now.
Disagree. You're talking about every Mozilla project that's not Servo. Firefox/Servo development is Mozilla's core competency. One which they've abandoned.
- dralley 2y ago>depending on memory safe implementations of image and video decode libraries are exactly what I care about in an all-knowing sandbox which touches network services and runs untrusted code on my computer. What does that have to do with Servo? Firefox has already been doing those things and continues to do them [0], they don't need to do them in Servo first. We are specifically talking about the utility of rewriting a layout engine from scratch, rather than putting more resources into evolving Gecko - including rewriting small parts of Gecko in Rust incrementally. >Disagree. You're talking about every Mozilla project that's not Servo. Firefox/Servo development is Mozilla's core competency. One which they've abandoned. They obviously haven't abandoned it. It's not like they cancelled Gecko development too and are rebasing on top of Blink. Again, this is all just a philosophical debate over whether rewrites or refactors are more effective when it comes to the most core component of the browser. [0] https://github.com/mozilla/standards-positions/pull/1064 https://github.com/mozilla/standards-positions/pull/1064
- timschmidt 2y agohttps://4e6.github.io/firefox-lang-stats/ https://4e6.github.io/firefox-lang-stats/ Do you see those red and orange and green pie slices? 40% of the code. There, be memory errors. Approximately 70% of all errors in that code will be memory safety related and exploitable. Fixing it looks like developing Servo. Don't want to take my word for it? How about the US Department of Defense: https://media.defense.gov/2022/Nov/10/2003112742/-1/-1/0/CSI_SOFTWARE_MEMORY_SAFETY.PDF https://media.defense.gov/2022/Nov/10/2003112742/-1/-1/0/CSI...
- dralley 2y agoMozilla continues to add new Rust to Firefox, despite discontinuing the Servo project. A big parallel rewrite is not the only possible approach to writing Rust. "Fixing it" does not have to look like Servo. In fact doing more incremental rewrites will improve the situation shown in that chart much faster than waiting 10 years for parity before doing the replacement. I'm not responding further until you actually read and understand what I'm saying instead of flailing at a strawman.
- timschmidt 2y ago> A big parallel rewrite is not the only possible approach to writing Rust. A rewrite is the only way to convert the codebase to Rust or any other memory safe language. Whether that happens in parallel, piecemeal, or both at the same time is down to how well you use a version control system and structure your code. As has already been shown by sharing Servo code with Firefox. A full rewrite is particularly useful with Rust, as the language wants you to structure your code differently than most C/C++ is structured. Doesn't make sense not to have one going if that's the plan. If you're going to rewrite the whole thing anyway, might as well do it in an idiomatic way.
- bogeholm 2y ago> A full rewrite Things You Should Never Do, Part I [0] [0]: https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/ https://www.joelonsoftware.com/2000/04/06/things-you-should-...
- timschmidt 2y agoThings Mozilla have done a few times.[0] All with valid reason. 30 years without a rewrite is pretty rare for any piece of software. 0: https://en.wikipedia.org/wiki/Netscape_Navigator https://en.wikipedia.org/wiki/Netscape_Navigator
- steveklabnik 2y agoGoogle has demonstrated that writing new code in a memory safe language still significantly improves the safety story of a codebase, even while keeping around the old code. Full scale rewrites are not the only option.