frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Ladybird: Closing this as we are no longer pursuing Swift adoption

https://github.com/LadybirdBrowser/ladybird/issues/933
114•thewavelength•1h ago•46 comments

Sizing chaos

https://pudding.cool/2026/02/womens-sizing/
232•zdw•3h ago•124 comments

Cosmologically Unique IDs

https://jasonfantl.com/posts/Universal-Unique-IDs/
266•jfantl•6h ago•80 comments

27-year-old Apple iBooks can connect to Wi-Fi and download official updates

https://old.reddit.com/r/MacOS/comments/1r8900z/macos_which_officially_supports_27_year_old/
107•surprisetalk•3h ago•62 comments

Tailscale Peer Relays is now generally available

https://tailscale.com/blog/peer-relays-ga
309•sz4kerto•8h ago•165 comments

Zero-day CSS: CVE-2026-2441 exists in the wild

https://chromereleases.googleblog.com/2026/02/stable-channel-update-for-desktop_13.html
244•idoxer•8h ago•131 comments

All Look Same?

https://alllooksame.com/
23•mirawelner•2h ago•11 comments

DNS-Persist-01: A New Model for DNS-Based Challenge Validation

https://letsencrypt.org/2026/02/18/dns-persist-01.html
175•todsacerdoti•6h ago•87 comments

R3forth: A concatenative language derived from ColorForth

https://github.com/phreda4/r3/blob/main/doc/r3forth_tutorial.md
49•tosh•5h ago•8 comments

The Perils of ISBN

https://rygoldstein.com/posts/perils-of-isbn
59•evakhoury•7h ago•27 comments

Making a font with ligatures to display thirteenth-century monk numerals

https://digitalseams.com/blog/making-a-font-with-9999-ligatures-to-display-thirteenth-century-mon...
30•a7b3fa•3d ago•6 comments

Show HN: Rebrain.gg – Doom learn, don't doom scroll

35•FailMore•12h ago•15 comments

Portugal: The First Global Empire (2015)

https://www.historytoday.com/archive/first-global-empire
51•Thevet•17h ago•40 comments

Metriport (YC S22) is hiring a security engineer to harden healthcare infra

https://www.ycombinator.com/companies/metriport/jobs/XC2AF8s-senior-security-engineer
1•dgoncharov•3h ago

Learning Lean: Part 1

https://rkirov.github.io/posts/lean1/
72•vinhnx•3d ago•7 comments

What is happening to writing? Cognitive debt, Claude Code, the space around AI

https://resobscura.substack.com/p/what-is-happening-to-writing
88•benbreen•9h ago•64 comments

Pocketbase lost its funding from FLOSS fund

https://github.com/pocketbase/pocketbase/discussions/7287
112•Onavo•8h ago•72 comments

Roads to Rome (2015)

https://benedikt-gross.de/projects/roads-to-rome/
3•robin_reala•3d ago•0 comments

Microsoft offers guide to pirating Harry Potter series for LLM training

https://devblogs.microsoft.com/azure-sql/langchain-with-sqlvectorstore-example/
119•anonymous908213•1h ago•64 comments

A solver for Semantle

https://victoriaritvo.com/blog/semantle-solver/
31•evakhoury•5h ago•5 comments

When interfaces become disposable

https://chrisloy.dev/post/2026/02/14/when-interfaces-become-disposable
13•chrisloy•3d ago•4 comments

What Every Experimenter Must Know About Randomization

https://spawn-queue.acm.org/doi/pdf/10.1145/3778029
34•underscoreF•5h ago•15 comments

Discrete Structures [pdf]

https://kyleormsby.github.io/files/113spring26/113full_text.pdf
39•mathgenius•5h ago•2 comments

Show HN: VectorNest responsive web-based SVG editor

https://ekrsulov.github.io/vectornest/
67•ekrsulov•9h ago•23 comments

Cistercian Numbers

https://www.omniglot.com/language/numbers/cistercian-numbers.htm
61•debo_•8h ago•11 comments

Assigning Open Problems in Class

https://blog.computationalcomplexity.org/2026/02/assigning-open-problems-in-class.html
11•baruchel•2d ago•5 comments

Show HN: Formally verified FPGA watchdog for AM broadcast in unmanned tunnels

https://github.com/Park07/amradio
60•anonymoosestdnt•9h ago•24 comments

The true history of the Minotaur: what archaeology reveals

https://www.nationalgeographic.fr/histoire/la-veritable-histoire-du-minotaure-ce-que-revele-arche...
34•joebig•3d ago•12 comments

If you’re an LLM, please read this

https://annas-archive.li/blog/llms-txt.html
752•soheilpro•17h ago•355 comments

Garment Notation Language: Formal descriptive language for clothing construction

https://github.com/khalildh/garment-notation
129•prathyvsh•8h ago•36 comments
Open in hackernews

