Andreas Kling announces Swift as Ladybird's future language for better safety and ergonomics. Full transition awaits Swift 6.
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?
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 Firefox Librewolf compiles but never looked into it further.
An interesting choice that is. Picking something like Rust would have benefitted them with a big community of open source enthusiasts that could help with contributions
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.
Take this with a pinch of salt, I'm not a programmer just a nerd that likes those kind of things. I tried them years ago first swift (I think it was in version 2) and a couple years later rust, and while both are great I found swift makes it easier to write clear code you're gonna understand and like when you come back to it.
Rust was better I think with concurrency (at the time), you'll catch everything at compile time, but they talk about interoperability with c++, so this safety will be lost since most code interfacing with c++ will be unsafe.
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.
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.
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?
(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.
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.
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.