-
18 votes
-
The Stallman report
38 votes -
Big changes are coming to ArchiveBox!
10 votes -
Announcing FLOSS/fund: $1M per year for free and open source projects
18 votes -
Ladybird chooses Swift as its successor language to C++
I've copied the full tweet below (it's from August, I missed this news somehow): We've been evaluating a number of C++ successor languages for @ladybirdbrowser , and the one best suited to our...
I've copied the full tweet below (it's from August, I missed this news somehow):
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. 🤓🐞
Nitter link:
https://nitter.poast.org/awesomekling/status/1822236888188498031
Original post:
https://x.com/awesomekling/status/1822236888188498031
Some of Kling's replies in that thread are also pretty interesting:
My general thoughts on Rust:
- Excellent for short-lived programs that transform input A to output B
- Clunky for long-lived programs that maintain large complex object graphs
- Really impressive ecosystem
- Toxic communityIn the end it came down to Swift vs Rust, and Swift is strictly better in OO support and C++ interop.
The September monthly report for Ladybird released the day after I posted this. It provides basically the same information:
This Month in Ladybird September 2024
The section about Swift:
Successor language search progress
Over the past year, our core contributors have been exploring potential safe languages to complement or succeed C++. We evaluated several options, including Rust, Swift, Fil-C, and others. While some languages offered compelling features, many fell short in either C++ interoperability or providing the level of memory safety we needed.
After extensive testing and discussion, Swift emerged as the top choice among our core developers, thanks to the new Swift 6 interoperability features and its growing cross-platform support. As a result, we’ve decided to adopt Swift as our C++ successor language.
That said, this will be an incremental shift. The existing C++ codebase is deeply embedded in the project, and a complete rewrite would be impractical. Instead, we’ll be gradually introducing new components in Swift, carefully integrating them with our existing C++ code over time. Look forward to a dedicated blog post on the topic soon.
32 votes -
Open source is neither a community nor a democracy
27 votes -
Zerowriter Ink
23 votes -
Announcing the SDL 3.1.3 stable ABI preview!
6 votes -
Mozilla grants Ente $100k
31 votes -
Time as a grid
20 votes -
Arch Linux and Valve collaboration
49 votes -
Things learned serving on the board of the Python Software Foundation
24 votes -
wordfreq will no longer be updated partly due to AI polluting the data
74 votes -
Valkey 8 sets a new bar for open-source in-memory NoSQL data storage
12 votes -
Haiku beta 5 release notes
18 votes -
The first release candidate of FreeCAD 1.0 is out
27 votes -
KDE Akademy 2024 - The Akademy of many changes
6 votes -
Seek and you shall find — A list of recent updates that make Ready Player a better media player and manager for Emacs
6 votes -
Radicle 1.0 — An open source, peer-to-peer code collaboration stack built on Git
6 votes -
Firefox will consider a Rust implementation of JPEG-XL
21 votes -
Grokking KOReader
25 votes -
Emacs Writing Studio — A comprehensive guide for writers seeking to streamline their workflow using Emacs
8 votes -
Living in times of technical feudalism
6 votes -
Poke_Transporter_GB: A Pokémon Generation I/II to Generation III transfer tool
19 votes -
The Open Source Hardware Association needs your help
15 votes -
OpenBSD has reached OpenBSD of Theseus
22 votes -
What is a software you wish existed?
I've been feeling pretty bored for a while and my job isn't really giving something fulfilling to do, So I want to make something. However, I don't want to make something useless. unfortunately, I...
I've been feeling pretty bored for a while and my job isn't really giving something fulfilling to do, So I want to make something.
However, I don't want to make something useless. unfortunately, I can't think of any software I'm in a particular need for. I would love to make something that solves a real problem for a real human.
So, please tell me, what's something that you wish existed because it would reduce suffering in your life that little (or big) bit?
Edit: Wow wow and wow, I didn't expect this thread that I made on a whim to blow up so much. So many idead!
69 votes -
Cyberpunk 2077 breach protocol autosolver
14 votes -
Forgejo is now copyleft, just like Git
20 votes -
Behold, Diablo is fully playable in your browser
34 votes -
Sustainability of FOSS: The Next Generation Internet ecosystem
14 votes -
Godot 4.3 release - A shared effort
48 votes -
5etools repository taken down after DMCA request by Wizards of the Coast
42 votes -
10 years of Dear ImGui
15 votes -
KIO Thumbnailer Support
2 votes -
Cables — interactive visuals, made from cable salad
11 votes -
So you want to compete with or replace open source
26 votes -
FOSS funding vanishes from EU's 2025 Horizon program plans. Elimination of most Next Generation Internet funding 'incomprehensible,' says OW2 CEO Pierre-Yves Gibello.
28 votes -
The best robot vacuum for me is the one I hacked
32 votes -
Announcing the Ladybird Browser Initiative
54 votes -
Thirty years later, FreeDOS is still keeping the dream of the command prompt alive
18 votes -
FreeDOS open-source text-based OS turns 30, still in active development and primarily used for retro gaming
13 votes -
What is self hosted? What is a stack?
7 votes -
The day AppGet died
40 votes -
Polyfill supply chain attack hits 100K+ sites
45 votes -
Steam Superheater: Fix old and broken Steam games with a couple of clicks
22 votes -
Minimalist Android launcher recommendations
Currently, I'm using the Aero launcher, and I really like having all the names of my apps listed out, but if I could have something with a to do list and then swipe for apps, it would be kind of...
Currently, I'm using the Aero launcher, and I really like having all the names of my apps listed out, but if I could have something with a to do list and then swipe for apps, it would be kind of neat.
Other wish list functions:
- Folders for Apps.
- Able to add PWA or a URL to a list of apps.
- Start a search from searching through all apps.
- Corner widgets/shortcuts
- A pony!
Willing to poke around if there is an open source project I can add stuff too.
24 votes -
“It can’t be that easy, right?” (a Linux desktop environment appreciation post)
I daily drive Pop!_OS, which uses the GNOME desktop environment. I know that DEs are a hotly contested space among Linux users, and my use of GNOME wasn’t so much a choice as it was a default:...
I daily drive Pop!_OS, which uses the GNOME desktop environment. I know that DEs are a hotly contested space among Linux users, and my use of GNOME wasn’t so much a choice as it was a default: it’s what came with my distro.
I like GNOME. I don’t really understand the hate it often gets, but I also don’t really have the legacy understanding of Linux that a lot of people do, and it seems like a lot of distaste lies there. I’m as casual a user as they come — Linux for me is like a Chromebook: it “just works” in that I pretty much need it to get me online and manage some documents. (I do also play games on it, for which Steam and Proton have been a huge boon.)
I also have a Steam Deck, and it uses KDE’s Plasma on the desktop side, so I got to see what that was like. I also like KDE. It’s very different from GNOME, but I can see the appeal. It feels more like Windows but also has a lot of little nice touches and additions. Also, no ads.
This got me thinking: what if I tried using KDE instead of GNOME on my laptop?
I assumed that this would be a big deal. Like, I would have to completely gut my distribution, or reinstall it fresh. Multiple hours of work. Lots of preparation. Looking up myriad terminal commands I don’t understand and hoping they do what they’re supposed to, because if they don’t I’m really screwed — as soon as something goes wrong “under the hood” I’m dead in the water when it comes to fixing it.
But I was looking on System76’s support site and they made it seem super simple. A single terminal command to install the whole DE?
It can’t be that easy, right?
I am astonished to say that it WAS.
I ran the command, had to select between
gdm3andsddm(a choice which I didn’t understand at all so I searched around a bit before just going with the default: gdm3), and then rebooted.I can now select between GNOME and KDE on the login screen, and both work flawlessly. It was so easy.
I don’t know who to credit for this. Did System76 do a great job of making this easy on their distro? Did the KDE team work hard to make their DE effortlessly plug-and-play? Is this just a general product of the way Linux handles its different components?
I don’t know but I’m willing to spread the love around to anyone and everyone who contributes to Linux and all of its facets. It’s wild to me that I can so easily reskin my entire operating system in the same way that I used to do with Winamp back in the day. I keep waiting for something to go wrong, but after a few days of this, I’ve realized that everything still “just works,” automagically.
A big thanks here to anyone who has a hand in open-source software and making computing better for people like me, who have (mostly) no idea what they’re doing.
56 votes -
New AI project aims to mimic the human neocortex: The Thousand Brains Project offers a fundamentally different approach to AI
19 votes -
ArcFox, an opensource project to make Firefox flow like Arc browser
33 votes