Like sudo that has had zero days lurking for 10 years?
I’m not advocating for reimplementing stuff for no good reason though.
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.
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.
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.
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.
For a linux phone