Closing this as we are no longer pursuing Swift adoption

Reason Swift Adoption Was Dropped

  • Official commit message: Swift work had “made no progress for a very long time,” so it was removed to acknowledge it wasn’t going anywhere.
  • Commenters infer the practical cause as repeated build breakage and immature Swift–C++ interop: conflicting C++ libs, operator/version issues, fragile CMake integration.
  • Several people note Ladybird is highly productivity‑ and milestone‑driven; sinking time into a language migration instead of browser features was seen as unjustified.

C++ vs Safer Languages for Browsers

  • Some argue C++ is “battle tested” and every major browser uses it, so sticking with it is pragmatic.
  • Others counter that browsers are “stuck” with C++, and large projects (Chromium, Firefox) are actively moving hot paths to safer languages or safer subsets; building a brand‑new browser in C++ is seen as repeating old mistakes.
  • Discussion of a “safe subset of C++”: skeptics say this is largely aspirational; even with modern STL and ranges, memory‑unsafety bugs keep appearing (Chromium CVEs mentioned).

Swift vs Rust (and Other Language Choices)

  • Ladybird previously compared Swift and Rust and chose Swift, citing better OO support and C++ interop for their existing OOP-heavy C++ codebase.
  • Critics note this prediction failed in practice: Swift’s C++ interop was too flaky; Rust might have been a better long‑term bet.
  • Rust is criticized as awkward for large, cyclic object graphs (DOM/GUI), good for short-lived A→B transforms, and having a “toxic” community. That aligns with why Ladybird avoided it.
  • Some suggest D, Go, C#, or memory-safe C/C++ subsets, but there’s no consensus “best” language.

Assessments of Swift and Apple’s Ecosystem

  • Multiple commenters describe Swift as:
    • Overly complex for its age.
    • Slow to compile.
    • Designed primarily around Apple’s needs (Obj‑C interop, ABI, no GC), not general-purpose use.
    • Weakly “open source” given Apple’s culture and OSS restrictions on employees.
  • Others defend Swift as pleasant, expressive, and with strong C++ interop for many use cases; the problem here is framed as tooling maturity and lack of Swift expertise on Ladybird, not inherent unsuitability.

Views on Ladybird’s Direction and Alternatives

  • Some see frequent big‑picture shifts (Swift, Jakt, etc.) as ADHD‑like and risky for a donation‑funded project.
  • Others push back: Ladybird split from a “everything from scratch” OS, dropped much homegrown infrastructure, and is described as intensely pragmatic and fast‑moving.
  • Comparisons to Servo:
    • Servo is praised for modular Rust components but criticized for slow visible progress and complexity.
    • Several predict Ladybird will become “usable” sooner than Servo, despite starting later and using C++.

Broader Rust/LLVM and Community Dynamics

  • Long subthread on LLVM and its designer: some call LLVM and Swift “successful messes” (slow, unstable ABI, so‑so optimization); others strongly disagree, pointing to LLVM’s ubiquity and lack of serious alternatives.
  • Some compiler authors complain about LLVM complexity and performance, but others note that highly optimized languages overwhelmingly target LLVM.
  • Rust’s community is characterized by some as aggressively evangelistic and “toxic,” with frustration at Rust being injected into every language discussion; others say simply proposing Rust isn’t toxic in itself.

Miscellaneous Technical Points

  • JS/privacy: one commenter hopes Ladybird will implement Tor‑style fingerprint‑resistant JS behavior; others warn this would break many mainstream sites or get flagged as bots.
  • Interop: experience reports show Swift C++ interop is powerful but spotty; often a C or ObjC++ shim is still needed.