Ladybird Browser adopts Rust

https://ladybird.org/posts/adopting-rust/

cross-posted from: https://lemmy.bestiver.se/post/946316

Comments

25 points · 9 comments · view on lemmy.world

9 Comments

onlinepersona@programming.dev · 15 pts · 166d

At least he saw the light now. Good for him. I think it was obvious that swift would fail outside of Mac, but he had to see it first. Some people will just soldier on down a wrong path, but adapted. That's promising.

Czele@lemmy.world · 3 pts · 166d (6 replies)

Unbelievable

Leny@lemmy.world · 7 pts · 166d (5 replies)

Why?

Czele@lemmy.world · 4 pts · 166d (3 replies)

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!

LeFantome@programming.dev · 3 pts · 166d (1 reply)

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.

FizzyOrange@programming.dev · 3 pts · 166d

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.

busyvar@piaille.fr · 1 pts · 166d

@Czele @Leny it's just AI transpiled, that's not much more than a refactor.

chonglibloodsport@lemmy.world · 2 pts · 165d

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.

LeFantome@programming.dev · 2 pts · 166d

I made this point below but 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.

The Ladybird founder initially rejected Rust because he found it hard to integrate into their deep C++ OOP hierarchy. That problem likely remains.

We may see entire modules that are either all Rust or all C++ rather than more fine grained mixing.