You guys are hugely on fire. Who would have thought someday a new engine rises in this climate, and then who would have thought it would be a small team, without a trillion dollar giant behind them pouring hundreds of millions into its production? This is truly one of the greatest things I have seen in my lifetime.
> Who would have thought someday a new engine rises in this climate, and then who would have thought it would be a small team, without a trillion dollar giant behind them pouring hundreds of millions into its production?
Anybody who has ever worked on a large enterprise software team. Anybody who has ever worked in this scenario will believe this. Computing history is full of 2-10 people teams beating giant well funded teams to the punch.
This mostly occurs because work expands to fill the time and resources allowed for the project (Parkinson's Law), and large companies have almost unlimited amounts of both.
Exactly, and to add to that: people who work on the stuff they personally like tend to do thing faster than people who work on stuff because they have to (like it is often the case in large enterprises).
It also helps that working on a browser engine is "easy" in the sense that you are developing to a known target and there are increasingly decent test suites available. It helps a lot with keeping motivation alive since there's a persistent drip feed of low-hanging fruit and it'd easy to quantify your productivity and you don't get super stuck, vs. having to innovate or greenfield stuff. Teams of skilled volunteers excel at this, and makes for fairly easy contributor recruitment to feed that team. Making a browser engine is almost the ideal case.
The breadth of the task is staggering, but there is a real shot at posting the necessary endurance given the circumstances, being thrifty and given time.
Before you reach for the downvote button for talking out of my arse and calling what the Ladybird folks doing a (qualified, specific) "easy", when we at KDE created KHTML which later begat WebKit, for many years - kling might remember! - our IRC channel topic was "which mozilla bug do we emulate today?", so I've seen it happen once before! Ladybird can succeed; consider contributing.
Compile it yourself (it takes 15-20 minutes to fully compile) and test it on a website. Compare it to Firefox or Chrome and see what's wrong. Fix it and submit a PR.
Unfortunately for c++, the industry is moving towards Rust. Even conservative gray-suit Corps are using rust for their new projects. The limiting factor is available rust devs. Writing c++ is a sure way to get hired maintaining a legacy codebase.
Ladybird is an outlier and there are probably a few more project like it, but anyone looking to be employed should pick up the new skill that is rust. Contribute to ladybird and learn c++ if the project interests you, but don't learn it for a career.
Out of curiosity, where are you located where large companies are desperately trying to snap up every available Rust developer? Everywhere I've looked, the few Rust job postings I've seen have mainly been from cryptocurrency startups. All of the non-crypto Rust job postings I've seen are from companies trying to get experts in a particular niche. Must have 8 years of Linux kernel development experience plus 3 years of Rust experience, must have 5 years of network driver development experience plus 4 years of Rust experience, that sort of thing. Even including crypto startups, I see far more C++ jobs than Rust jobs.
The industry is not moving to Rust. There are projects here and there, but mostly for safety critical code and other situations where it makes sense, see chromium and Windows kernel. I don't know any major project stopping active development in C++ and switching to Rust instead.
You may live in a bubble. Rust is great and all but C++ is still dominant in its space. The web browser you're using right now? C++. The OS you're using? Probably some unholy mixture of C and C++. Console and computer games? Written in C++ as a rule.
Working on a major new project right now in C++. In our case, it’s a high performance 2D GPU accelerated drawing application - C++ and many of its battle hardened/established libs are the only game in town. Rust is a non-starter for a large range of apps
I don't understand the hate towards C++. Many of the aspects criticized for are non-issues in modern C++. I am not to knowledgable about Rust, but what reason is there to use Rust? Memory safety isn't much of a problem in C++ anymore with smart pointers, std::move. Implicit typing exists in C++ with std::auto. Functional programming with lambda, std::functional, std::map, etc. C++ does everything I have wanted it to do, has a huge ecosystem of libraries, and great tools.
This'll be an "out there" comment but after coming to the conclusion long ago that governments have infrastructure built to manipulate online communities with mass propaganda, usually to impart typical political/social messaging, and then realizing that a few years ago the NSA put out an official statement about wanting people to not use C++, I finally put two and two together and realized that, being a government entity, they could have easily just tacked on an "anti-C++" campaign to the list of active propaganda farm campaigns, and viola, anti-C++ comments start appearing on forums everywhere.
> Memory safety isn't much of a problem in C++ anymore with smart pointers, std::move.
Of course it is! You can still access an object after std::moving it somewhere, return references to local stack variables from functions, double-delete (or zero!), use uninitiated variables and do bunch of other things that rightfully caused notoriety C++ has got. And am saying it as someone who writes C++ every workday, unfortunately.
You "write C++ every workday" and don't even know that moved-from objects are guaranteed to be valid?
> return references to local stack variables from functions
> use uninitiated variables
Any properly configured compiler will catch and warn about those errors.
> double-delete (or zero!)
Not a real issue if you're using smart pointers.
Sure, you can program with no compiler warnings and no smart pointers—but nothing is stopping you from wrapping your entire Rust program in "unsafe" and doing all those things there as well. Programming languages can only do so much to save people from their own incompetence.
There are a lot of comments that I unfortunately cannot address individually so I'll make a single reply and try to address them all. A lot of valid call outs pointing out flaws in my claim and even extrapolating from my claim, please understand my coarse answer balanced brevity and thoroughness. I'll do my best to expand and provide evidence:
I am plugged into an alumni network (based in the US) so I'd say I have a decent sample size to draw conclusions/trends from. Yes, these trends don't apply to every market or locality so there are loads of counter examples. The demographics of the alum network appear to be mostly mid-to-senior level ICs and management from backgrounds being engineers in the private sector and gov contractors. The start-up scene is grossly under-represented.
The tell-tale sign of a mature technology that has the momentum to last is if businesses that do a lot of gov contracts finally adopt a technology. We've seen this pattern with virtualization, then with containers, then with clouds + micro-services. Gov contractors are very conservative to adopt and rely on technology because ultimately their customer (gov agencies) maintain the service. And their pay are not like big tech so they cannot compete on that front and need a healthy and established pool of talent to pick from.
Every successful project is staffed with leads who know the problem space and the technology that is used in the solution. When planning for a project, you HAVE to account for how easy it will be to find talent to support the project given your budget. For short-term or "high-risk-of-being-on-time" projects the talent pool is obviously larger for established technologies like c++ and so that is what has historically been chosen. Obviously where it is appropriate to use c++. For those of you claiming I am in a bubble... perhaps. But keep in mind that companies with a "first to market" mentality are not the majority :)
The point of inflection for Rust I am continually noticing, and why I am confident it is an excellent for career-growth, it is NO LONGER being labeled as a "high risk" for new medium to long-term projects/efforts. When there is runway to grow/find Rust developers and there is runway to develop a missing library that is a dependency, Rust seems to be favored.
Yes, if your industry is dependent stable and battle tested libraries then that is a case when Rust might not displace it. But another trend that backs up my claims is seeing parts of such libraries/projects being refactored out into its own thing written in Rust - and all that lives in parallel. So perhaps the dev that knows both languages is the better career advice. Lean toward one language or another based on your interests.
One final thing I will add is there is a good deal of "internal learning" opportunities for already employed folks to learn rust and start on the new project. These are folks that know memory management, know the problem space, know the company tooling, etc. Compare that with a new hire that will also learn rust, and you can see which an employer will favor. Internal folks moving to Rust opportunities and back-filling them with new c++ devs is a common tactic. But that being said, talent still needs to be found and often times casting a wider net by looking for c++ folks that are willing to transition to Rust is a tactic used on job postings. Rust is in demand for systems programmers and zero trust applications, btw.
> The limiting factor is available rust devs. Writing c++ is a sure way to get hired maintaining a legacy codebase.
Anyone looking to be extremely employable in this market should really learn both.
Otherwise, you are not going to see a migration to Rust from C++ shops at all.
> Ladybird is an outlier and there are probably a few more project like it. but anyone looking to be employed should pick up the new skill that is rust.
Then I suggest you prepare for Leetcode hards on Rust code, if you want to show that you are highly experienced in solving DSA problems that are found in systems software.
Also, why does Ladybird get a pass and the others don't?
120Hz limit for high refresh rate support seems strange. The most common refresh rate for high refresh rate monitors is 144Hz, and faster refresh rates are available. If you run a 120fps animation on a 144Hz monitor you'll get duplicated frames, which negates a large part of the benefit.
My first thought was that this was done with consideration for mobile phones, since many higher-end models use 120 Hz displays, but Ladybird does not seem to support mobile for now.
> Websites using requestAnimationFrame now render at up to 120Hz on supported hardware
But the phrasing of it about "can now" suggests to me that this may simply be a performance issue too. They changed it from 60 to 120. Perhaps in the future they can go from 120 to 144 or even 240.
On Twitter, Andreas points out that his Keynote Presentation on the Ladybird Browser on the FUTO conference in Texas earlier in the year, might be the best current introduction to the project:
I've watched this a few months ago after randomly seeing it on YouTube. It's a very good talk and fun to follow even if you are not a browser developer. He's a good presenter.
Interesting whether guys employ LLM to speed up development. Starting a new browser just like this would be very bold decision like 15 years ago, now seems like a reasonable thing to do actually.
Would have to be at the hands of an already skilled practitioner. Average Joe programmer setting out to build a browser with Copilot will end badly. Big-picture architecture and discipline is too important with this level of complexity.
Not what I meant really. antirez is not a junior yet codes with LLM assistence.
Not sure why this gets downvoted but since when is it illegal to ask whether people actually use intellisense? I mean - what’s wrong with being interests how ppl bootstrap and get to thousands of LOCs in practically no time.
Starting a new browser, using LLMs... Is not going to maintain enough context.
Whilst Andreas does use Copilot a fair bit [0], he tends to do a line at a time, frequently disagree and rewrites his own, before prompting again. That is... He basically uses it as a fancy autocomplete. Not much else.
Fancy or not an autocomplete is autocomplete. What if it autocompletes one class or one function at a time? Does this make it obnoxious to even think asking about it on HN?
I haven't watched the VODs myself but I am curious as to the nature of the Copilot use - is it a fancy autocomplete, a 2nd look at code he's already written, or is it generating large parts of the code?
The SerenityOS project literally has "NIH syndrome" at its core ["the SerenityOS project, which has a strong culture of writing everything from scratch.", https://ladybird.org/#faq] so I would expect a degree of skepticism of AI code generation.
But there was the post semi-recently about Cloudflare developers shipping a mostly-AI-generated software, overseen by real devs [https://news.ycombinator.com/item?id=44159166] Perhaps Andreas' use of Copilot is a similar thing, where he saves keystrokes and finds errors in the generated output with his own experience. I'll go watch some VODs.
Most of it was written without LLMs for that reason, but now Ladybird is its own project, the NIH focus has largely gone away. They are using a lot of third party code now. Their mission is compete with Chrome, not be 100% NIH.
A comment that could apply to anything. Notice how nobody except for your subthread here is talking about AI. This thread is not about AI or LLMs, for a good reason.
they’re downvoting you, but the developer actually uses copilot a lot in his development videos. why are people so up in arms?
of course, he’s a very, very proficient developer and a browser specialist. he’s not just vibecoding, like you might be implying. but he also uses llms for development.
Well to my surprise they do, even though every sane dev in 2025 uses some sort of code assîtes autocomplete. So it seams now we discussing what is the threshold reg intelligence of the autocomplete.
Ridiculous stuff indeed.
I’ve been coding for 25 years and nothing in my message implies vibe coding. I know what I’m talking and sure bet many others here do.
Because it's bad enough (for those of us that aren't heavily invested in the topic) that often 50%+ of the frontpage is about AI now, to go into the comments for a clearly non-AI topic and see a bunch of "but what about LLMs" comments really just sucks the fun out of HN for a lot of us.
That’s not even close to true unless you rate all ML as AI and all conditional structures thinking. Like, why don’t you first try to rate and count them before spitting malice ?
in all honestly much less AI stuff gets to the HN front compared to when OpenAI first released GPTs. Given there are thousands of publications every month and dozens of startups launched with ridiculous valuations and most of this is actually submitted here for karma or leverage.
Besides, what, knowledge representation via stochastic probabilistic graphical models is now an heresy? Since when? Since MPEG or MP3 ?
It is so amazing and wholesome to see a huge team of people come together and just collaborate on something they are passionate about and seriously believe in. I'm very hopeful that Ladybird will get to the point where we can use it as a main browser.
Compile it yourself (it takes 15-20 minutes to fully compile) and test it on a website. Compare it to Firefox or Chrome and see what's wrong. Fix it and submit a PR.
You forgot the enormous learning curve of understanding how browsers work and how to write proper code in Ladybug that doesn't waste the maintainers´ time.
Last time I tried, I couldn't find a website that worked with it. Where do you even begin contributing to such a large, complex, very much WIP project? The barrier to entry is daunting.
- you don't need to understand the whole in order to help
the kind of bugs you can start with are like :
- this icon is a bit weird, it's off centre by 2px - how do I add 2 pixels to this icon? either by moving it or by changing the underlying image asset? if I'm moving it, what is the subroutine that paints it? if I'm changing the image asset itself, where is it stored? (is it in a packed store? or is it just a plain file, etc)
- when I click this button, trace the pathway - it's supposed to add to history and turn blue. is it doing that?
etc.
For large projects, start super small and work your way out from there.
>Last time I tried, I couldn't find a website that worked with it.
That was the case for me last time I tried it as well, which was a few months ago. Tried it again yesterday and I could load many pages. Could even render complex real life pages like YouTube.
I recommend anyone to build it themselves. It is a very simple and smooth experience.
Why the tone policing? This isn’t helpful. Whereas parent comment was to the point and linked to a helpful resource. Give people the benefit of the doubt and assume good intent.
I did assume good intentions and even gave them the benefit of the doubt: that's why I asked them why they were using a commanding tone and said nothing else. They clarified that indeed, their intentions were good and so being rude and sounding commanding wasn't the intent, and that was the end of that. Why do you have to turn this into something bigger? It was a done topic.
I also disagree that this isn't helpful. *
For one, they're now aware that they come off as commanding when they write like this. They now know they should look up why that is (if they care), and how to alter their language accordingly. This should serve them well, since it makes their use of language more in line with their intentions, and prevents them from receiving rude / more involved meta responses from those who don't assume good intentions or aren't willing to hear them out like I did. It should also prevent them accidentally causing reputational harm to the projects and organizations they're trying to support this way.
Second, since I kept it brief and minimal, I avoided other people asking about this not so nicely and not so straightforward. Could have turned into an ugly flamewar.
Speaking of, I do not understand why some people have it so out for "tone policing". It feels like an overreaction, a grand backwards swing in response to supposed "moderation overreach / censorship". Admittedly very in vogue these days, but cultural standards exist for a reason. I refuse to be forced to decide between the two extremes of overpolicing and no policement at all. I do also appreciate the value of just letting moderation tools and moderators do their job, but I do still have some - increasingly faint - hope that with some people, communication is also a viable, or even the preferable way - as it was in this case.
* And I further disagree that being helpful in terms of information content or effect would be mutually exclusive with all this, or would even be related. Helping alone doesn't make a helpful person, particularly if helping isn't their explicit intention.
I did actually watch a friend compile and run it, and we tried it on a couple of simple web pages and were impressed with the results!
However, there are two barriers to me building it myself and submitting PRs. The first is that it's not officially supported to build or run on Windows, so I'd have to get familiar with WSL first or set up a dual-boot environment.
The second is that it's written in the obsolete and unusable language of C++. I would have loved an opportunity here to get into Rust or something, but C++ has proven itself hazardous to my mental health, so I'm staying away from it.
I love Rust, but I do not like how people are rust evangelists and look down on everything else. That is not how we in the Rust community look at things.
Now, with that out of the way.
Andreas has been very clear about the reasons why C++ is the chosen language.
He has years of experience with it along with writing browsers.
Im paraphrasing here, but he has said that the web evolved around the era of OOP and C++ is the OOP language of that era. Including statements on how C++ fits nicely with the OOP styles of web specs.
For the WSL part: that's one command in powershell/cmd and then a download from the Microsoft store. You won't find it challenging, there's not much more to it than that in 99% of cases (and if you do run into issues, there are probably better alternatives to trying to fix WSL anyway).
As for C++, Ladybird uses very modern C++ that makes it substantially easier to write reasonably safe code than the C++ of yore.
Still, as much as I would like to see the world move to safer languages, C++ is everywhere. Every major browser is written in it. It's not "unusable" in the slightest (though I certainly understand not wanting to learn C++ as an outsider at this point in time, it's a quite boring language in comparison and the C++ job market probably won't let you make use of modern language features that might make it interesting).
I would love to live in a world where projects with security risks like web browsers would "just" use Rust instead of C++ but you'll have to convince the people building the browser to spend their own time or their bosses' time to learn Rust first, and that's a tough sell.
There's Servo if you want to contribute to an open source browser in Rust. It looks like it can certainly use the help it you compare its development speed with Ladybird.
I don't know which bubble you are in, but C++ is nowhere near obsolete status. As much as want Rust to be adopted widely, that still hasn't happened, despite small-scale effort to sprinkle it in various projects.
> The second is that it's written in the obsolete and unusable language of C++.
Oh come on. There's nicer ways to say "I'm not good at it". It's OK you know, you can't be good at everything. Just don't make it other people's fault.
If you look at it that way, nobody is good at anything. True perhaps but not a very useful stance.
Millions of people have built meaningful software with C++ over the past several decades. It is everywhere and it mostly works OK.
Of course, C++ is not necessarily the best choice for everything or anything. But it is a mostly reasonable choice for lots of things in 2025, just like it was in 1995.
There are different levels of confidence in junior programmers code in different languages. For C++ it is one of the lowest possible.
If thousands of HN readers suddenly decide that they need to start their 10+ years learning of C++ with immediate contribution to the Ladybird project it would be not really helpful, right?
It would be a weird kind of bad situation, if literally thousands of juniors with little to no experience/understanding of programming simultaneously start learn-as-you-go contributing C++ code for Ladybird.
In the perhaps more plausible situation that two or three people with a reasonable foundation in CS and/or a bit of professional programming experience decide to learn C++ in order to help Ladybird, I think it would work out quite fine.
I had to think carefully if I would ever agree with 'plausible situation' at any point of my career. And the answer is no. If they really needed 2-3 ppl they would have adjusted their sponsorships/donations plan and picked up those ppl full time. There are costs of bigger teams and wider contributor networks that are rarely advertised.
But ofc what can I know about browsers, I am just a gamedev. From my PoV (studio tech director) in custom game engines juniors mostly do acts of wanton destruction in the name of curiosity. And then leave for better compensated industries anyway.
In my opinion folks inciting random contributions from webdev crowd unfamiliar with C++ are not helping. And those who are familiar should know better than to do random drive-by features.
Really really hope these guys get a foothold in the market. I'm a decades long Firefox user but even I have to admit things with Mozilla aren't looking bright so projects like this are the only things that can save us from the chrome clone wars.
It's currently in pre-alpha phase and glitches on pretty much every modern website (source: I just compiled and tested), so not very usable right now. Their target is to release in 2028. (See https://x.com/ladybirdbrowser/status/1895767072639951341)
Why Discord though? Truly independent project, keep big corps away, future of the web at stake here yada yada yet using the most walled garden of walled gardens. If there is no publicly accessible and searchable archive then might as well not exist.
Zulip. Open source, self-hostable, looks decent and not only does it have every feature that discord has, their version of threads/topics to spin off individual conversations is extremely well done.
And, don't overlook the indexability of Zulip so that information doesn't instantly /dev/null just because Discord hates having bots or because one can only ever(!) join 100 Discord servers
SerenityOS used IRC but when Andreas changed to discord he saw a massive influx of developers. I assume that it was a no brainer to use discord when forking Ladybird...
For some reason I can't find the RSS feed for the newsletter; anyone that did who could post it here? I can only find the one for the "announcements"—which seem a lot less relevant to follow the progress of the project.
It's not cleanly one or the other, really. It's UCS-2-y by `str.length` or `str[i]`, but UTF-16-y by `str.codePointAt(i)` or by iteration (`[...str]` or `for (x of str)`).
Generally though JS's strings are just a list of 16-bit values, being intrinsically neither UCS-2 nor UTF-16. But, practically speaking, UTF-16 is the description that matters for everything other than writing `str.length`/`str[i]`.
And most mainstream GUI toolkits are, as well. It can be said that UTF-16 is the de-facto standard in-memory representation of unicode strings, even though some runtimes (Rust) prefer UTF-8.
Why are you guys talking like there were dozens of GUI toolkits in mainstream use? It's basically web stuff, Qt, and then everything else. Web would be UTF-16 as discussed above, Qt is UTF-16, and even if we entertain the admittedly "large just behind-the-scenes" Java/.NET market, that's also all UTF-16. WxWidgets being a fence sitter can do both UTF-8 and UTF-16, depending on the platform.
Which players am I missing? GTK and ImGUI? I don't think they are too big a slices of this pie, certainly not big enough to invalidate the claim.
not just UTF-16 but potentially malformed UTF-16 (supporting invalid surrogate pairs or surrogate halves and with js string functions computing things like lengths independently of UTF-16 characters)
This is also widely known as WTF-16 (seriously, look it up!)
You guys are hugely on fire. Who would have thought someday a new engine rises in this climate, and then who would have thought it would be a small team, without a trillion dollar giant behind them pouring hundreds of millions into its production? This is truly one of the greatest things I have seen in my lifetime.
> Who would have thought someday a new engine rises in this climate, and then who would have thought it would be a small team, without a trillion dollar giant behind them pouring hundreds of millions into its production?
Anybody who has ever worked on a large enterprise software team. Anybody who has ever worked in this scenario will believe this. Computing history is full of 2-10 people teams beating giant well funded teams to the punch.
This mostly occurs because work expands to fill the time and resources allowed for the project (Parkinson's Law), and large companies have almost unlimited amounts of both.
Exactly, and to add to that: people who work on the stuff they personally like tend to do thing faster than people who work on stuff because they have to (like it is often the case in large enterprises).
It also helps that working on a browser engine is "easy" in the sense that you are developing to a known target and there are increasingly decent test suites available. It helps a lot with keeping motivation alive since there's a persistent drip feed of low-hanging fruit and it'd easy to quantify your productivity and you don't get super stuck, vs. having to innovate or greenfield stuff. Teams of skilled volunteers excel at this, and makes for fairly easy contributor recruitment to feed that team. Making a browser engine is almost the ideal case.
The breadth of the task is staggering, but there is a real shot at posting the necessary endurance given the circumstances, being thrifty and given time.
Before you reach for the downvote button for talking out of my arse and calling what the Ladybird folks doing a (qualified, specific) "easy", when we at KDE created KHTML which later begat WebKit, for many years - kling might remember! - our IRC channel topic was "which mozilla bug do we emulate today?", so I've seen it happen once before! Ladybird can succeed; consider contributing.
Here's a guide to help you get started contributing:
https://github.com/LadybirdBrowser/ladybird/tree/master/Docu...
Here are the latest Web Platform (WPT) tests:
https://wpt.fyi/results/?run_id=6292901677236224
There is a Discord if you want to ask questions:
https://discord.gg/c8JEZkDvtY
Compile it yourself (it takes 15-20 minutes to fully compile) and test it on a website. Compare it to Firefox or Chrome and see what's wrong. Fix it and submit a PR.
how to build Ladybird https://github.com/LadybirdBrowser/ladybird/blob/master/Docu...
I tried contributing but its too c++-y for me to understand it unfortunately.
This is the way to start learning.
Look at a WPT test and try to focus on it.
Look at the web spec
Ask questions in the Discord about where it would be, and people are gladly willing to help. :)
Unfortunately for c++, the industry is moving towards Rust. Even conservative gray-suit Corps are using rust for their new projects. The limiting factor is available rust devs. Writing c++ is a sure way to get hired maintaining a legacy codebase.
Ladybird is an outlier and there are probably a few more project like it, but anyone looking to be employed should pick up the new skill that is rust. Contribute to ladybird and learn c++ if the project interests you, but don't learn it for a career.
Out of curiosity, where are you located where large companies are desperately trying to snap up every available Rust developer? Everywhere I've looked, the few Rust job postings I've seen have mainly been from cryptocurrency startups. All of the non-crypto Rust job postings I've seen are from companies trying to get experts in a particular niche. Must have 8 years of Linux kernel development experience plus 3 years of Rust experience, must have 5 years of network driver development experience plus 4 years of Rust experience, that sort of thing. Even including crypto startups, I see far more C++ jobs than Rust jobs.
https://news.ycombinator.com/item?id=44768882
The industry is not moving to Rust. There are projects here and there, but mostly for safety critical code and other situations where it makes sense, see chromium and Windows kernel. I don't know any major project stopping active development in C++ and switching to Rust instead.
https://news.ycombinator.com/item?id=44768882
You may live in a bubble. Rust is great and all but C++ is still dominant in its space. The web browser you're using right now? C++. The OS you're using? Probably some unholy mixture of C and C++. Console and computer games? Written in C++ as a rule.
https://news.ycombinator.com/item?id=44768882
The commenter talked about new projects, why are you talking about the web browser and the OS?
New games are not made in Rust. Rust has been trying hard and it's going nowhere.
Working on a major new project right now in C++. In our case, it’s a high performance 2D GPU accelerated drawing application - C++ and many of its battle hardened/established libs are the only game in town. Rust is a non-starter for a large range of apps
There are plenty of embedded projects still being started with c. C++ also has a lot of demand where i am at.
The advice about career is very geography and industry dependent. Almost no one hired Node.js developers in my city back when i started.
https://news.ycombinator.com/item?id=44768882
I wish I lived in the same world as you.
There's basically 0 rust jobs available that aren't scam startups.
https://news.ycombinator.com/item?id=44768882
I don't understand the hate towards C++. Many of the aspects criticized for are non-issues in modern C++. I am not to knowledgable about Rust, but what reason is there to use Rust? Memory safety isn't much of a problem in C++ anymore with smart pointers, std::move. Implicit typing exists in C++ with std::auto. Functional programming with lambda, std::functional, std::map, etc. C++ does everything I have wanted it to do, has a huge ecosystem of libraries, and great tools.
This'll be an "out there" comment but after coming to the conclusion long ago that governments have infrastructure built to manipulate online communities with mass propaganda, usually to impart typical political/social messaging, and then realizing that a few years ago the NSA put out an official statement about wanting people to not use C++, I finally put two and two together and realized that, being a government entity, they could have easily just tacked on an "anti-C++" campaign to the list of active propaganda farm campaigns, and viola, anti-C++ comments start appearing on forums everywhere.
> Memory safety isn't much of a problem in C++ anymore with smart pointers, std::move.
Of course it is! You can still access an object after std::moving it somewhere, return references to local stack variables from functions, double-delete (or zero!), use uninitiated variables and do bunch of other things that rightfully caused notoriety C++ has got. And am saying it as someone who writes C++ every workday, unfortunately.
You "write C++ every workday" and don't even know that moved-from objects are guaranteed to be valid?
> return references to local stack variables from functions
> use uninitiated variables
Any properly configured compiler will catch and warn about those errors.
> double-delete (or zero!)
Not a real issue if you're using smart pointers.
Sure, you can program with no compiler warnings and no smart pointers—but nothing is stopping you from wrapping your entire Rust program in "unsafe" and doing all those things there as well. Programming languages can only do so much to save people from their own incompetence.
They're likely moving to swift not rust.
There are a lot of comments that I unfortunately cannot address individually so I'll make a single reply and try to address them all. A lot of valid call outs pointing out flaws in my claim and even extrapolating from my claim, please understand my coarse answer balanced brevity and thoroughness. I'll do my best to expand and provide evidence:
I am plugged into an alumni network (based in the US) so I'd say I have a decent sample size to draw conclusions/trends from. Yes, these trends don't apply to every market or locality so there are loads of counter examples. The demographics of the alum network appear to be mostly mid-to-senior level ICs and management from backgrounds being engineers in the private sector and gov contractors. The start-up scene is grossly under-represented.
The tell-tale sign of a mature technology that has the momentum to last is if businesses that do a lot of gov contracts finally adopt a technology. We've seen this pattern with virtualization, then with containers, then with clouds + micro-services. Gov contractors are very conservative to adopt and rely on technology because ultimately their customer (gov agencies) maintain the service. And their pay are not like big tech so they cannot compete on that front and need a healthy and established pool of talent to pick from.
Every successful project is staffed with leads who know the problem space and the technology that is used in the solution. When planning for a project, you HAVE to account for how easy it will be to find talent to support the project given your budget. For short-term or "high-risk-of-being-on-time" projects the talent pool is obviously larger for established technologies like c++ and so that is what has historically been chosen. Obviously where it is appropriate to use c++. For those of you claiming I am in a bubble... perhaps. But keep in mind that companies with a "first to market" mentality are not the majority :)
The point of inflection for Rust I am continually noticing, and why I am confident it is an excellent for career-growth, it is NO LONGER being labeled as a "high risk" for new medium to long-term projects/efforts. When there is runway to grow/find Rust developers and there is runway to develop a missing library that is a dependency, Rust seems to be favored. Yes, if your industry is dependent stable and battle tested libraries then that is a case when Rust might not displace it. But another trend that backs up my claims is seeing parts of such libraries/projects being refactored out into its own thing written in Rust - and all that lives in parallel. So perhaps the dev that knows both languages is the better career advice. Lean toward one language or another based on your interests.
One final thing I will add is there is a good deal of "internal learning" opportunities for already employed folks to learn rust and start on the new project. These are folks that know memory management, know the problem space, know the company tooling, etc. Compare that with a new hire that will also learn rust, and you can see which an employer will favor. Internal folks moving to Rust opportunities and back-filling them with new c++ devs is a common tactic. But that being said, talent still needs to be found and often times casting a wider net by looking for c++ folks that are willing to transition to Rust is a tactic used on job postings. Rust is in demand for systems programmers and zero trust applications, btw.
> The limiting factor is available rust devs. Writing c++ is a sure way to get hired maintaining a legacy codebase.
Anyone looking to be extremely employable in this market should really learn both.
Otherwise, you are not going to see a migration to Rust from C++ shops at all.
> Ladybird is an outlier and there are probably a few more project like it. but anyone looking to be employed should pick up the new skill that is rust.
Then I suggest you prepare for Leetcode hards on Rust code, if you want to show that you are highly experienced in solving DSA problems that are found in systems software.
Also, why does Ladybird get a pass and the others don't?
120Hz limit for high refresh rate support seems strange. The most common refresh rate for high refresh rate monitors is 144Hz, and faster refresh rates are available. If you run a 120fps animation on a 144Hz monitor you'll get duplicated frames, which negates a large part of the benefit.
My first thought was that this was done with consideration for mobile phones, since many higher-end models use 120 Hz displays, but Ladybird does not seem to support mobile for now.
> Websites using requestAnimationFrame now render at up to 120Hz on supported hardware
But the phrasing of it about "can now" suggests to me that this may simply be a performance issue too. They changed it from 60 to 120. Perhaps in the future they can go from 120 to 144 or even 240.
I think this was just worded a bit wrong in the newsletter. In the actual code, it is set to the refresh rate of the screen itself.
Maybe the developer that implemented it only had a 120hz display to test it on?
On Twitter, Andreas points out that his Keynote Presentation on the Ladybird Browser on the FUTO conference in Texas earlier in the year, might be the best current introduction to the project:
https://www.youtube.com/watch?v=9YM7pDMLvr4
I've watched this a few months ago after randomly seeing it on YouTube. It's a very good talk and fun to follow even if you are not a browser developer. He's a good presenter.
This is such an important project, to keep the big corporations from completely controlling the future of the web.
And it doesn't hurt that Andreas seems to be such a nice, humble guy.
> Andreas seems to be such a nice, humble guy.
Truer words have never been spoken!
His monthly update videos are so soothing to watch.
In order for that to be true Ladybird would need a sizeable market share, more than browsers like Firefox, which also isn't made by a corporation.
Interesting whether guys employ LLM to speed up development. Starting a new browser just like this would be very bold decision like 15 years ago, now seems like a reasonable thing to do actually.
Would have to be at the hands of an already skilled practitioner. Average Joe programmer setting out to build a browser with Copilot will end badly. Big-picture architecture and discipline is too important with this level of complexity.
Not what I meant really. antirez is not a junior yet codes with LLM assistence.
Not sure why this gets downvoted but since when is it illegal to ask whether people actually use intellisense? I mean - what’s wrong with being interests how ppl bootstrap and get to thousands of LOCs in practically no time.
Just for the record - I never said vibecoded.
Ladybird is 425k LOC. Chromium is 3.5m LOC.
Starting a new browser, using LLMs... Is not going to maintain enough context.
Whilst Andreas does use Copilot a fair bit [0], he tends to do a line at a time, frequently disagree and rewrites his own, before prompting again. That is... He basically uses it as a fancy autocomplete. Not much else.
[0] https://www.youtube.com/watch?v=8mxubNQC5O8&t=3099s
Fancy or not an autocomplete is autocomplete. What if it autocompletes one class or one function at a time? Does this make it obnoxious to even think asking about it on HN?
I believe Chromium is closer to 35m LOC
Most of the guys in the LB project don't use LLM's, even though it extremely spec-driven, because C++ is not great with AI for some reason.
But Andreas does fairly heavily, if you watch his code VODs you see that he leans on copilot often.
I haven't watched the VODs myself but I am curious as to the nature of the Copilot use - is it a fancy autocomplete, a 2nd look at code he's already written, or is it generating large parts of the code?
The SerenityOS project literally has "NIH syndrome" at its core ["the SerenityOS project, which has a strong culture of writing everything from scratch.", https://ladybird.org/#faq] so I would expect a degree of skepticism of AI code generation.
But there was the post semi-recently about Cloudflare developers shipping a mostly-AI-generated software, overseen by real devs [https://news.ycombinator.com/item?id=44159166] Perhaps Andreas' use of Copilot is a similar thing, where he saves keystrokes and finds errors in the generated output with his own experience. I'll go watch some VODs.
Most of it was written without LLMs for that reason, but now Ladybird is its own project, the NIH focus has largely gone away. They are using a lot of third party code now. Their mission is compete with Chrome, not be 100% NIH.
With some "Thank you, Copilot"-s sprinkled in to spare him in the robot uprising universe.
A comment that could apply to anything. Notice how nobody except for your subthread here is talking about AI. This thread is not about AI or LLMs, for a good reason.
they’re downvoting you, but the developer actually uses copilot a lot in his development videos. why are people so up in arms?
of course, he’s a very, very proficient developer and a browser specialist. he’s not just vibecoding, like you might be implying. but he also uses llms for development.
Well to my surprise they do, even though every sane dev in 2025 uses some sort of code assîtes autocomplete. So it seams now we discussing what is the threshold reg intelligence of the autocomplete.
Ridiculous stuff indeed.
I’ve been coding for 25 years and nothing in my message implies vibe coding. I know what I’m talking and sure bet many others here do.
Because it's bad enough (for those of us that aren't heavily invested in the topic) that often 50%+ of the frontpage is about AI now, to go into the comments for a clearly non-AI topic and see a bunch of "but what about LLMs" comments really just sucks the fun out of HN for a lot of us.
That’s not even close to true unless you rate all ML as AI and all conditional structures thinking. Like, why don’t you first try to rate and count them before spitting malice ?
in all honestly much less AI stuff gets to the HN front compared to when OpenAI first released GPTs. Given there are thousands of publications every month and dozens of startups launched with ridiculous valuations and most of this is actually submitted here for karma or leverage.
Besides, what, knowledge representation via stochastic probabilistic graphical models is now an heresy? Since when? Since MPEG or MP3 ?
Because LLMs being a thing now has no bearing on whether it's a good idea or more practical to build a new browser.
It is so amazing and wholesome to see a huge team of people come together and just collaborate on something they are passionate about and seriously believe in. I'm very hopeful that Ladybird will get to the point where we can use it as a main browser.
Compile it yourself (it takes 15-20 minutes to fully compile) and test it on a website. Compare it to Firefox or Chrome and see what's wrong. Fix it and submit a PR.
how to build ladybird https://github.com/LadybirdBrowser/ladybird/blob/master/Docu...
You forgot the enormous learning curve of understanding how browsers work and how to write proper code in Ladybug that doesn't waste the maintainers´ time.
Last time I tried, I couldn't find a website that worked with it. Where do you even begin contributing to such a large, complex, very much WIP project? The barrier to entry is daunting.
When it comes to larger projects, first:
- you don't need to understand the whole in order to help
the kind of bugs you can start with are like :
- this icon is a bit weird, it's off centre by 2px - how do I add 2 pixels to this icon? either by moving it or by changing the underlying image asset? if I'm moving it, what is the subroutine that paints it? if I'm changing the image asset itself, where is it stored? (is it in a packed store? or is it just a plain file, etc)
- when I click this button, trace the pathway - it's supposed to add to history and turn blue. is it doing that?
etc.
For large projects, start super small and work your way out from there.
Pick a site that almost works on it and then fix it to fully work?
>Last time I tried, I couldn't find a website that worked with it.
That was the case for me last time I tried it as well, which was a few months ago. Tried it again yesterday and I could load many pages. Could even render complex real life pages like YouTube.
I recommend anyone to build it themselves. It is a very simple and smooth experience.
Amazing, going to try it again right now. I had also tried a few months ago.
Why the commanding tone?
Why the tone policing? This isn’t helpful. Whereas parent comment was to the point and linked to a helpful resource. Give people the benefit of the doubt and assume good intent.
I did assume good intentions and even gave them the benefit of the doubt: that's why I asked them why they were using a commanding tone and said nothing else. They clarified that indeed, their intentions were good and so being rude and sounding commanding wasn't the intent, and that was the end of that. Why do you have to turn this into something bigger? It was a done topic.
I also disagree that this isn't helpful. *
For one, they're now aware that they come off as commanding when they write like this. They now know they should look up why that is (if they care), and how to alter their language accordingly. This should serve them well, since it makes their use of language more in line with their intentions, and prevents them from receiving rude / more involved meta responses from those who don't assume good intentions or aren't willing to hear them out like I did. It should also prevent them accidentally causing reputational harm to the projects and organizations they're trying to support this way.
Second, since I kept it brief and minimal, I avoided other people asking about this not so nicely and not so straightforward. Could have turned into an ugly flamewar.
Speaking of, I do not understand why some people have it so out for "tone policing". It feels like an overreaction, a grand backwards swing in response to supposed "moderation overreach / censorship". Admittedly very in vogue these days, but cultural standards exist for a reason. I refuse to be forced to decide between the two extremes of overpolicing and no policement at all. I do also appreciate the value of just letting moderation tools and moderators do their job, but I do still have some - increasingly faint - hope that with some people, communication is also a viable, or even the preferable way - as it was in this case.
* And I further disagree that being helpful in terms of information content or effect would be mutually exclusive with all this, or would even be related. Helping alone doesn't make a helpful person, particularly if helping isn't their explicit intention.
English isn't my first language; sorry about that :)
Your English seemed perfect to me, including the tone. Some people wilt at the mere suggestion that they do something.
Thank you for your helpful comment. I’m compiling it right now :)
I did actually watch a friend compile and run it, and we tried it on a couple of simple web pages and were impressed with the results!
However, there are two barriers to me building it myself and submitting PRs. The first is that it's not officially supported to build or run on Windows, so I'd have to get familiar with WSL first or set up a dual-boot environment.
The second is that it's written in the obsolete and unusable language of C++. I would have loved an opportunity here to get into Rust or something, but C++ has proven itself hazardous to my mental health, so I'm staying away from it.
I love Rust, but I do not like how people are rust evangelists and look down on everything else. That is not how we in the Rust community look at things.
Now, with that out of the way. Andreas has been very clear about the reasons why C++ is the chosen language. He has years of experience with it along with writing browsers.
Im paraphrasing here, but he has said that the web evolved around the era of OOP and C++ is the OOP language of that era. Including statements on how C++ fits nicely with the OOP styles of web specs.
There’s always the option of contributing to Servo if you’re interested in Rust and browser engineering.
For the WSL part: that's one command in powershell/cmd and then a download from the Microsoft store. You won't find it challenging, there's not much more to it than that in 99% of cases (and if you do run into issues, there are probably better alternatives to trying to fix WSL anyway).
As for C++, Ladybird uses very modern C++ that makes it substantially easier to write reasonably safe code than the C++ of yore.
Still, as much as I would like to see the world move to safer languages, C++ is everywhere. Every major browser is written in it. It's not "unusable" in the slightest (though I certainly understand not wanting to learn C++ as an outsider at this point in time, it's a quite boring language in comparison and the C++ job market probably won't let you make use of modern language features that might make it interesting).
I would love to live in a world where projects with security risks like web browsers would "just" use Rust instead of C++ but you'll have to convince the people building the browser to spend their own time or their bosses' time to learn Rust first, and that's a tough sell.
There's Servo if you want to contribute to an open source browser in Rust. It looks like it can certainly use the help it you compare its development speed with Ladybird.
I don't know which bubble you are in, but C++ is nowhere near obsolete status. As much as want Rust to be adopted widely, that still hasn't happened, despite small-scale effort to sprinkle it in various projects.
Unusable yet people have written a browser in it?
Four browsers!
> The second is that it's written in the obsolete and unusable language of C++.
Oh come on. There's nicer ways to say "I'm not good at it". It's OK you know, you can't be good at everything. Just don't make it other people's fault.
Nobody's good at C++. I've written C++ and even got to the point where I felt I had things under control, but tbh that's just delusion and hubris.
If you look at it that way, nobody is good at anything. True perhaps but not a very useful stance.
Millions of people have built meaningful software with C++ over the past several decades. It is everywhere and it mostly works OK.
Of course, C++ is not necessarily the best choice for everything or anything. But it is a mostly reasonable choice for lots of things in 2025, just like it was in 1995.
There are different levels of confidence in junior programmers code in different languages. For C++ it is one of the lowest possible.
If thousands of HN readers suddenly decide that they need to start their 10+ years learning of C++ with immediate contribution to the Ladybird project it would be not really helpful, right?
It would be a weird kind of bad situation, if literally thousands of juniors with little to no experience/understanding of programming simultaneously start learn-as-you-go contributing C++ code for Ladybird.
In the perhaps more plausible situation that two or three people with a reasonable foundation in CS and/or a bit of professional programming experience decide to learn C++ in order to help Ladybird, I think it would work out quite fine.
I had to think carefully if I would ever agree with 'plausible situation' at any point of my career. And the answer is no. If they really needed 2-3 ppl they would have adjusted their sponsorships/donations plan and picked up those ppl full time. There are costs of bigger teams and wider contributor networks that are rarely advertised.
But ofc what can I know about browsers, I am just a gamedev. From my PoV (studio tech director) in custom game engines juniors mostly do acts of wanton destruction in the name of curiosity. And then leave for better compensated industries anyway.
In my opinion folks inciting random contributions from webdev crowd unfamiliar with C++ are not helping. And those who are familiar should know better than to do random drive-by features.
I'm pretty good at C++.
By using a very simple technique, I've managed to write 0 bugs in it in the past 15 years.
I assume that simple technique is to not write any C++, despite being pretty good at it?
Yes, that was the joke.
Hah, the same could be said about Rust.
And I’d disagree with both.
Those are two you-problems.
Really really hope these guys get a foothold in the market. I'm a decades long Firefox user but even I have to admit things with Mozilla aren't looking bright so projects like this are the only things that can save us from the chrome clone wars.
I wonder if Ladybird will ever become a member of the WHAT-WG steering group. It would be nice to see more / any independent voices on there.
I doubt they're as interested in bigco politics as they are in hacking out features.
On the other hand, I think they had a dev or two on TC39. I remember it being mentioned in one of Andreas’ videos (years ago)
If on an Arch based distro, Ladybird is in AUR. Easy to try, compiling now!
How is the ladybird experience at the moment? Coming from FF and basically just need ublock and a handful of extensions that make YT usable
It's currently in pre-alpha phase and glitches on pretty much every modern website (source: I just compiled and tested), so not very usable right now. Their target is to release in 2028. (See https://x.com/ladybirdbrowser/status/1895767072639951341)
Thanks for the feedback. Hopefully it becomes more usable asap...keen for this to not turn into a chrome(ium) mono-culture
The power of one, the power of a mind who can’t take no for an answer to the inner voice.
And don’t lecture me about the many, for the many wouldn’t have started it, they joined the one.
You know the one, cherish him.
Thanks!
Why Discord though? Truly independent project, keep big corps away, future of the web at stake here yada yada yet using the most walled garden of walled gardens. If there is no publicly accessible and searchable archive then might as well not exist.
I think Andreas made a comment about this in some of his videos along the lines of: It's where the most people are.
Because network effect. You either use Discord or nobody comes.
Would like to hear your suggestion of an alternative that:
* has a modern interface and allow people to communicate efficiently
* does not cost a fortune to use
* has good moderation tools
* supports multiple channels
* has enough built-in moderation so that spam/illegal content is minimal
etc.
Zulip. Open source, self-hostable, looks decent and not only does it have every feature that discord has, their version of threads/topics to spin off individual conversations is extremely well done.
And, don't overlook the indexability of Zulip so that information doesn't instantly /dev/null just because Discord hates having bots or because one can only ever(!) join 100 Discord servers
e.g. https://servo.zulipchat.com/#narrow/channel/416780-feature-t...
Zulip?
Because it's chat if you treat it like a knowledge base it's on you.
If that were true than IRC would be absolutely perfect.
SerenityOS used IRC but when Andreas changed to discord he saw a massive influx of developers. I assume that it was a no brainer to use discord when forking Ladybird...
So would be Discord, and so it is.
Come on, it's inevitable that chat history becomes a knowledge base to some extent even if the participants are aware of this pitfall.
Only if you let it.
Andreas has made it clear he’s not interested in free software politics. That’s not his battle
That's fine, but I don't see what free software has to do with searchability and persistence of the backlog
I didn’t say it did. The person I replied to mentioned free software adjacent principles
For some reason I can't find the RSS feed for the newsletter; anyone that did who could post it here? I can only find the one for the "announcements"—which seem a lot less relevant to follow the progress of the project.
https://buttondown.com/ladybird/
If their blog has an RSS feed, that would be great for people who want to follow their work.
What do you even mean "if their blog had a RSS feed"?
The feed is right there in the link being discussed.
They mean that https://ladybird.org/posts.rss only includes "news" (last updated in October 2024) but not "newsletters". In another thread, there is a link to the newsletter archive which can be subscribed to with a feed reader: https://news.ycombinator.com/item?id=44765710
Any news on the usage of Swift?
There are currently a few blockers : https://github.com/LadybirdBrowser/ladybird/issues/933
Thanks. That looks like nice progress.
You guys are on fire!
Unbelievable process, this guys are crushing it
The web is UTF-16 ? WTF
JavaScript is: https://mathiasbynens.be/notes/javascript-encoding
> The ECMAScript/JavaScript language itself, however, exposes characters according to UCS-2, not UTF-16.
The native JS semantics are UCS-2. Saying that it's UTF-16 is misleading and confuses charset, encoding and browser APIs.
Ladybird is probably implementing support properly but it's annoying that they keep spreading the confusion in their article.
It's not cleanly one or the other, really. It's UCS-2-y by `str.length` or `str[i]`, but UTF-16-y by `str.codePointAt(i)` or by iteration (`[...str]` or `for (x of str)`).
Generally though JS's strings are just a list of 16-bit values, being intrinsically neither UCS-2 nor UTF-16. But, practically speaking, UTF-16 is the description that matters for everything other than writing `str.length`/`str[i]`.
And most mainstream GUI toolkits are, as well. It can be said that UTF-16 is the de-facto standard in-memory representation of unicode strings, even though some runtimes (Rust) prefer UTF-8.
> And most mainstream GUI toolkits are, as well.
No. Windows use UTF-16 internally. Most GUI toolkits do not.
> It can be said that UTF-16 is the de-facto standard in-memory representation of unicode strings, even though some runtimes (Rust) prefer UTF-8.
No, that wouldn't be true at all.
Your technical merit seem to be limited by your Windows experience, and even that is dated.
Microsoft recommends UTF-8 over UTF-16 since 2019 [1].
1: https://learn.microsoft.com/en-us/windows/apps/design/global...
> Most GUI toolkits do not.
Why are you guys talking like there were dozens of GUI toolkits in mainstream use? It's basically web stuff, Qt, and then everything else. Web would be UTF-16 as discussed above, Qt is UTF-16, and even if we entertain the admittedly "large just behind-the-scenes" Java/.NET market, that's also all UTF-16. WxWidgets being a fence sitter can do both UTF-8 and UTF-16, depending on the platform.
Which players am I missing? GTK and ImGUI? I don't think they are too big a slices of this pie, certainly not big enough to invalidate the claim.
Apple also uses some kind of UTF-16 internally, afaik
not just UTF-16 but potentially malformed UTF-16 (supporting invalid surrogate pairs or surrogate halves and with js string functions computing things like lengths independently of UTF-16 characters)
This is also widely known as WTF-16 (seriously, look it up!)
How long until it gets abandoned too?