Ladybird Browser adopts Rust
Ladybird Browser adopts Rust
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.
He also thought that Rust integrates poorly into project with a deep C++ OOP hierarchy. That is probably still true as well.
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.
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.