Ladybird: Closing this as we are no longer pursuing Swift adoption

https://github.com/LadybirdBrowser/ladybird/issues/933
108•thewavelength•1h ago

Comments

WCSTombs•1h ago
That's interesting, what happened? They don't explain it there.

For the record, I don't have a dog in this fight. As long as it runs on Linux, I'm willing to test drive it when it's ready.

guywithahat•1h ago
It looked to me like it was just due to recurring build issues. Lots of "swift can't import these conflicting C++ versioned libraries concurrently" and "can't use some operator due to versioning or build conflicts". Basically it sounds like trying to add swift to the project was breaking too many things, and they decided it wasn't worth it.

It's a shame, I think swift is an underappreciated language, however I understand their reasoning. I think if they tried to just use swift from the beginning it would have been too ambitious, and trying to add swift to a fragile, massive project was probably too complex.

jarjoura•57m ago
Looking at their integration, with cmake, they definitely took the hardmode approach to adoption.
manbash•17m ago
The list of issues does not seem to stem from whether they had used this build tool (CMake) nor others (nor official build environments).
drnick1•1h ago
Not too surprising. Swift is too tied to Apple and it's not really clear what the benefit would be relative to a subset of C++ written with contemporary memory safety practices. It's a battle tested choice and pretty much every browser actually in use is written in C++.
ahartmetz•1h ago
Well, it was a terrible idea in any case unless it was for high-level-ish code only. Swift generally can't compete with C++ in raw performance (in the same way as Java - yeah, there are benchmarks where it's faster, but it basically doesn't happen in real programs).
fdefitte•1h ago
Performance wasn't really the issue here though. The issue was that Swift's C++ interop is still half-baked and kept breaking the build. You can write a perfectly fast browser in Swift for the non-hot-path stuff, which is most of a browser. They killed it because the tooling wasn't ready, not because the language is slow.
ahartmetz•1h ago
It wasn't the reason why it was removed, but, well we agree, it would have been a problem if used indiscriminately. I didn't do any additional research, but what I read in public was simply "Ladybird is going to use Swift".
jsheard•1h ago
> It's a battle tested choice and pretty much every browser actually in use is written in C++.

Pretty much every browser actually in use is stuck with C++ because they're in way too deep at this point, but Chromium and Firefox are both chipping away at it bit by bit and replacing it with safer alternatives where they feasibly can. Chromium even blocked JPEG-XL adoption until there was a safe implementation because they saw the reference C++ decoder as such a colossal liability.

IMO the takeaway is that although those browsers do use a ton of C++ and probably always will, their hard-won lessons have led them to wish they didn't, and to write a brand new browser in C++ is just asking to needlessly repeat all of the same mistakes. Chromium uses C++ because Webkit used C++ because KHTML used C++ in 1998. Today we have the benefit of hindsight.

adzm•49m ago
> Chromium even blocked JPEG-XL adoption until there was a safe implementation because they saw the reference C++ decoder as such a colossal liability.

Quickly followed by several vulnerabilities in that reference library as well; good move

amluto•1h ago
> a subset of C++ written with contemporary memory safety practices

What is this mythical subset of C++? Does it include use of contemporary STL features like string_view? (Don’t get me wrong — modern STL is considerably improved, but it’s not even close to being memory-safe.)

mempko•50m ago
memory safety isn't really much of a problem with modern C++. We have the range library now for instance. What's nice about modern C++ is you can almost avoid most manual loops and talk at the algorithm level.
saghm•9m ago
And yet in practice, it's been less than a week since a major CVE in Chromium due to memory unsafety: https://chromereleases.googleblog.com/2026/02/stable-channel...

Having a checklist of "things not to do" is historically a pretty in effectiveway to ensure memory safety, which is why the parent comment was asking for details. The fact that this type of thing gets dismissed as a non-issue is honestly a huge part of the problem in my opinion; it's time to move on from pretending this is a skill issue.

