I’m suggesting building a Rust library and exposing a C ABI. That’s what rsvg does for example.
I’m suggesting building a Rust library and exposing a C ABI. That’s what rsvg does for example.
You’re aware that Rust gives you access to the full C ABI?
What language are you going to use instead that has a better ABI story? Swift? Or maybe a dynamic language like Python?
Like sudo that has had zero days lurking for 10 years?
I’m not advocating for reimplementing stuff for no good reason though.
Zig is a very new and immature language. It won’t be kernel-ready for at l’East another 10 years.
a better syntax
That’s pretty suggestive. Rust syntax is pretty good. Postfix try
is just better for example.
Zig also uses special syntax for things like error and nullability instead of having them just be enums, making the language more complex and less flexible for no benefit.
Syntax is also not everything. Rust has extremely good error messages. Going through Zig’s learning documentation, half the error messages are unreadable because I have to scroll to see the actual error and data because it’s on the same line as the absolute path as the file were the error comes from
No hidden memory allocation
That’s a library design question, not a language question. Rust for Linux uses its own data collections that don’t perform hidden memory allocations instead of the ones from the standard library.
it’s more readable
I don’t know, Rust is one of the most readablelangueage for me.
Fast compile time
Is it still the case once you have a very large project and make use of comptime?
it’s simpler to learn
Not true. Because it doesn’t have the guardrails that rust has, you must build a mental model of where the guardrails should be so you don’t make mistakes. Arguably this is something that C maintainers already know how to do, but it’s also not something they do flawlessly from just looking at the bugs that regularly need to be fixed.
Being able to write code faster does not equate being able to write correct code faster.
Really great interop with C
Yes, because it’s basically C with some syntax sugar. Rust is a Generational change.
It is absolue in safe Rust, aka 99% of Rust code.
And now you can have it through NAT-PMP on ProtonVON
They dix not build the compositor from scratch, they built it on top of smithay, a library similar to wlroots but written in Rust.
I don’t know if you’ve actually tried to use GTK or QT, but it’s insanely painful. There is a reason almost all apps are written in Electron. Native GUI toolkits suck. If they had used GTK they would have still had an outdated and hard to maintain toolkit, and to deal with Gnome politics. Using GTK was actually the initial idea.
If we want Linux Desktop to succeed, at some point we have to build tools that people want to use. I’m glad they’re doing it.
The post specifically mentioned POIs, and as far as I have tested (in France at least), Magic Earth has the same incomplete/missing POI database as organic maps, coming from OSM.
But they don’t have more data than organic maps since they’re using OSM too.
I wasn’t thinking about applets but more about full-blown libcosmic applications.
Gnome Circle bas a lot of very simple apps that do just 1 thing and weight a couple MB each at worst.
With iced such an ecosystem would be at 20MB per app, so simple " don’t 1 thing and do it right" apps would be less scalable. And I doubt you would want to have all of gnome circle as a multicall binary.
It looks like I was right: https://github.com/pop-os/cosmic-applets/pull/282
20MB for every simple application is a lot, and multical binaries won’t be an option for third party developers.
This is still worth the much better DX of using Rust though.
If you want to do something about it: https://www.youtube.com/watch?v=w70Xc9CStoE
Is there any plan to have something similar to the Gnome Circle apps for Cosmic? It’d be nice to encourage building a full ecosystem of app with libcosmic that can rival the apps of KDE/Gnome.
This is not relevant to this specific post but does anyone know how if the static linking used in Rust is an issue with cosmic?
The last time I tried building a small app with Iced it was pretty bing (20MB) even though it didn’t do much. On the other hand a GTK app in rust easily fits within 5MB.
Anyway I’m thrilled to try cosmic out as soon as it reached the Arch repos.
Why is helix there then?
I love flatpaks and flathub. They’re amazing for GUI apps, though there are still a couple of wrinkles that needs to be ironed out.
I would really love if it was better with regards to cli apps and developer tooling though. As someone that uses a lot of TUI apps that seriously limit how much I can use flatpak.
For dôme reason it’s broken for me. I had to open it in nightly for reader mode to work.
Unreadable on mobile…
For a linux phone