On Wednesday, 26 October 2022 at 14:59:02 UTC, Don Allen wrote:
> If you think that the user experience would be any different if Mozilla used Go or D for the work they are doing with Firefox, then you and I just need to agree to disagree.
Browsers are generally written in C++? They use a dedicate GC for dealing with javascript objects. The renderer for Chrome called Skia is written in C++ and is gradually moving rendering to the graphics co-processor.
You cannot easily do these things with a run-of-the-mill GC as in Go, and not at all with a freeze-the-world GC.
Browsers do a lot of work in the background. A browser is basically one gigantic runtime for javascript. You don't want to deal with another heavy runtime at the same time. That would make performance tuning very difficult.
That said, I don't know how much Firefox relies on Rust. Wikipedia says that Mozilla dropped Servo (the engine that was being implemented in Rust).
> dealing with Rust's challenges, I turned to D. The performance of the C, Rust and D versions of the most processor-intensive application are within a few percent of each other, indistinguishable in actual use.
You probably didn't generate much garbage. And frankly, you can easily write a well-performing basic financial application in Python without paying any attention to algorithms or memory. So I don't think this is a good use case for comparison.
> Electron is at least partly implemented in C++. I've tried the Atom editor, which is based on Electron, and it is annoyingly slow.
Electron is just a stripped down browser with some additonal APIs. Electron applications are written in Javascript.
It is possible to make javascript applications perform well, but you need to design the software carefully and do some performance tuning.