this post was submitted on 28 Mar 2024
51 points (93.2% liked)

Programming

17364 readers
250 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 1 year ago
MODERATORS
top 13 comments
sorted by: hot top controversial new old
[–] [email protected] 0 points 7 months ago
[–] [email protected] 0 points 7 months ago (2 children)

What if I'm writing for kde?

[–] [email protected] 1 points 7 months ago

Exactly my question.

[–] [email protected] 1 points 7 months ago (1 children)

Then you already have a cross platform GUI Lib called QT, that said: good luck.

[–] [email protected] 1 points 7 months ago* (last edited 7 months ago)

Are you suggesting that GTK is an inferior, not cross-platform toolkit? I'll have you know that GTK runs just fine on BSD (and maybe other things from Redmond), you uncultured swine!

[–] [email protected] 6 points 7 months ago (3 children)

I've said it countless times, and I'll say it again:

Half of the success of Windows and macOS is the fact that they provide solid and stable APIs and development tools that “make it easy” to develop for those platforms and Linux is very bad at that. The major pieces of Linux are constantly and ever changing requiring large and frequent re-works of apps. There aren’t distribution “sponsored” IDEs (like Visual Studio or Xcode), userland API documentation, frameworks etc.;

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...

[–] [email protected] 4 points 7 months ago* (last edited 6 months ago) (1 children)

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).

[–] [email protected] 1 points 7 months ago

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.

[–] [email protected] 14 points 7 months ago* (last edited 7 months ago)

Things on the Linux GUI land are so messed up that we even got this.

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.

There aren’t distribution “sponsored” IDEs (like Visual Studio or Xcode)

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.

userland API documentation

Linux has XDG Desktop Portals, protocols that all DEs and compositors can implement and can be used by any app.

[–] [email protected] 16 points 7 months ago (1 children)

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.

[–] [email protected] 2 points 7 months ago (1 children)

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.

[–] [email protected] 3 points 7 months ago (1 children)

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.

[–] [email protected] 1 points 7 months ago

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.

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.

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.