20
Ladybird Browser adopts Rust
(ladybird.org)
Welcome to the Rust community! This is a place to discuss about the Rust programming language.
Credits
Unbelievable
Why?
They just abandoned the previous project of moving to Swift.
There’s also the issue of trying to manage a project rewrite while the project itself is under continuing feature development. Many projects have failed at that in the past because the rewriting effort is so much of a moving target and because a team split between the sides can develop a lot of friction and conflict points.
I really want them to succeed. I think it’s pretty amazing what they’ve achieved so far with Ladybird, just as a proof that it is indeed possible to write a brand new browser engine from scratch on web standards. I also think it’s extremely important that we have some mitigation against abusive behaviour by Google & Apple, however small it may be with a hobbyist browser like Ladybird.
Because as the article stated they have rejected Rust back in 2024. I can remember that clearly. Back then they gave some few reasons why Rust was not a good fit, i dont remember the details but for me it made an overall impression that they dont like Rust and wont go with it ever. So what a surprise to read that huh!
Andreas did not like the Rust community. It sounds like that is still true.
He also thought that Rust integrates poorly into project with a deep C++ OOP hierarchy. That is probably still true as well.
It is telling that the first project was a total rewrite of the entire JavaScript engine. There is no shared hierarchy and a well defined boundary between the C++ and Rust code. That may be a sign of things to come.
We may see entire modules that are either all Rust or all C++ rather than more fine grained mixing.
Is there any language that can do that? As far as I know there isn't. You can use SWIG or whatever but it's just as awful as any Rust/C++ interop. There's Carbon, but that's a work in progress.
IMO if you need integration with a deep C++ OOP hierarchy your options are a) give up and just use C++, or b) pain, no matter what language you target.