Hacker News new | ask | show | jobs
by vrotaru 1148 days ago
Linux desktop will probably have more applications if there would have been less GTK versions.
2 comments

How come? Gtk1 is historic, Gtk2 has been obsolete for a decade, Gtk3 has been the thing since 2011 and Gtk4 is a brand-new thing, where they finally were able to make some changes that were on hold for a decade, since they would break the API. You know, semver, major version.
> How come?

The fragmentation on Linux desktop causes a lot of churn, both in users looking for more cohesive desktop experiences, and on developers looking to not having to deal with all this mess.

In regards to major backwards-incompatible version changes, to me it's pretty clear that many developers simply don't give enough priority to maintaining backwards compatibility. Most cases i've seen of backward-breaking changes were unnecessary: the new features could've been added while maintaining the existing APIs (maybe deprecating them if needed). The decisions to not maintain the existing (and now deemed "old") APIs were not done on a technical ground, but more on an ideological/purist ground, where the "old" APIs were considered "bad" or too costly to maintain (both claims totally subjective and not supported by much evidence). And simply not enough thought was put in considering how users of the APIs may find it difficult to do a major version update, or might simply churn away and not do the update or look for an alternative.

Now, i don't have direct experience with GTK, so i might be totally bullshitting and maybe nothing that i said applies to GTK major version bumps. But the fact that so many projects find it hard to update and are stuck on older versions for long times, and that the desktop UI paradigm hasn't changed that much in the last 20 years (how much MUST the APIs for windows and UI controls change then?) makes me suspect that there is at least a bit of that backwards-compatibility disregard here too.

I didn't try to codify a few little ideas I had into Linux UI apps purely because all the drama with Gnome and whatnot. I don't have time for this bullshit. Terminal apps can be written once and just work(tm). Linux GUI development has always been for people that have no life.
There was no real reason to rush the transition to GTK3, but it was done anyway.

GTK3 with its half-assed support of CSS for theming is just just bad, and slow (especially on Macs)

And they continued to change GTK3 API after 3.0, which did not exactly help

> There was no real reason to rush the transition to GTK3, but it was done anyway.

If anything, Linux libraries move too slow. Meanwhile, while seeking perfection, the world around them uses the older releases, with all the downsides it entails, so they cannot wait until it is perfect.

> GTK3 with its half-assed support of CSS for theming is just just bad, and slow (especially on Macs)

Still much faster than Cocoa on Linux... What Cocoa on Linux? Exactly. Availability of Gtk on a Mac has 0 impact on how many Linux app will decide to use it.

> And they continued to change GTK3 API after 3.0, which did not exactly help

They added (and yes, deprecated APIs). Nothing that would affect existing applications. Themes were never part of the API and there was a warning, that it is going to change. If someone has to find the hard way, so be it.

>> Availability of Gtk on a Mac has 0 impact on how many Linux app will decide to use it.

I sometimes consider using GTK as a cross-platform GUI vs what we do today (a small wrapper over Windows, macOS, and GTK) so we can have some nice things - like resizable text and SVG icons. Not supporting macOS would mean not using GTK for that. At the moment, no static linking means no GTK for that too because we ship a single binary for Windows and I don't want to deal with an installer.

GTK4 has caused a burst of many new applications. It has been good for the community.
Eh, I don't know. I think that existence of crossword/todolist GTK apps is not nearly as much of a win as GIMP, Inkscape, Krita, KiCAD, FreeCAD and Scribd becoming actually competitive would have. It's indicative that biggest OSS app success, Blender, is not using OSS graphics library but rolls it's own UI. Rawtherapee, very highly regarded RAW file editor uses Qt. There's no decent looking mp3 player on Linux for heaven's sake! Every one that exists looks like shit or has zero functionality.
My beef is mostly with GTK3 and how it was introduced.

GTK4 seems to be better and at least it can be fast