I would have preferred Rust, a language created by Mozilla instead of one with ties to Apple, but I’m not a dev so I can’t really judge. What are your thoughts?
Rust was made by Mozilla? TIL
Yep. It was developed to improve parallelization and security of Firefox. Many core parts of Firefox have been replaced with Rust implementations.
I see now. Rust is the color of fox, and foxes eat crabs. It all makes sense now.
I thought it was weird such an old piece of software had so much Rust in it. I noticed all the Rust-related things while
FirefoxLibrewolf compiles but never looked into it further.
That’s weird.
An interesting choice that is. Picking something like Rust would have benefitted them with a big community of open source enthusiasts that cold help with contributions
they explained that they chose it because it is interoperable with their existing C++ code base
But Rust is rather good at that, too, via cxx. Mozilla similarly had a C++ codebase where they wanted to integrate Rust.
Granted, this is raw theory. Maybe Swift is better in practice. But yeah, to me personally, it would need to be massively better to pretty much give up on open-source contributions.
pretty much give up on open-source contributions.
You do realise that most major FOSS projects have an iOS app, right? The post I was looking at before this was for a new jellyfin app, small individual dev, has an iOS beta out. For a comparison, there are 9.1 million files on github in Swift, and 11.3 million in Rust.
As well, as far as contributions, Swift was designed from the getgo to be incredibly approachable for novices. While Rust is notorious for being unapproachable. Like I get the anti-Apple circlejerk is strong, but Swift is licensed under Apache 2.0, it’s FOSS, so this argument is kind of ridiculous. Especially considering how much of Google’s FOSS just gets a free pass.
Most FOSS projects weren’t allowed on the app store due to licencing, and although I think this has changed its also probably pushed off a lot of Foss devs.
Number of files doesn’t really mean much more than number of lines though, especially between languages
Barrier to contribute in Swift is wwwaaaaayyyy lower then Rust.
We once ported and Swift App to Kotlin by copy+pasting. It was one day of work.
Rust - imo - is overhyped. It has its niches. But to me it is not the swiss army knife. Swift has better expressiveness then Rust.
It isn’t, if you’re already familiar with Rust. That’s all I’m saying. Swift usage is largely isolated to Apple’s ecosystem, which doesn’t have a ton of overlap with the open-source ecosystem.
And I actually disagree that Rust is overhyped, because it can be used for creating libraries which can be called from virtually any other language, like you can with C and C++. Which means you’re not locked into the Rust/Apple/whatever ecosystem, but instead could be coding the next SQLite without needing to be fluent in footgun.
From what I can tell, this would theoretically be possible in Swift, but hasn’t been implemented: https://forums.swift.org/t/formalizing-cdecl/40677
But even if Rust was the most overhyped garbage, it would still be garbage that people are familiar with. ¯\_(ツ)_/¯
Thank you :/
Ladybird Browser Team Selects Swift as Preferred Language Andreas Kling announces Swift as Ladybird’s future language for better safety and ergonomics. Full transition awaits Swift 6.
ByBobby BorisovAugust 11, 2024 Ladybird Browser Team Selects Swift as Preferred Language Ladybird is a new name in the Linux ecosystem you might not be familiar with. So, let’s briefly explain what it’s all about.
It’s a web browser initiative, funded by $1 million, spearheaded by GitHub co-founder and former CEO Chris Wanstrath and tech visionary Andreas Kling. It seeks to challenge the status quo with a new browser written from scratch, completely independent of corporate interests. Our article on the subject has more on this. Now, back to the topic.
Over the past few months, Ladybird’s developers have been experimenting by rewriting different parts of the browser project in various languages. The outcome was clear: Swift emerged as the preferred choice among the team. According to Kling, the feedback favored Swift for its modern features and robust safety protocols.
Another significant advantage of Swift is its ongoing improvements in interoperability with C++. This development means Ladybird can adopt Swift gradually, without extensive rewrites, easing the transition and reducing potential integration issues.
Now, I’m sure you associate Swift with app development for Apple devices, where it’s been the go-to technology. But recently, that’s started to change.
What I mean is despite its strong associations with Apple, Swift has been making strides towards independence. It has been reorganized under a separate GitHub organization, distancing itself from Apple-specific projects.
This shift, coupled with better support for non-Apple platforms and diverse development environments, positions Swift as a more versatile and broadly applicable programming language.
Looking ahead, Ladybird plans to implement Swift once version 6 exits beta this fall. The upcoming release promises compatibility with the latest versions of Clang, essential for integrating Swift with Ladybird’s existing C++ code.
It’s worth noting that no browser engine has yet been developed using Swift, making this project particularly challenging. As things are still in the early planning stages, we shouldn’t expect to see any initial versions of the Ladybird browser this year.
A more realistic timeline suggests an early preview release could happen in 2025, though the developers have not yet committed to specific dates.
For more information, refer to Kling’s post on X.
Bobby Borisov Bobby Borisov
Bobby, an editor-in-chief at Linuxiac, is a Linux professional with over 20 years of experience. With a strong focus on Linux and open-source software, he has worked as a Senior Linux System Administrator, Software Developer, and DevOps Engineer for small and large multinational companies.
For anyone who knows more about this, how does it compare to Servo? https://servo.org/
servo is a lot further along because they’re not bothering with javascript and are just using spidermonkey. see WPT: https://staging.wpt.fyi/results/?product=servo&product=ladybird
Servo barely works right now. Ladybird somewhat works. Neither are ready for daily use.
Independent of corporate interests
.
Picks one of the few languages created due to corporate interests
This will die on the vine
That page freezes my firefox and uses a lot cpu power
Why is there so much hype around this?
Ladybird or rust?
Ladybird
The biggest part is that Chromium has all but taken over the browser space, and Google is additionally 90% or so of Firefox’s funding which likely gives them power even when it’s unspoken. That is to say that Google has way too much control over browsers to go along with their way too much control over internet traffic in general. The recent Manifest V3 thing and Mozillas “privacy preserving” ad personalization also likely have significant effects.
I agree with what you said but there is next to no chance a new browser engine from scratch will be able to challenge Blink’s dominance.
Google’s power comes from a combination of unfortunate factors. They have limitless money to support Chrome’s development. They are one of the biggest vendors of online services. They are one of the biggest drivers of new web standard adoption.
Breaking this monopoly will require regulation and enforcement, not a “tech visionary” and a GitHub co-founder playing hero.
The alternatives have to exist first before the monopoly can break. One doesn’t have to think the browser will singlehandedly change the entire browser space to be hyped about more alternatives. I am just excited to see some amount of motion in opposition to the decline into the google-net. Not that this is the only thing happening but it is an interesting one that I hope pans out.
But alternatives already exist in the form of Safari and Firefox.
Because people love Rust, even though it’s not entirely FOSS.
What are you referring to? https://www.rust-lang.org/policies/licenses and https://github.com/rust-lang/rust?tab=readme-ov-file#license seem to say otherwise…
This is what @[email protected] was talking about. Rust isn’t truly free - there’s a trademark restriction on the brand name and logo for commercial use.
See responses to that comment.
I do wonder: why not rust? It would have been amazing. A fast language on par with C++ that also is memory safe. But Swift? You gotta be kidding me…
I not entirely sure but from what I can remember Andreas Kling is seen using Mac-os in a Ladybird update video so it could be possible that it is his main operating system. Take this with a grain of salt.
Another Chromium incoming?
Oh, programming language. My brain was stuck trying to figure out if Swift is related to Swiss.
Rust would have been good in the long term but it’d take a long time to get to release.
Swift mates sense for rapid deployment.
Go would have been my choice concurrency would maybe help with lots of tabs
Tabs are typically spun into separate processes for sandboxing reasons anyway
WTF?
Swift is a fantastic language and with c++ interop out of the box it’s the obvious choice.
I would have preferred Rust, a language created by Mozilla instead of one with ties to Apple, but I’m not dev so I can’t really judge. What are your thoughts?
I don’t know anything about Swift, but people like to ignore the fact, that Rust is not entirely free, as it fails to exercise freedom 3.
tl;dr: Rust Foundation don’t want you to apply modifications to their language without “explicit approval”.
And you are also limited to share modified versions of their software.(If someone can imply, that Python and Perl have similiar restriction — they are not the same, because both of their trademarks protect usage of software against fraud, but you can freely patch and modify it.)
For me personally, seeing LadyBird not choosing Rust as their main language is very promising. Rust software is everywhere now and this is concerning.
I’ve read through your links. They don’t have much to do with the codebase itself, but with protecting the trademarks.
From what I read, you’re free to change whatever you want. You just can’t go around using their trademarked names for your modified version.
If I wanna modify and redistribute their language and use Rust or Cargo in the name I should not have to ask for an explicit permission, this is the freedom 3 problem.
This is also why I gave Python and Perl examples. I can modify both Python and Perl, calling them the same way, but I can not do the same thing with Rust.
I’ll leave their trademarks comparsion under the spoiler for those, who interested.
Spoiler
Rust:
Distributing a modified version of the Rust programming language, compiler, or the Cargo package manager with modifications other than those permitted above and calling it Rust or Cargo requires explicit, written permission from the Rust Foundation.
And Python:
Use of the word “Python” when redistributing the Python programming language as part of a freely distributed application – Allowed. If the standard version of the Python programming language is modified, this should be clearly indicated. For commercial distributions, contact the PSF for permission if your use is not covered by the nominative use rules described in the section “Uses that Never Require Approval” above.
Let’s also look at Perl:
People sometimes ask if TPF’s use of an onion in the Perl logo means that independent projects that use or relate to Perl need TPF’s permission to use an onion of their own design in connection with their project. The answer is “not necessarily” as long as no likelihood of confusion is created. One of the fundamental legal bases for trademark protection is to make sure that the public can depend on a mark as an accurate indicator of a particular source or relationship, and one way of defining trademark infringement is to say that the infringing mark creates a likelihood of confusion. Likelihood of confusion is determined based not only on making a comparison of the marks side-by-side, but also on making a comparison of the contexts in which they are actually used. Thus, it’s easy to imagine independent onions that would be fine, and independent onions that might not be.
Please read this and try again.
https://www.gnu.org/philosophy/free-sw.en.html#packaging
Rules about how to package a modified version are acceptable, if they don’t substantively limit your freedom to release modified versions, or your freedom to make and use modified versions privately. Thus, it is acceptable for the license to require that you change the name of the modified version, remove a logo, or identify your modifications as yours. As long as these requirements are not so burdensome that they effectively hamper you from releasing your changes, they are acceptable; you’re already making other changes to the program, so you won’t have trouble making a few more.
Please read this and try again.
Try again what? This is a debatable topic. I can simply refer to this line:
As long as these requirements are not so burdensome that they effectively hamper you from releasing your changes, they are acceptable;
And point out, that rebranding a whole programming language is not a piece of cake. So this is burdensome and hence is the issue for freedom.
Dude, if you’re being obtuse on purpose because you have an ax to grind against Rust, try a different approach. You’re not getting anywhere, clearly by the fact that no one agrees with you.
If you don’t like that Rust has a restricted trademark, then call that out instead of trying to label the software and it’s license as non-free. It’s literally called out in my source that name restrictions ipso facto does not violate freedom 3.
But if you genuinely believe that the implementation of the Rust language and it’s trademark is burdensome to create a fork, and you want people to believe you, then you gotta bring receipts. Remember, the benchmark that we both quoted is that it “effectively hampers you from releasing your changes”. It being “not a piece of cake” doesn’t cut it.
Hint: Google Rust forks since their existence also undermines your claim.
Good luck.
Remember, the benchmark that we both quoted is that it “effectively hampers you from releasing your changes”. It being “not a piece of cake” doesn’t cut it.
The easiest example is that you’ll have to adapt all Rust-dependant applications to the Rust fork, 'cause it is a programming language.
But still, don’t get me wrong. I’m not trying to say that Rust is a bad language or something. I’m just trying to point out on the problem, that was adressed to Rust Foundation before.
Good luck to you too.
That… is not a restriction on freedom 3. You could complain about your inability to use the rust name for anything you want but that is not the same thing as your ability to distribute modified versions of the software. It is also fairly standard practice for foss software to restrict the use of such trademarks. For example, Gnome does pretty much the same thin. FreeBSD as well. Libre Office also has similar restrictions, although they are defined more nebulously. It is not clear to me what usages are allowed with the Linux trademark but they certainly do restrict who can use it and for what and you must get permission before using it. See also, about trademarks in FOSS: https://www.lexology.com/library/detail.aspx?g=9d96e1bf-bced-48f7-b5b4-ee561e7a9348
The software is free. The trademarks are not. The four freedoms are about the software and not about trademarks. You could fork Rust and call it Corrosion, just like people have forked Firefox and called it Waterfox.
There’s a reason why software is being made with Rust now. It has the speed of C++ (sometimes faster), has a nice syntax, is memory safe by default, has the best compiler error messages and also the book is very good. I learnt entirely by the book and it’s very good at explaining things.