Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

If the goal is to create a truly privacy respecting, safe browser that's focused on the web, why not write it in Rust?

Genuinely asking as I've tracked numerous CVEs in Chrome and Firefox. Also I don't have much experience with Rust, so I don't represent the RIIR community!



Your question is already asked and answered on the Ladybird.org website [0]?

[0]: https://ladybird.org/

> Why build a new browser in C++ when safer and more modern languages are available?

> Ladybird started as a component of the SerenityOS hobby project, which only allows C++. The choice of language was not so much a technical decision, but more one of personal convenience. Andreas was most comfortable with C++ when creating SerenityOS, and now we have almost half a million lines of modern C++ to maintain.

> However, now that Ladybird has forked and become its own independent project, all constraints previously imposed by SerenityOS are no longer in effect.

> We have evaluated a number of alternatives, and will begin incremental adoption of Swift as a successor language, once Swift version 6 is released. (More background.)


They were thinking about writing the browser in a more memory-safe language, and it looks like they are leaning toward Swift rather than Rust. https://x.com/awesomekling/status/1822236888188498031


You've gotten a couple of other answers, here already. I'll just add that unfortunately I don't have link but there's a podcast interview with Andreas out there where they go into more detail about this. He said that they tried write some features in Rust and the development team just didn't like working in the language, I think the overall reason was that object-orientated programming was not a first-class citizen in Rust.

One other interesting tidbit is that the development team was excited to try Rust, but in practice disliked it, and the reverse was true for Swift.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: