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. 🤓🐞

  • mke@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    1 month ago

    My idiology diverges significantly from the lemmy devs, but here we are.

    Would you be willing to elaborate on why that’s relevant here? As in, what do you mean by this?

    Because Lemmy and Ladybird are wildly different projects, tackling completely different issues, and consequently users interact with them and their developers in very different ways. To put it a little bluntly, I think that observation sounds insightful, but it’s just silly when you dig deeper. I’d rather not waste time writing entire paragraphs based on an assumption of what you meant, though.

    And I don’t know about you, but I’m keeping my eye on Sublinks. I appreciate Lemmy as a piece of software, but it doesn’t have my undying loyalty merely because I created an account on it, nor are it and its developers immune to my criticism just because I use it.

    • fine_sandy_bottom@lemmy.federate.cc
      link
      fedilink
      arrow-up
      0
      ·
      1 month ago

      I’m strongly opposed to the lemmy devs political and social views, yet I’m happily using the platform they developed.

      I’m not quite sure how I can be clearer?

      • mke@lemmy.world
        link
        fedilink
        arrow-up
        0
        ·
        edit-2
        1 month ago

        What message, exactly, or what point did you intend to communicate?

        For example, the following are possible non-exclusive interpretations to my perspective:

        • It’s possible to use Ladybird without agreeing with Andreas’ views.
        • It’s possible to use any software without agreeing with developers’ views.
        • It’s possible to use Ladybird without supporting Andreas’ views.
        • It’s possible to use any software without supporting developers’ views.
        • It’s unnecessary to bring up Andreas’ views when discussing Ladybird.
        • It’s unnecessary to bring up developers’ views when discussing any software.

        These may be similar and/or related, but are not the same, and thus I would answer them differently.

        • bombadil@programming.dev
          link
          fedilink
          arrow-up
          0
          ·
          1 month ago

          Not everyone thinks it is unnecessary or impossible to not bring up/separate Andreas’ views from the project.

        • fine_sandy_bottom@lemmy.federate.cc
          link
          fedilink
          arrow-up
          0
          ·
          1 month ago

          I don’t think I’m really making any of those points in isolation, but I think probably the first.

          It’s possible to acknowledge that I don’t agree with the views of the devs while using their software, but it does create a kind of tension that I would avoid if a viable alternative existed.

          The views of devs are relevant to my decision whether or not to use whatever software, but they’re not solely determinant.

          Similarly, I prefer open source software and will always seek it out and when comparing alternatives I heavily weight open source as an advantage. That said, I do still use some microsoft software (notably microsoft teams) for a variety of reasons.