3 ms·
In comparison, looks at the mess that is WinUI https://docs.microsoft.com/en-us/windows/apps/winui/winui3/create-your-first-winui3-app https://docs.microsoft.co
by Shadonototra 4y ago
In comparison, looks at the mess that is WinUI https://docs.microsoft.com/en-us/windows/apps/winui/winui3/create-your-first-winui3-app https://docs.microsoft.com/en-us/windows/apps/winui/winui3/c...
- smoldesu 4y agoWinUI, and even SwiftUI, to an extent, are pretty contrived systems for building apps. Maybe I'm crazy, but writing apps for x11/GTK3 was probably the easiest time I had writing a GUI application of any kind. I simply drafted up an XML file containing all of my UI elements, then called some functions that would wrap actual app logic around interactive components at compile-time. The result? Designing an app can be done entirely with drag-and-drop, then programmed with your language of choice. I used Rust, and my resulting binaries were pretty competitive all things considered. Unfortunately, desktop Linux development has been on a constant downhill trend for the past few years. Red Hat and GNOME have been doing their best to pull the rug out underneath most of the good development infrastructure, which is annoying to say the least. It's a crying shame, but I have no doubt that Apple will trounce whatever libadwaita nonsense is getting built by GNOME maintainers right now.
- thechao 4y agoI also found Win16/32 with "the giant switch statement" easy to program & reason about. Once you weapped your head around how to minimize the rdraw area, there wasn't much that could wrong. OTOH, it was a really tedious way to GUI.
- smoldesu 4y agoI agree with that, but I felt like the tooling surrounding it offered just enough functionality to make really nice, functional applications. The tedium was never really an issue to me since I mostly stuck to the GTK3 ethos of making small, polished and usable apps, but I could see how it would get complicated when making something more advanced. Like you said, though, it's a great entrypoint for people like me who work on servers first and write software second. Kinda like how Zenity was a nice swiss-army-knife for script kiddies who got their rocks off watching sliders go from 0-to-100. Unfortunately, it looks like GTK4 isn't quite as accessible, which is going to be really challenging for it's adoption. The regression of features was frustrating enough, but now I genuinely don't know how to write an app with the library anymore. It's insane that they'd expect me to re-write my app to fit their brand new library, especially if it might not be sticking around very long either...
- mixedCase 4y agoHave you taken a look yet at Gtk4 and libadwaita docs to form such a strong opinion? Cambalache (Glade's author's new UI builder) has only recently gained libadwaita support, but you can do exactly what you describe.
- smoldesu 4y agoI've been tracking Cambalanche's development, but I'm not really sure that I like it's development model. Glade had a really nice imperative workflow where you could procedurally add functionality to an app in a very natural and productive way. The model that Cambalanche uses closer resembles iOS app development, which I'm not very crazy about. Similarly, libadwaita proved extremely frustrating to deal with. Stripping it out of my builds was the first thing I did, but generally I just don't think GTK4 is ready for developers or users yet. There are far too many broken features at the moment, but they don't really seem to be listening to the community either. I'm going to be sticking with GTK3 for the foreseeable future (it's not like anyones ever dropping support for it lol), but I'm really hoping that GNOME can turn their development efforts around and really work with the community here. Edit: also, looks like Cambalanche isn't packaged for my distro anyways. Edit 2: I just built a more recent version and I am actually pretty impressed with how it's come along. Still not at parity, but a lot better than when I last saw it. Now, if only I didn't need Flatpak in order to watch it's development...