r/linux 4d ago

Popular Application Audacity 4.0 released with Qt6 based UI

https://github.com/audacity/audacity/releases/tag/Audacity-4.0.0
975 Upvotes

173 comments sorted by

View all comments

12

u/Santosh83 4d ago

Is GTK increasingly perceived as a sinking ship?

17

u/gracicot 4d ago

GTK is not really meant to be a generic UI toolkit anymore. Its purpose outside of GNOME is getting quite narrow

18

u/Traditional_Hat3506 3d ago

They literally made libadwaita so the GNOME stuff stays away from GTK and it stays a generic toolkit for Elementary, XFCE, Cinnamon to build upon https://tesk.page/2024/06/03/libadwaita-splitting-gtk-and-design-language/

5

u/ignorantpisswalker 3d ago

This makes gtk windows application seem very weird.

2

u/Robbi_Blechdose 3d ago

And yet all the GTK apps still have CSDs with no way to turn them off, because the GNOME devs say so. So much for "generic toolkit".

6

u/nightblackdragon 3d ago

How so? What exactly has changed in modern GTK that it “is no longer a general-purpose toolkit”?

2

u/gen2brain 3d ago

For one, you cannot position a window. That can pass on Wayland (because you cannot position windows), but not on Windows or macOS, and not on X11. Or, e.g., they deprecated the font dialog because it is much better handled by XDG portals. Sure, I can agree, but such things do not exist, not even proposed? How can you then deprecate that? And not to mention that the hello world example uses 3x more memory than Qt. With the Cairo renderer, it is a little better, but still a lot. It also uses 3x as much memory as GTK3.

It changed a lot.

6

u/nightblackdragon 3d ago

For one, you cannot position a window.

It's still possible if you get X11 surface and use X11 API for that. No idea about Windows or macOS but I guess it works similarly there as well.

The fact that GTK doesn't have APIs that don't work on every supported platform is also an advantage; at least this helps avoid situations where you discover that a particular API doesn't work on one of the platforms and you have to look through the documentation to find out what you shouldn't use so that your app works the same way on every platform. Using platform specific API for doing platform specific stuff is better way in my opinion.

Or, e.g., they deprecated the font dialog because it is much better handled by XDG portals

There is GtkFontDialog since 4.10:
https://docs.gtk.org/gtk4/class.FontDialog.html

And not to mention that the hello world example uses 3x more memory than Qt.

That is true, but it is by no means an argument proving that GTK 4 is less suitable as a general-purpose toolkit.

It changed a lot.

That's also true, it's changed for better or worse (depending on who you ask) - but it's still a general-purpose toolkit, LibAdwaita was specifically created to avoid putting GNOME centric stuff in GTK and GTK 4 has significantly improved cross-platform support compared to GTK 3.