Andreas Kling aka @awesomekling wrote:

We’ve been evaluating a number of C++ successor languages for @ladybirdbrowser , and the one best suited to our needs appears to be @SwiftLang 🪶

Over the last few months, I’ve asked a bunch of folks to pick some little part of our project and try rewriting it in the different languages we were evaluating. The feedback was very clear: everyone preferred Swift!

Why do we like Swift?

First off, Swift has both memory & data race safety (as of v6). It’s also a modern language with solid ergonomics.

Something that matters to us a lot is OO. Web specs & browser internals tend to be highly object-oriented, and life is easier when you can model specs closely in your code. Swift has first-class OO support, in many ways even nicer than C++.

The Swift team is also investing heavily in C++ interop, which means there’s a real path to incremental adoption, not just gigantic rewrites.

Strong ties to Apple?

Swift has historically been strongly tied to Apple and their platforms, but in the last year, there’s been a push for “swiftlang” to become more independent. (It’s now in a separate GitHub org, no longer in “apple”, for example).

Support for non-Apple platforms is also improving, as is the support for other, LSP-based development environments.

What happens next?

We aren’t able to start using it just yet, as the current release of Swift ships with a version of Clang that’s too old to grok our existing C++ codebase. But when Swift 6 comes out of beta this fall, we will begin using it!

No language is perfect, and there are a lot of things here that we don’t know yet. I’m not aware of anyone doing browser engine stuff in Swift before, so we’ll probably end up with feedback for the Swift team as well.

I’m super excited about this! We must steer Ladybird towards memory safety, and the first step is selecting a successor language that we can begin adopting very soon. 🤓🐞

  • monobot@lemmy.ml
    link
    fedilink
    arrow-up
    32
    arrow-down
    3
    ·
    3 months ago

    I never understand hate ladybird and SymphonyOS is getting in fediverse.

    People are doing interesting work against all odds, everyone ever just saying “it is not possible”, finding some random comments from project founder to hate.

    But you know what? You and your opinion is not important. People are not doing this to make Linux competitor or Mozzila competitor but to have fun and learn something new.

    I also don’t want apple near it, but Andreas learned browser development on Safari and with looking for “popular enought” memory safe language it is rust vs swift and just by looking at the code becomes obvious how easier Swift is to pick up. Especially for someone comming from C++.

    Haters gonna hate, I wish them luck. Failing is ok too.

    • fine_sandy_bottom@lemmy.federate.cc
      link
      fedilink
      arrow-up
      13
      ·
      3 months ago

      I don’t think hate is the right word. Vitriol maybe.

      I don’t hate the project or the devs.

      It’s just that when someone suggests this might one day be a competitive browser engine, everyone feels obligated to point out, sometimes a little too emphatically, the many challenges the project must overcome.

      Perhaps part of it is borne of frustrations around mozilla. They’re our last best chance, and yet we’re all very frustrated at their constant mismanagement and errors of judgement. The suggestion that several people can build an independent competitor in their spare time is… unbearable.

      With all that said, if they ever achieve anything approaching Firefox’s compatibility and reliability, I will be their most ardent supporter. Until then I’ll be here in these threads calling idiots naive.

    • mke@lemmy.world
      link
      fedilink
      arrow-up
      6
      ·
      edit-2
      3 months ago

      everyone ever just saying “it is not possible”,

      I’ve definitely seen people saying they’ll fail, with no arguments to back that up, and I stand with you against that kind of baseless speculation. But it’s worth noting there are many folks bringing up thought-out technical disagreements with the project’s decisions. Some may be more opinionated than others, but that’s life.

      finding some random comments from project founder to hate.

      If you’re referring to what I think you are, that’s not it. People aren’t chasing after random comments because they want to throw shit at Ladybird. It’s called criticism. Criticism, if valid, is not the same as hate, and portraying people who bring up Andreas’ actions—possibly those of most important person in the project—as one-dimensional haters is disingenuous.

      But you know what? You and your opinion is not important. People are not doing this to make Linux competitor or Mozzila competitor but to have fun and learn something new.

      But they’re not? Ladybird has a fully-fledged US 501©(3) non-profit with clear ideals, a roadmap and even sponsors that have pledged over one million USD in funding combined (see Chris Wanstrath’s post).

      Haters gonna hate, I wish them luck. Failing is ok too.

      Yes, that’s true. Please don’t disregard people offering valid criticism, though.

    • ripcord@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      3 months ago

      People are not doing this to make Linux competitor

      Right, they’re not trying to build a Linux competitor by building an Ubuntu Linux fork :)

      Edit: Oh, you probably meant SerenityOS and not SymphonyOS

    • hector@sh.itjust.works
      link
      fedilink
      arrow-up
      1
      ·
      3 months ago

      I’d love to be able to use Swift so I’m excited to what they’re going to bring to the ecosystem! Would be cool if there’s a place to contribute when Swift 6 comes out :))