Web lists-archives.com

Past and future evolution of Gtk+ (was: How to get a "traditional" file-chooser)

Le nonidi 29 fructidor, an CCXXV, Daniel Kasak a écrit :
> Come on. It's troll bait.

I am very sure you will consider this mail troll bait too, but I assure
you it is not, and an honest reading of its contents, with the
definition of troll in mind, will show that it is not.

This thread shows a trend that is very typical of the evolution of Gtk+.

In the beginning of the 2000's, Gtk+ was arguably the best toolkit
available: Libre, of course, best Unicode support, best ergonomics, best
set of supported languages, best API, etc. In the more recent years, on
the other hand, we have seen a growing dissatisfaction from a certain
category of users, about both the ergonomics and the API design.

A friend of mine, historian, likes to say "a false idea is a true fact":
"people are dissatisfied" is a fact, even if one disagrees with their
reasons for being dissatisfied.

Some of the complaints are just silly or otherwise unfounded, there is
little doubt about that. But on the other hand, some of them are founded
and valid. Amongst them, some are a matter of taste, priorities and use
style while some may be universally valid points. Somebody who aims to
enhance Gtk+ needs to heed the valid complaints. And in order to know
which one is what, all complaints need to be read with an open mind.

Therefore, requesting features or expressing critics in a constructive
way is good for Gtk+ and perfectly acceptable on its mailing-lists, it
is not a troll. It becomes "troll bait" because some people do not read
them with an open mind and reply in non-constructive ways, sometimes
bordering on insulting. Of course, when polite requests are met with
impolite replies, the ambiance eventually deteriorates on both sides,
and the critics become less polite. All sides should make conscious
efforts to avoid it.

As I said, some critics are a matter of taste and use style. I think
they should still be heeded: a toolkit like Gtk+ should strive to cater
for all users and all use styles; it is possible to make a GUI more
usable for certain users without making it less usable for others.
Furthermore, general principles about usability often have to give way
to other considerations. For example, if somebody is forced to work a
lot with applications developed with a mediocre toolkit, they will want
their few Gtk+ applications to behave as much as possible the same way:
even if it is not the "best" way, it is still more convenient for them,
and Gtk+ should propose it as an option.

Of course, implementing options and alternate behaviours costs time and
efforts, and testing the various combinations even more so. The work of
the Gtk+ team is given to the community gratis, nobody has any right to
demand anything about it: "sorry, we do not have time to implement it"
is always a valid answer in a Libre software project, but it should be
followed by "but if you implement it well and maintain it, we will
accept it gratefully".

According to many discussions here and elsewhere, it would seem that the
drop in ergonomics observed by a certain category of users came with the
release of Gtk+ 3. I think it is a mistake. I remember that the
behaviour of the file chooser evolved in a direction that I do not like
with the releases of Gtk+ 2. Also, even though I like Cairo very much
and I think it is a very good thing that it can be use so easily with
Gtk+, I am not sure I approve the use of Cairo for the core of the
drawing, and I am sure I disapprove the dropping of the ugly low-level

I think the bend of the evolution happened around 2005, and I observe a
shift in the most frequent names in git log at that time. I think it
matches the time where the development of Gtk+ was taken over by GNOME
developers. I do not know how nor why this take over happened, and I do
not think it is relevant to the discussion. But the net outcome is that
progressively around 2005, Gtk+ stopped to be the GIMP toolkit and
became the GNOME toolkit.

With that in mind, I think the development and release of Gtk+ 3 is not
the cause but the consequence of the evolution: the new generation of
developers needed a major break to be able to implement the changes they

I think that the nowadays Gtk+ developers should make their priorities
more explicit: do you want to make a toolkit that is designed to be used
everywhere or a tookit that serves primarily the needs of GNOME? But if
they do not say it explicitly, they let their actions speak for them.

One of the core aspects of the problem is that Gtk+ is the only decent
toolkit that have an API in plain C. If I am mistaken, please let me
know. Application developers who do not like C++ have no choice about
the toolkit they use.

Another of the core aspects of the problem is that the end users, who
benefit from good ergonomics and suffer when it is bad, are not the ones
who choose the toolkit.

For both these reasons, choosing another toolkit is not an option.

Therefore, if the Gtk+ developers continue to be deaf to the requests of
a certain category of dissatisfied users about ergonomics, the principle
of Libre software leaves only one option:


Take the current Gtk+ tree, fix the ergonomics issues, publish it and
lobby applications to use it, or at least to be compatible with it.

If the fork only changes high-level user-facing behaviours, like the
layout and reaction of the file chooser, then it can have the same API,
ABI and SONAME, and installing the alternate version in /usr/local/lib
would be enough to "fix" all applications on the system.

Personally, the feature I dislike the most in Gtk+ 3 is the disabling of
the window manager's decorations on application windows. I, as a user,
chose the window manager that I like and configured it to give windows
decorations with the appearance and behaviour that is most efficient for
me. Any application that deviates from that is an annoyance. Some time
ago I gave a cursory glance at the code to find the few lines in Gtk+
responsible for that, but I was not able to find them and had no time to
experiment more. If somebody could tell me where they are, I think that
today I would install a "fixed" version on my system, and very quickly
publish it on GitHub. If not, I will eventually get to it, probably next
time an application that I use a lot moves to Gtk+ 3 and starts using
that misfeature.

Tweaking the behaviour of the file chooser can work that way too, and if
I were to maintain a shallow fork of Gtk+, I would be happy to accept
it. The same goes for other examples of behaviour fixes.

As a side note, I have an awesome name for a de-GNOMEized version of
Gtk+. If I publish a version without WM decorations disabling and
possibly other fixes, I will use it. If somebody wants to do that before
I have time to get to it, I would be happy to share it.

Now, this is the Gtk+ mailing-list, hosted by the GNOME project. If
people want to discuss the ergonomics of the file chooser in a
constructive and polite way, I think it is the place to do so, but I
have no authority about it.

On the other hand, here is not the place to discuss a possible fork of
Gtk+, and I urge people to not continue this aspect of the discussion
here. On the other hand, if a discussion about it appears somewhere
else, I would appreciate to be personally notified.


  Nicolas George

Attachment: signature.asc
Description: Digital signature

gtk-list mailing list