Swift is well-suited for creating user interfaces thanks to the clean syntax, static typing, and special features making code easier to write.
Result builders, combined with Swift’s closure expression syntax, can significantly enhance code readability.
I’ve said it countless times, and I’ll say it again:
Things on the Linux GUI land are so messed up that we even got this. Well, at least with Swift and Adwaita for Swift we may get to something closer to stable, long term APIs and useful documentation…
If you looked at the original github link, you’ll see that it has
libadwaita
(and naturally, gtk4) as a dependency.This isn’t fragmenting anything, and
adwaita
already has good documentation. This is just another binding for another language, not a whole new implementation.I never said it was fragmentation, I simply implied that the fact that someone is writing bindings for a language that while open is mostly apple centered says a lot about the lack of a decent development framework.
I mean it’s a student project. It literally could be “I think Swift is cool and I like Linux.”
And you know… They’re not wrong, Swift is a cool language, it’s just not got much adoption outside of the Apple ecosystem for whatever reason. It’s long been workable on Linux … I’m happy to see some novel work in this space.
Swift is also interesting because while it’s general purpose, UI design was always in mind for Swift. That’s different from C or C++ which are the basis of GTK and Qt the predominant UI frameworks used for the Linux desktop currently (Rust might enter that conversation more seriously with Iced and System76’s COSMIC).
You’re also right that there are options … but there are also options in the Windows world. Everybody isn’t using what Microsoft uses and even Microsoft doesn’t use the same UI toolkit everywhere.
I don’t disagree with you. I believe I wasn’t very clear about my view.
Swift is great yes, a very decent language and as you said also made to take UIs into consideration and I’ve nothing against it. Now, when people do projects like this it usually comes from a place of need, of not being very happy with the current toolset and/or the belief that something could be made better. This project, besides being a student project, must have some roots into that as well.
I’m happy there are Swift bindings available but it really just proves what I said earlier - people feel the need to experiment with other things because their current Qt toolset might not be enough or provide a great experience.
Yes… but we all know there’s a LOT more fragmentation in the Linux space. Qt is probably the most cohesive and ecosystem-like way to develop desktop Linux applications but once again it’s not like what we have on Apple and Microsoft. Both of those companies provide at least one complete development ecosystem that is very tightly integrated with their systems and one can pick up learn and be very productive with it and unfortunately under Linux we things a bit more scattered around.
I don’t understand what you mean by this. This project is using a library provided by a major DE, if anything this shows the opposite of your point.
Both GNOME and KDE have a text editor that supports LSP’s and plugins, similar to VS Code. I also don’t know anybody who still uses Visual Studio or Xcode, outside a specific situations where they’re needed, which isn’t a positive in my book.
Linux has XDG Desktop Portals, protocols that all DEs and compositors can implement and can be used by any app.
Have you tried developing a GUI app for Windows in the last 5 years? All the official first-party frameworks are either mostly deprecated (WPF, WinForms), or half-baked and despised by every developer I’ve talked to about them (MAUI).
Well WinUI is supposed to fix the mess caused by UWP and later on UWP that came from the Windows 8 era… WinUI is decent, at least it isn’t lacking major features like the other two.
.NET MAUI is a very different thing… it’s a cross-platform framework for creating native mobile and desktop apps with C# and XAML. It’s like Qt and obviously when we’re talking about developing apps for Windows, Linux, macOS, Android and iOS with a single frameworks things are bound to be harder.