It's so terrible that it's FLOSS-iness encouraged us to fix problems with the macOS (then OS X) and windows aspects, and contribute them back (mostly) to the project.
It's so terrible that when I meet other developers we swap stories about their chosen cross-platform GUI toolkit, and things seem to pretty much even out.
https://docs.gtk.org/gtk4/iface.Accessible.html
Look at how many widget classes are listed in the 'implementations' subsection!
Because libraries, like languages, come in two groups:
(1) Those that people complain about, and
(2) Those that nobody uses.
(A particular C implementation on a particular platform may have an ABI, and that may be stable, but that’s not a language feature.)
I get that its touchy saying that GTK4 is bad -- but I genuinely don't understand why GUI libraries like this appear to break backward compatibility SO OFTEN, with nearly zero (apparent and obvious useful) innovation?
The most obvious change to a non-technical observer is of course the new default theme, which I am rather unhappy about because they didn't back-port it to Gtk+ 3.0, so in the context of a GNOME desktop it's now half-and-half old and new theme depending on whether someone has bothered to migrate the application in question. This is slightly unfair of me though, since compared to a mixed Qt/GTK desktop or the average Electron app or even Microsoft products since Windows 8, GNOME is super consistent visually.
It REALLY doesn't make sense to me how badly, e.g. themes break between versions. Offhand, I can't think of too many "standards" that break that badly, it just makes no sense to me that GTK2, GTK3, GTK4 apps simply CANT co-exist. Like AT ALL, without severe uglification.
But its not about a GUI library, its about a wrapper for one. After all, if its “the worst” library getting wrapped, then obviously there’s a lot of easy opportunities to wrap a better library.
Its not like you have a choice to run them with a non Gtk4 UI anyway
Bottles has PlayOnLinux or Lutris. I'm not familiar enough with the Linux audio landscape to know any Easy Effects alternatives for it off the top of my head. Nobody's locked into anything or being forced into GTK4. Heck, Celluloid is just straight up a wrapper around MPV.
Might be that i also avoid flathub, but i haven't seen much use of Gtk4 in the applications i use myself.
> think they are some of the best looking apps available on Linux.
Ok, thanks for the information but i think otherwise, i dislike how Gtk4 looks. TBH i also think Gtk3 looks bad but i've got a theme for that. Perhaps i might find a decent Gtk4 theme too.
Toolkits in other languages need some C intermediate - e.g. Lazarus has a Qt backend for LCL and since Free Pascal can only use the C ABI there is a "qt5pas" library written in C++ that exposes a C API that programs must link against. This can be annoying.
[0] ignoring Win32 as that is Windows-specific... unless you consider writing against libwine but i don't think anything uses that as a toolkit
For example you need to compile the program using "winegcc", which creates a shell script that calls Wine to load the application (the application is compiled as a .so so it can use Linux libraries and calls, it isn't a Windows program). This in turn loads the full Wine server with its various services and Windows compatibility layers. And chances are you'll need to use "winemaker" to build the code (it generates a Makefile for you).
Just as a test, compiling and running a very simple "hello, world" program that calls MessageBoxA to show a message box and exits still loads a bunch of processes (checked via ps -A) and dumps a bunch of diagnostics to the terminal.
Also, IMO while Wine's GUI bits generally work, they do have a lack of polish even compared to their Windows 95 counterparts.
I bet you have fun opinions on Cocoa and WinUI too.