← Back to context

Comment by slowmovintarget

1 year ago

Mildly disappointing, though understandable, that this is C++. (Would have been interesting to see a from-scratch Rust or even Zig implementation.)

Repo here: https://github.com/LadybirdBrowser/ladybird

Edit: From the FAQ...

> 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 are actively evaluating a number of alternatives and will be adding a mature successor language to the project in the near future. This process is already quite far along, and prototypes exist in multiple languages.

Majority of the high quality libraries are written in either C++ or a mix of C/C++. Leaving all that behind for a new language is a hard decision to make. Especially when they specifically left SerenityOS to focus on actually being a browser that is not a toy.

Choosing a new language, even if it is something as well established as rust means going on a decades long yak shaving journey where they have to implement a lot of libraries that they would get for free if they chose c++.

C++, for all its crimes against humanity, works. And it works very well. I wonder what successor language they are thinking of.

  • Makes sense.

    My comment was kind of off the cuff, and had more to do with my personal likelihood of committing time, not any technology reason. I wrote the first part before I had seen the FAQ entry. That answer shows that the team has given due consideration of whether those yaks are worth shaving.

    Either way, I'll be keeping tabs on the project, because I love the idea of a Firefox-as-it-should-have-been project.