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.
kloop · 3h ago
> 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.
badsectoracula · 42m ago
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).
net01 · 8h ago
Here's a guide to help you get started 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.
I tried contributing but its too c++-y for me to understand it unfortunately.
net01 · 8h ago
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.
:)
its-kostya · 5h ago
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.
ndiddy · 3h ago
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.
rs186 · 3h ago
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.
zarzavat · 4h ago
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.
andrepd · 3h ago
The commenter talked about new projects, why are you talking about the web browser and the OS?
Thaxll · 2h ago
New games are not made in Rust. Rust has been trying hard and it's going nowhere.
Wintamute · 2h ago
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
saidinesh5 · 5h ago
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.
its-kostya · 10m ago
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 NOT 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.
desdenova · 4h ago
I wish I lived in the same world as you.
There's basically 0 rust jobs available that aren't scam startups.
landdate · 3h ago
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.
thegrim33 · 24m ago
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.
lII1lIlI11ll · 3h ago
> 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.
throwaway18373 · 46m ago
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.
xdfgh1112 · 5h ago
They're likely moving to swift not rust.
rvz · 3h ago
> 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?
samuell · 8h ago
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.
mrob · 7h ago
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.
hyperbrainer · 7h ago
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.
m12k · 6h ago
Maybe the developer that implemented it only had a 120hz display to test it on?
trflynn89 · 1h ago
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.
samuell · 8h ago
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.
Xaiph_Rahci · 4h ago
> Andreas seems to be such a nice, humble guy.
Truer words have never been spoken!
His monthly update videos are so soothing to watch.
charcircuit · 58m ago
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.
larodi · 8h ago
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.
RadiozRadioz · 8h ago
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.
shakna · 6h ago
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.
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.
hyperbolablabla · 8h ago
But Andreas does fairly heavily, if you watch his code VODs you see that he leans on copilot often.
SpecialistK · 7h ago
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.
xdfgh1112 · 5h ago
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.
rzzzt · 7h ago
With some "Thank you, Copilot"-s sprinkled in to spare him in the robot uprising universe.
therein · 7h ago
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.
kome · 6h ago
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.
NoboruWataya · 5h ago
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.
squigz · 6h ago
Because LLMs being a thing now has no bearing on whether it's a good idea or more practical to build a new browser.
Havoc · 13m ago
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
Timwi · 8h ago
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.
net01 · 8h ago
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.
barkingcat · 7h ago
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.
saagarjha · 7h ago
Pick a site that almost works on it and then fix it to fully work?
therein · 7h ago
>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.
phito · 6h ago
Amazing, going to try it again right now. I had also tried a few months ago.
perching_aix · 7h ago
Why the commanding tone?
newdee · 59m ago
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.
perching_aix · 49m ago
I did assume good intentions and 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 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 the explicit intention.
net01 · 6h ago
English isn't my first language; sorry about that :)
newdee · 58m ago
Thank you for your helpful comment. I’m compiling it right now :)
Timwi · 7h ago
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.
emilbratt · 4h ago
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.
jeroenhd · 4h ago
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.
robin_reala · 7h ago
There’s always the option of contributing to Servo if you’re interested in Rust and browser engineering.
xdfgh1112 · 5h ago
Unusable yet people have written a browser in it?
skrebbel · 37m ago
Four browsers!
rs186 · 2h ago
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.
0points · 6h ago
Those are two you-problems.
skrebbel · 5h ago
> 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.
tormeh · 5h ago
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.
apelapan · 4h ago
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.
SleepyMyroslav · 3h ago
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?
apelapan · 2h ago
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.
SleepyMyroslav · 1h ago
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.
desdenova · 3h ago
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.
whytevuhuni · 1h ago
I assume that simple technique is to not write any C++, despite being pretty good at it?
samtheprogram · 3h ago
Hah, the same could be said about Rust.
And I’d disagree with both.
sertsa · 36m ago
If on an Arch based distro, Ladybird is in AUR. Easy to try, compiling now!
edent · 7h ago
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.
skrebbel · 5h ago
I doubt they're as interested in bigco politics as they are in hacking out features.
easton · 4h ago
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)
OptionX · 2h ago
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.
neverrroot · 2h ago
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!
haunter · 8h ago
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.
rs186 · 2h ago
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.
Barrin92 · 1h ago
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.
aledue · 1h ago
Zulip?
mnmalst · 8h ago
I think Andreas made a comment about this in some of his videos along the lines of: It's where the most people are.
ivanjermakov · 1h ago
Because network effect. You either use Discord or nobody comes.
42lux · 8h ago
Because it's chat if you treat it like a knowledge base it's on you.
globular-toast · 5h ago
If that were true than IRC would be absolutely perfect.
dotnetcarpenter · 3h ago
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...
perching_aix · 5h ago
So would be Discord, and so it is.
frou_dh · 6h ago
Come on, it's inevitable that chat history becomes a knowledge base to some extent even if the participants are aware of this pitfall.
42lux · 6h ago
Only if you let it.
bowsamic · 6h ago
Andreas has made it clear he’s not interested in free software politics. That’s not his battle
freedomben · 3h ago
That's fine, but I don't see what free software has to do with searchability and persistence of the backlog
bowsamic · 2h ago
I didn’t say it did. The person I replied to mentioned free software adjacent principles
Pooge · 8h ago
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.
> 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.
dzaima · 7h ago
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]`.
grishka · 7h ago
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.
0points · 6h ago
> 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].
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.
grishka · 5h ago
Apple also uses some kind of UTF-16 internally, afaik
0xfffafaCrash · 55m ago
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 independenly of UTF-16 characters)
This is also widely known ad WTF-16 (seriously, look it up!)
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.
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...
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. :)
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.
The advice about career is very geography and industry dependent. Almost no one hired Node.js developers in my city back when i started.
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 NOT 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.
There's basically 0 rust jobs available that aren't scam startups.
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.
> 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.
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?
https://www.youtube.com/watch?v=9YM7pDMLvr4
> 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.
And it doesn't hurt that Andreas seems to be such a nice, humble guy.
Truer words have never been spoken!
His monthly update videos are so soothing to watch.
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
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.
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.
how to build ladybird https://github.com/LadybirdBrowser/ladybird/blob/master/Docu...
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.
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.
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 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 the explicit intention.
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.
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.
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.
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.
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.
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?
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.
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.
By using a very simple technique, I've managed to write 0 bugs in it in the past 15 years.
And I’d disagree with both.
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!
* 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.
The feed is right there in the link being discussed.
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.
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]`.
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...
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.
This is also widely known ad WTF-16 (seriously, look it up!)