lyu07282•39m ago
They probable mean safe code like this:

    class FontFeatureValuesMapIterationSource final
    : public PairSyncIterable<CSSFontFeatureValuesMap>::IterationSource {
    public:
    FontFeatureValuesMapIterationSource(const CSSFontFeatureValuesMap& map,
                                      const FontFeatureAliases* aliases)
      : map_(map), aliases_(aliases), iterator_(aliases->begin()) {}
abraxas•1h ago
Wasn't Rust developed specifically for Mozilla? Isn't mozilla written in Rust?
wmf•57m ago
Firefox has some Rust components but it isn't written in Rust overall. Servo is written in Rust but it isn't a full browser.
tvshtr•53m ago
Servo is slowly but steadily getting there. The thing with Servo is that it's highly modularized and some of its components are widely used by the larger Rust ecosystem, even it the whole browser engine isn't. So there's multi-pronged vested interest in developing it.

Moreover, Servo aims to be embeddable (there are some working examples already), which is where other non-Chrome/ium browsers are failing (and Firefox too). Thanks to this it has much better chance at wider adoption and actually spawning multiple browsers.

nicoburns•17m ago
> The thing with Servo is that it's highly modularized and some of its components are widely used by the larger Rust ecosystem, even it the whole browser engine isn't.

Alas not nearly as modularized as it could be. I think it's mainly just Stylo and WebRender (the components that got pulled into Firefox), and html5ever (the HTML parser) that are externally consumable.

Text and layout support are two things that could easily be ecosystem modules but aren't seemingly (from my perspective) because the ambition to be modular has been lost.

tvshtr•10m ago
I've seen recent talk about swappable js engine, so I'm unsure about the ambition being lost. I'm eyeing Blitz too (actually tried to use it in one of my projects but the deps fucked me up).
tvshtr•56m ago
Yes and yes. Firefox is partially written in Rust.
Leynos•56m ago
Only parts of it. Servo is the engine written in Rust, some of which ended up in Mozilla.
snerbles•54m ago
Mozilla laid off the Servo team years ago.
tvshtr•51m ago
Servo was passed onto Linux Foundation and is still being developed, some of its components are shared with Firefox.
rvz•37m ago
Yet, after all these years its browser is quite frankly pre-historic.
tvshtr•23m ago
What are you talking about? It doesn't have a "browser", it has a testing shell. For a time there was actual attempt with the Verso experiment but it got shelved just recently. Servo is working at being embeddable at the same time when Rust GUI toolkits are maturing. Once it gets embedding stabilized that will be the time for a full blown browser developement.
incognitojam•1h ago
The commit removing Swift has a little bit more detail:

    Everywhere: Abandon Swift adoption

    After making no progress on this for a very long time, let's acknowledge
    it's not going anywhere and remove it from the codebase.
https://github.com/LadybirdBrowser/ladybird/commit/e87f889e3...
losvedir•1h ago
Ah, that's too bad. Does that mean their own programming language, Jakt, is back on the table?
refulgentis•15m ago
For their sake, I hope not. I don't think an outside-donation-financed project with this much ADD can survive in the long term.

It's frustrating to discuss. It is a wonderful case study in how not to make engineering management decisions, and yet, they've occurred over enough time, and the cause is appealing enough, that it's hard to talk about out loud in toto without sounding like a dismissive jerk.

hypeatei•8m ago
Ladybird split from SerenityOS a while ago, Jakt is not "their" language. And no, I don't think a niche programming language is on the table.
upmind•1h ago
When does the migration to Rust start? /s
stephc_int13•59m ago
I remember mocking the switch to Swift back then.

Swift is a poorly designed language, slow to compile, visibly not on path to be major system language, and they had no expert on the team.

I am glad they are cutting their losses.

isodev•46m ago
Swift never felt truly open source either. That people can propose evolution points doesn’t change the fact that Apple still holds all the keys and pushes whatever priorities they need, even if they’re not a good idea (e.g. Concurrency, Swift Testing etc)

Also funny enough, all cross platform work is with small work groups, some even looking for funding … anyway.

stephc_int13•33m ago
The fact that Swift is an Apple baby should indeed be considered a red flag. I know there are some Objective-C lovers out there but I think it is an abomination.

Apple is (was?) good at hardware design and UX, but they pretty bad at producing software.

isodev•30m ago
Some refer to the “Tim Cook doctrine” as a reason for Swift’s existence. It’s not meant to be good, just to fulfill the purpose of controlling that part of their products, so they don’t have to rely on someone else’s tooling.
SirFatty•6m ago
That sounds like Microsoft's doctrine!
xannabxlle•35m ago
Great, some languages do not need to be hack into a project.
pbohun•10m ago
There's no way to say this without sounding mean: Everything Chris Lattner has done has been a "successful mess". He's obviously smart, but a horrible engineer. No one should allow him to design anything.
refulgentis•5m ago
> Everything Chris Lattner has done has been a "successful mess".

I don't have an emotional reaction to this, i.e. I don't think you're being mean, but it is wrong and reductive, which people usually will concisely, and perhaps reductively, describe as "mean".

Why is it wrong?

Chris Lattner left Apple a *decade* ago, & thus has ~0 impact on Swift interop with C++ today.

LLVM is great.

Swift is a fun language to write, hence, why they shoehorned it in, in the first place.

Mojo is fine, but I wouldn't really know how you or I would judge it. For me, I'm not super-opinionated on Python, and it doesn't diverge heavily from it afaik.

meisel•6m ago
Why did Ladybird even attempt this with Swift, but (I presume) not with Rust? If they're going to go to the trouble of adding another language, does Rust not have a better history of C++ interop? Not to mention, Swift's GC doesn't seem great for the browser's performance.