Yeah I remember Ladybird, and Serenity OS starting as a learning project to teach engineers that a Browser can be made from scratch by a relatively small team. I even remember the author claiming he did it to occupy himself as he was trying to stay sober off drugs. This was all very admirable.
Then somewhere along the way, they decided they wanted to be a real browser for some reason even though we have Chrome, Safari and Mozilla which is open source. This is IMO the worst use of your time as talented engineers, your product is completely undifferentiated and can never be differentiated since it’s a browser. You’re competing against very well funded adversaries, who are giving away everything for free.
Inevitably to compete, you will lean heavily into AI coding, at which point the “learning” goal is completely left at the wayside.
I’d analogize, there are sometimes good reasons to build a game engine, maybe it’s for learning, keeping the skill alive, something unique you want to demonstrate or you just want to reinvent the wheel for your game but using AI, a bajillion tokens to build an Unreal clone is a waste of your time, which is exactly what Ladybirds doing.
> your product is completely undifferentiated and can never be differentiated since it’s a browser.
I disagree with this. Yes, we have Chrome, Safari, and Firefox. And a few spin-offs of those. However, functionally, they are all pretty much the same. They all offer largely the same set of features, have substantially identical UX, and in general try to be everything for everyone.
What's missing is a browser for those of use who aren't "everyone." There is an (admittedly small) market for a browser for the privacy-conscious, the ad- and DRM-averse, the hackers, the power users, and those who are delighted rather than scared to see every possibly tweakable knob and button in their settings menu. Let me change the theme, let me rearrange the UI to my workflow, let me block any damn element/site I choose at the network level. Give me an API to extend and modify the _whole_ browser however I want without needing your corporate permission.
What's missing is the "Linux" of browsers.
(To be clear, I am not suggesting that Ladybird or Servo will fill this gap. It's too early to say one way or the other.)
The browser as an implementation of the standard is not differentiable. But a universal app engine with sandboxing untrusted apps, high performance, and platform neutrality that may or may not retain a DOM or render HTML is very browser-like and under explored.
On the other hand, I don't know if a slightly more customizable browser is something that's really worth building from scratch.
So a greatly more customizable browser is worth it?
> starting as a learning project to teach engineers that a Browser can be made from scratch by a relatively small team. I even remember the author claiming he did it to occupy himself
I'm not even disagreeing with your position (mostly by not having my own), but I find it hilarious how close this reads to Torvald's "I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu)"
> Then somewhere along the way, they decided they wanted to be a real browser for some reason
I had the impression all along this was the goal. The initial message was "You CAN build a modern browser" which includes JavaScript, modern CSS, WebGL, WASM, WebGPU, etc. The initial article that Ladybird very loudly proclaimed to be antithesis to asserted these are why you can't make a web browser.
Would also be interested to hear why. Personally I used to watch serenityOS and only recently relooked into it to see the main guy was no longer leading it but working on ladybird full time
They announced they are doing an AI assisted rewrite of parts of their code into Rust. That would alienate some.
https://ladybird.org/posts/adopting-rust/
Myself, my annoyance with Ladybird is that restarted everything from scratch. There are components of servo that are really good and basically complete. Why not use those components and concentrate on the components where you have design conflicts with Servo?
Didn't they start with like C++, then zig, and now rust.
To me it's just not serious. They also had articles of "why we are doing zig and not rust".
It's an ambitious project, but I can't take it seriously when the tech stack is in constant flux.
They did start with C++. They experimented with Swift, then experimented with Rust, ultimately choosing Rust. I don't see how experimenting with things makes anything "not serious". If you don't question your primitives and just accept them "because that's how it has always been", you're not a very good engineer in my book. In any case, the tech stack is not in constant flux as you claim, it's still C++, with more and more parts moving / being started in Rust, with the eventual probability of Rust replacing C++ organically, I suppose. Seems like pretty sound strategy to me to slowly, but surely, adopt a memory-safe language.
I think they used swift instead of zig because Kling was using mac for development
An AI-assisted rewrite can make sense, if you take the time to uphold semantics and code quality, as they suggested. In practice, the first file I looked in had unsound unsafe – in the Rust sense, that a safe caller could cause UB, not that any callers do so – in fact there are no callers, the functionality was removed from the C++ bindings in a 1400-file changeset but left in the associated Rust module.
I'm curious why you care about whether or not they spent time and effort to write those components themselves. Isn't that their choice as the authors? How does it materially affect you or the product experience? From my vantage point, I love the idea of having even more options as it will create competition, making all sides better for it. Having a singular dominant player in any space (whether it's a browser, kernel, or library) is something we should try to avoid whenever possible.
They can obviously do whatever they want, but realistically, having five different engines that are all 70% complete is not helpful. That's not providing more options. Instead, having one that's 99% complete would be providing more options.
Spreading oneself too thin makes you much less likely to succeed.
What in particular? I've enjoyed watching some of the community update videos and dev videos, but haven't followed the project closely.
If you look at some of the other comments replying to my original comment, you'll get the context that the project started out as a hobby project, purely for fun.
Call me chronically online or whatever, but I've looked at his twitter, and I really don't like his attitude. What specifically grinds my gears is one of tweets where he looks down on programmers who rewrite and program just for the fun of programming.
It's so hypocritical of him, when his entire project started off as just for the fun of programming.
The cherry on top is this was all a part of the whole "agentic shift". I'm fine with someone using AI, and he seemed to use it semi responsibly (at least last I checked), but his hubris and hypocrisy make me not care about the project anymore.
Yeah it's an interesting turn. I remember seeing him talk about how programming for fun was part of essentially his rehab. Seems like it's turned into something different now if he's looking down on others for doing the same.
Can you explain more about that?
There's nothing sad about that. He's entitled to his opinions, as are you.