Ladybird browser to start using Swift language this fall

Swift and LLVM Fork

  • Discussion clarifies that Swift uses an open-source LLVM fork, not a closed one.
  • Some ask why changes aren’t upstreamed to reduce Apple’s maintenance burden.
  • Replies: Apple can’t dictate LLVM’s direction, upstreaming takes time and may be rejected, and permissive licenses allow long-lived forks.

Language Choice for Ladybird (Swift vs Rust vs C++)

  • Many expected Rust for guaranteed memory safety; others note Swift is also memory-safe and now adds data-race safety in Swift 6.
  • Swift’s C++ interop is seen as crucial for incremental migration instead of a big-bang rewrite.
  • Critics compare this to game studios switching engines mid-project and predict schedule slips or failure.
  • Some argue staying in C++ is safer given team expertise; others say moving off a memory-unsafe language is worth early pain.

Rust: Strengths, Weaknesses, and Community

  • Rust praised for memory safety, ecosystem, and reliability, especially for “input A → output B” programs.
  • Several claim Rust is clunky for long-lived programs with complex, cyclic object graphs; patterns exist but are awkward.
  • Big subthread on “toxic community” and “Rust evangelism”:
    • Some report dismissive or harassing behavior and vandalism of C++ resources.
    • Others say their day-to-day Rust interactions are helpful and toxicity is overblown or mostly meme-level.
    • Debate over what a code of conduct can realistically enforce.

Swift Capabilities and Ecosystem

  • Swift described as memory-safe, ARC-based, with improving concurrency (async/await, actors) and structured cancellation.
  • Positive experiences reported with async/await; actors seen as useful but not a panacea.
  • Cross-platform story: LSP and VS Code are “usable now,” but tooling and package ecosystem feel immature compared to Node or .NET.
  • Concerns about slow compilation and Apple-centric governance; some worry about being tied to Apple’s priorities.
  • Others see Ladybird as a chance to grow non-Apple Swift, similar to how Servo helped shape Rust.

Alternative Languages (C#, Zig, Jai, etc.)

  • Some argue C#/.NET would be a stronger choice: good AOT performance, mature tooling, many bindings, and cross-platform reach; main knock is GC and perception in “systems” contexts.
  • Zig mentioned but criticized for lacking a strong use-after-free story.
  • Jai noted as unsafe and missing key features; not seen as viable here.

Project Direction, Politics, and Viability

  • Some distrust the decision, speculating about funding or “marketing” motives; others say timeline (non-profit + decoupling from SerenityOS) better explains it.
  • Prior disputes over pronoun use and “no politics” policies in related projects color how some perceive the move and comments about “toxic” communities.
  • Overall sentiment is sharply split between optimism (modern, safer stack; new contributors) and pessimism (tooling immaturity, mid-course language change, risk to project success).