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. 🤓🐞
Really feels like a mistake. No major language exists without a major benefactor supporting it, and Swift’s only benefactor has zero interest in cross platform anything.
Good luck 5 years from now when cross platform Swift has gone the way of cross platform Safari.
Actually, this isn’t true. Apple has a vested interest in cross platform Swift. They’ve been pushing hard for Swift on Linux because they want Swift to run on servers, and they’re right to. Look at how hard JavaScript dominates on the server-side because of one language everywhere.
Swift is a fast, modern, and safe language for iOS, macOS, and other Apple platforms.
That same page lists cross-platform CLI and server as intended use cases.
So the Ladybird browser will have no trouble running on Linux servers? Great! Now how about platforms where people use web browsers? i.e. Android, and Windows… Apple has no vested interest in cross platform support to platforms that matter for a web browser.
Swift already works on Android and Windows. The support for Windows is improving and on the way to being official instead of questionable. The Browser Company is already building their app on Windows with Swift.
Swift’s governance has had some bumps in the past but is improving. Apple does have a vested interest in Swift adoption outside of their platforms. The more popular it is in general, the better the community and ecosystem get.
It is compiled with LLVM and Clang. Where is the danger of losing cross-platform compatibility? It will be fine.
Also, Safari on Windows had low usage, and was probably a pain to maintain. Swift cross platform is more about abstracting out Apple specific things (like the standard library and UI toolkit). Apple has already been investing multi-year efforts into Swift on the server for longer than Safari on Windows existed. The last couple versions of Swift (~3-4years of development) have been almost entirely focused on safe concurrency, which is intended for server-side development.
Also, Safari on Windows had low usage, and was probably a pain to maintain.
I’m 90% sure the entire reason was that it would force all web developers who wanted to target iOS to buy Macs since that’s the only place you could then test against Safari / Webkit.
Apple has already been investing multi-year efforts into Swift on the server for longer than Safari on Windows existed. The last couple versions of Swift (~3-4years of development) have been almost entirely focused on safe concurrency, which is intended for server-side development.
That doesn’t mean they’ve invested anything in getting it running on consumer operating systems.
Well that was a bad idea. I don’t test nothing for Safari and the bugs it causes on my app are always a pain in the ass for users. Gotta make them regret their choice
This seems like such a poor choice if you want a cross platform browser.
Not necessarily. The language itself is implemented on LLVM and compiles to a variety of backends, and can interoperate with C and C++ (including presenting C++ classes and STL types in its type system). Toolchains exist for Windows and Linux, as well as Apple platforms, and porting them to other POSIX-like OSes shouldn’t be too hard. The core of the language and its Foundation runtime library are open-source and cross-platform; it’s only macOS/iOS APIs and higher-level frameworks built on them like SwiftUI which are proprietary. Swift is in use on non-Apple platforms: there’s the Kitura web framework, which gets deployed mostly on Linux, and someone has recently used it to write games for the PlayDate handheld console.
In general, I can’t fault his rationale there. Swift has more modern language features (such as an expressive type system) than Go, is not quite as fiddly as Rust, isn’t a trainwreck of incompatible levels of abstraction like C++, and has developer momentum behind it unlike Dart.
Reading that really makes me want to give it a go. If swift’s package management is anything like Rust or Go, I could see myself enjoying it
As of a few years ago, Swift has a package management system named, creatively enough, Swift Package Manager, which can install and build dependencies. It uses Git repository links rather than a central Cargo-style package database, though.
I’ve worked with Swift a bunch for Apple platforms, am mildly familiar with how it works on other platforms. It should be able to compile on a wide host of platforms with minimal/no issues. The runtime dependencies are localized to Apple platforms, and I think the dominant UI toolkit on other platforms is a Swift port of qt. So it should be just fine?
Probably to be a cross platform wide-adopted browser is not the goal, and the author hopes to find a niche userbase amongst conservative macOS users to feed his narcissism.
What?
I mean this sincerely, I’ve been loosely following this project and the OS it is from and would like to know more about what you know, because this is the first time I’ve heard such accusations.
It’s a reference to this: https://github.com/SerenityOS/serenity/pull/6814#issuecomment-830793992
They have a phobia of making changes that are valid if they perceive the change to be motivated by politics. In the example above, the PR is denied because they have been convinced that the PR is about accommodating trans people. The existence of trans people and accommodating them via grammar is political for certain kinds of conservatives. The irony is that their own political beliefs are affecting their ability to distinguish a valid change from a politically-motivated one.
Hey Ladybird — get off Xitter and use something else like Mastadon.
Weird fascist tech bro likes weird fascist tech bro platform
Weird fascist tech bro
What the hell are you talking about? I have been following Andreas for few years already and in no way he is fascist, in fact he is one of the most wholesome people around that I know of.
Your comment convinced me to finally take a look at his profile and see what the fuss is about.
I didn’t see anything that’d make me scream fascism, either.
But there’s definitely stuff that’s off. Things that, in isolation, would be one thing, but when you analyze them all together, it wouldn’t be weird to say there’s a pattern. A picture starts to form, and it’s one that I’ve sadly seen many times before.
So I went back and grabbed a few tweets:
- Andreas’ take on… political leanings of contributors?
- Spoiler: he thinks the left doesn’t contribute, apparently, and I have no idea how he measured lurkers.
- Andreas is, according to himself, something like a centrist?
- What does he consider a “purity test” from either side?
- See this measurement of his political leanings. Rest assured, he shared it in jest.
- Did you know the internet makes fun of these tests because it only takes a few progressive choices to throw you so far left, you’d think only through decidedly unwholesome picks it’d be possible to hit the right side?
- Andreas believes Twitter is full of positive energy.
- I thought this was funny, because everyone I know—especially Twitter users—claim it’s become a far-right infested cesspit.
- Andreas’ neutral take and isolated opinion on pronouns in the office
- The most liked reply: “[…] a red flag indicating that it is a woke workplace. […]” Many such followers. This is his bubble. Very positive.
- Andreas’ reaction to someone who didn’t like what they saw in a GH issue.
- Multiple times now, when this issue was mentioned, I’ve seen people bring up how old it is. The age is irrelevant if he clearly still thinks the same. I stand by Lea’s arguments here, and seeing him double down and fail to understand the problem is worrying.
I barely had to scroll to find these, they’re all recent. There’s much more.
Individually, you could dismiss everything. It’s just humor. He’s neutral. Objective. Wholesome. But then, why does he keep hitting the same keys? You’d assume a wholesome centrist would have a little more variety in their stand-up routine.
You know what he reminds me of, after reading so many of his tweets?
People who dress up in a veneer of positivity, but you ask them what they think is negative, and they’ll say things like raising awareness of LGBT issues. Not in those words, of course, because that’s not positive. When they talk about it, they’ll put on this show about how they don’t take sides, and how they’re simply worried about the technical discussion, the actually important stuff, you know? They simply don’t like unhelpful noise, things like trying to foster an inclusive community.
It’s easy to seem like a positive figure when you never properly acknowledge any criticism. Position yourself as a factual, neutral voice of objectivity, even when that’s literally impossible. Present those who disagree as non-contributing, unproductive, negative noise-makers. Say you agree with people on topics they care about, but then turn around and tell them they’re all doing it wrong. Cover it all up in emoji and a “Let’s do it together!” attitude, but reject anyone who reaches out with the wrong greeting.
And there you have it, Andreas reads like a man who’s either lying to himself or to others, and I don’t know which is worse.
I went into this thinking, “I have to avoid baselessly criticizing people. There’s surely nuance to this man’s real beliefs, people on the internet are too quick to attack without evidence.” Which is why I’m honestly surprised to say that I came out with a mildly worse opinion of Andreas than when I started. What the hell.
I sincerely hope he can reflect on his behavior and grow out of this strange mindset. Andreas seems to be a great software developer and Ladybird can be an enormous boon for the web, so it hurts to see him acting this way.
Again, I genuinely don’t think he’s on Twitter because he’s a “weird fascist tech bro” who likes a fascist platform (what is even meant by weird?). I find it more probable that he’s comfortable there, realizes that it’s not going anywhere, that it remains the most popular platform, and therefore doesn’t think Mastodon is worth the effort.
Why he’s so comfortable there and doesn’t like Mastodon is worth considering, though.
This is literally the text from one of the links above that assert that Andreas is a fascist:
“I’m doing my best to build something I believe in, and everyone is welcome to participate as long as we can set our differences aside. ”
I cannot imagine how lopsided your world-view needs to be to interpret this kind of neutrality as “fascist”.
The only conclusion that I can draw is that some people are so polarized ( black and white ) that they can only interpret people that are not “with” them as “against” them.
And to clarify “with” above means “shares my extreme views and expectations”.
If that is true, it is tragically sad.
- Andreas’ take on… political leanings of contributors?
Lol, the person who wrote this is delusional. This shit have been already debunked, and if I remember correctly Andreas himself said that he might have handled the situation differently, but in the end he did a good thing and suppressed malicious person with theirs political agenda doing nothing to make an actual contribution, but instead focusing on very minor language issue.
These kind of people are causing no more than a trouble in open source community trying to force people into thinking there are problems that need fixing when in reality they do not exist, just to boost their ago or who knows what (I certainly don’t).
And come one “a fascist”? “a nazi”? Do people not know the meaning of these words anymore? He have never said anything regarding being pro or anti any identity (sexual or not), let alone bashing anybody for that matter. And even if he did, it doesnt’t make him a Nazi, but probably “just a misogynist and transphobe”.
And in fact why would saying “he” instead of anything else mean that someone is far-right in the first place? Or in fact what does it have to do with transexuality?
I must say as a person with mostly left-aligned views, some people on the left are living in some alternative or made up reality, because things they say have little to no logic. Or it’s just a nonsense made up only for the purpose of having excuse for hate. I don’t know exactly but this needs to stop. For greater good.
Having read all the context and the “debunking,” no, I don’t think that person is delusional. I think they’re just more sensative to how certain patterns of actions can be hurtful to marginalized groups than awesomekling is, and that awesomekling has showed a consistent pattern of associating with, and empowering, bad folks, and for not taking it seriously when people say “associating with bad folks makes the project less inclusive, and makes people less willing to contribute.” The justification he provides basically boils down to “Well you don’t contribute so I don’t have to listen to” when part of why people aren’t contributing is that they make first contributions and he offhandedly dismisses them. It’s interesting to me that “trans people exist” is a political agenda but “we refuse to acknowlege your pronouns and will change them with moderator powers on our discord” isn’t.
I disagree that people trying to make the language of technology more inclusive are doing nothing but causing trouble. They’re trying to make our communities more open to more contributors, and by slamming the doors in their faces we prevent them from continuing forward. And here’s the thing: I’ve seen this play out before. Really big, really successful, projects see consistent long term contributions and develop and grow over time. Projects that are harmful to marginalized groups get niche appeal but not mass adoption. Also whether or not he supports right-wing politics, I find it hard to take it seriously that someone who’s so “wholesome” is “just” a misogynist or a transphobe. Those are serious allegations, and ones that I haven’t seen well addressed, and ones I don’t care to associate myself with until awesomekling shows up and puts in the work to make it clear marginalized people are welcome working on his codebase. As of right now? It seems he’s perfectly willing to accept money and code from people who show consistent patterns of abuse.
As a left-aligned person, myself, I ALSO think we need to stop excusing hate, but I think that looks somewhat different.
Programming language: Swift - owned by big corp
Source forge: Github - owned by big corp
Communication channels:- Xitter - owned by big corp
- Discord - proprietary and non-searchable
👌
For comparison, Mozilla is on Twitter as well, but they’re also on mastodon and even went as far as deciding to host their own instance.
Swift was developed by a lot of former C++ committee members, and in C++ circles they’ve been advocating for it as a “successor language” for quite some time.
This could definitely be confusing if you don’t have that context, but making Swift useful for this kind of project has been an explicit goal of the Swift developers for years.
How have they been advocating that? This is the first I’m hearing about any of this…
Through talks at C++ conferences and appearances on C++ podcasts:
https://youtu.be/lgivCGdmFrw?feature=shared
https://podcasts.apple.com/us/podcast/cppcast/id968703120?i=1000663536368
Is Swift really safe?
Now THAT was unexpected.
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.
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.
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 :))
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
I know some folks think this is annoying, but once again, note that if you’re the kind of user who shuns Brave because the CEO does stupid shit every once in a while, you’ll probably not look fondly upon Ladybird’s project lead and main developer being scared of pronouns.
See this issue on github.
If you don’t care about that, it’s an interesting project. Can’t say I approve, though.
Posting this to inform people and let each one decide what to do on their own. Don’t harass anyone, please.
My idiology diverges significantly from the lemmy devs, but here we are.
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.
Edit: I’m worried that I might’ve been rude in my first 2 paragraphs. Sorry if it came across that way. To clear things up: I’m genuinely asking what’s the idea behind your comment, because I could see it being several things and I don’t want to have to answer all of them, or risk answering the wrong one.
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?
I got that, but what point were you trying to make, exactly?
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 so I would answer them differently.
Not everyone thinks it is unnecessary or impossible to not bring up/separate Andreas’ views from the project.
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.
I don’t think I’m really making any of those points in isolation, but I think probably the first.
Well, I’m off to a great start! Ha ha… This is why I ask. I assumed you’d bring up at least two, but if I couldn’t even get that right, then I clearly wasn’t reading your comment in the intended spirit. I was confident there was more to it.
For what it’s worth, I completely agree with you on the following, (sadly) down to the Teams mention:
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.
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.
The only thing I’m unsure about is this:
The views of devs are relevant to my decision whether or not to use whatever software, but they’re not solely determinant.
I believe it strongly depends on which views we’re talking about. The problem is that while certain disagreements can be harmlessly put aside, and you may even work together with these people, at some point you’ll find views that are harmful themselves. Maybe they don’t hurt you directly, but they can hurt others.
Using software and engaging in communities of developers with harmful views means platforming those views, even when you disagree. You’re telling developers, “It’s fine to hurt others if you’re good at writing software.” You’re telling people it’s okay for them to hurt others too, because if respected devs are allowed to, then why shouldn’t they?
For a rather extreme example, Hyprland’s project lead is on record saying he could be swayed on genocide. Mind you, this is not the only issue with the project. Vaxry has been banned from the freedesktop mailing list, because they’re not interested in platforming toxicity. Many people have ditched Hyprland altogether.
I’m not blaming unaware users, it happens! The problem is when you become aware of an issue, and you don’t speak out, don’t take any action, don’t support the ones being hurt. I’m not telling anyone to do all of those, but too many don’t do a single one and are seemingly against others putting in the work.
Look at the downvotes on my top comment: why should an attempt at informing people have its visibility lowered? They were not as kind as you to reply. Not claiming you downvoted me—nor would I mind if you did—but a -1 is hardly useful feedback, here.
If I knew the full extent of Lemmy devs’ views from the start, I’m not sure whether I’d be here. For most projects, once you’re in, it’s harder to leave than it would’ve been to avoid. The cost of switching isn’t a shackle, but it’s certainly a deterrent. This is why I try to be careful about which projects I allow myself to support.
Point being, some views are absolutely solely determining factors in me not using the software.
And again, Lemmy and Ladybird aren’t comparable in this discussion due to the fundamentally different nature of the projects and the ways in which people interact with them. I’m willing to elaborate on this, if anyone actually wants that, but this comment is long enough already.
https://lemmy.ml/post/19080982/12955657
I feel like Linus has said much worse things, without much remorse (the attacks didn’t stop after he apologized), for many many years, but I have never seen anyone boycott Linux solely because of his attitude…
I think most people do not consider the Ladybird drama to be a big deal, it seems only a small vocal minority really care about it.
What do you want me to read here? I see three comments unrelated to anything I said.
I feel like Linus has said much worse things, without much remorse (the attacks didn’t stop after he apologized), for many many years,
Linus had a problem with criticizing people’s work respectfully. Rather, he’d straight up insult people, with little to no useful feedback, and people very much complained about it. Maintainers complained. It got to the point that he, thankfully, committed to taking a break from the kernel to work on improving himself. It wasn’t just an apology. He has since gotten much better. When he regresses, it’s entirely fair to criticize it.
but I have never seen anyone boycott Linux solely because of his attitude…
Then you’ll be happy to discover that many people working on Linux were quite public about their disapproval of Linus’ behavior back then. With him, with others, it was their complaints that got him to change.
I think most people do not consider the Ladybird drama to be a big deal, it seems only a small vocal minority really care about it.
Maybe. But it’s not about the size of the group, it’s about the complaints themselves. We don’t decide whether something is an issue worth caring about based on how many people think so. That’d be horrible. Racism was once the issue of a vocal minority; thank goodness people didn’t shut up about it and more eventually listened.
Andreas’ behavior reflects poorly on the project as a whole and ought to change. It pushes away folks who could be part of the community and helping the project, be it as users, developers or financial supporters. My comments aren’t intended to incentivize boycotting Ladybird because I don’t like the man, they’re meant to raise awareness of a serious issue in the hopes that, one day, perhaps he’ll grow up like Linus did.
I’d never mention this out of the blue, but since you brought up Linus, here’s my useless fun opinion. I’d bet money that Andreas’ takes on inclusivity wouldn’t be appreciated by Linus, because the man’s one deranged step away from calling pronouns woke.
That project doesn’t deserve the hype.
I mean it has fuck all hype except the tiniest nichey audiences, so I guess that worked out.
If he think swift is the way to go, good for him. The code before swift is still open source, so interested user can fork it. What is there to hate?
It is his project and I’m not going to create an issue on github lambasting him, but I do have an opinion. He’s clearly not an idiot, it just isn’t a decision I agree with 🤷♂
Disagreement != hate. Life isn’t made up of extremes.
Apple, I suppose. And the lower performance compared to C++ from what I have seen
Interesting choice, let’s see how it goes
I say this as a Swift developer (and Obj-C before that), who’s built apps on Apple platforms for 20 years. I love the language and I love developing for Mac and iOS. But why would you reach for Swift for a cross platform browser? The support on Windows and Android is in its infancy, and it’s not a widely known or used language in the context of system programming. I’d never write a mobile app in any other language, but I’d never write a browser engine in this one.
The benchmarks I have looked at for Swift seem to show it being quite slow often, anyone who uses it for lower-level/systems stuff have some input?
https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/swift-gpp.html
With performance (and arguing over it) being a very big issue on modern browsers, I would be worried if it’s really this bad for general web browsing.
Rest in piss, Links2 it is. Maybe netsurf can complete their js engine in 3 billion years.
Going for the Arc route, interesting.
They probably wanted to use Rust but got frustrated by its struct and impl paradigm.
and the community not being transphobic