Gtk+4.0



Hello!

I don't see here an active discussion about Gtk+4.0[1]? So I'm trying to
write about my thoughts, in a careful way. In the first moment, I thought
this is a good idea and just the numbering is misleading. Stability is what
developers want, we need it, we love it. With a few days distance,
numbering is just a small issue, I see this now entirely different and
three major issues:

1. Separating official applications from GNOME, away from all other major
applications
2. Very short stable-release-cycle, every two years an API/ABI-Break is
really bad for all
3. No actual reason to break the API/ABI of Gtk3.x, but stability is the
most important part for a toolkit



I hope you don't hate me now. I'm trying to elaborate this:
1. Separating official applications from GNOME, away from all other major
applications:
Applications will be splitted in modern and outdated ones. Users will see
modern applications from GNOME and a lot of old stuff, mainly well-known
applications. As time of writing, neither Gimp, Inkscape, Geeqie, Pidgin
nor Geany merged to Gtk3. After five years we see now Firefox and
LibreOffice (?) on Gtk3, and progress on Gimp and Inscape, Gtk3 was
released in 2011. From the developers side, we will forced to choose
between to nasty options, an already outdated stable API/ABI or a shiny new
API/ABI, which will break fast.


2. Very short stable-release-cycle, every two years an API/ABI-Break is
really bad for all:
If the API/ABI becomes stable every fourth release or two years, this is
to short for the developers to adapt. Constant breaking is bad for
developers! We will see a lot of different stable API/ABIs used within
years (or not, which isn't better). And the Gtk+-Team will have to support
a lot of stable-branches: Gtk2, Gtk+3, Gtk4 (two years later), Gtk5(four
years later) and so on.
This sounds like very much work and is bad for the Gtk+-team. Currently
the Gtk+-Team has to support Gtk2 and Gtk3, only.

Furthermore the alignment to Debian/Ubuntu LTS sounds like a permanent
delayed cycle building on top of each other. I don't expect many developers
to catch up with unstable/upstream or even using "git clone://", in case of
Ubuntu or Debian this could happen:
-> LTS -> Stable API/ABI -> Developers start adapting
-> Subsequent LTS -> Adapted applications available -> But already new
stable API -> Developers start adapting again

3. No actual reason to break the API/ABI of Gtk3.x, but stability is the
most important part for a toolkit:
Nobody named a reason, why it is really necessary to break the API/ABI.
Wayland? Already done (great job!). A lot of new featuers? Already done and
doing (great job!). But the main reason for choosing a toolkit is, beside a
good API, stability and portability. A more stable API/ABI will attract
more developers, more applications will be written and therefore easily
portable from Windows/MacOS to Linux&GNOME. Microsoft (stability) and Qt
(stability&portability) are investing lot of in this, for decades.


The idea of more stability is very positive! But after thinking about the
current proposed approach I'm a really scared. Instead being against a new
approach of an ongoing development, some suggestions from a
non-library-developers (i.e. a complete fool):

1. Tiring, but with the most impact, keep Gtk3 as stable as possible while
carefully adding new things
2. Add experimental features through external libraries (libsexy and so
on?)
3. Add experimental features behind compiler MACROS, like
UNSTABLE_GTKPATHBAR
4. Seperate Gtk a little bit more from GNOME (this hurts, but I think this
will help). I've GNOME wants something and the Gtk-Team is not convinced
(yet), GNOME can do it on it's own without hassle. The future will show who
is right and maybe the new thing get moved into Gtk or dropped again from
GNOME. Maybe this increases the chances to get in better contact with other
heavy Gtk-based environments.


Keeping things stable is hard work. I know that and admire your work.
Thanks for your work on Gtk+!
Peter



PS: Allan already has written about the unlogical version-numbering it[2]
and mentions the better even/odd-numbering. So I skipped this completely.

[1]https://wiki.gnome.org/Projects/GTK+/Lifecycle
[2]https://blogs.gnome.org/desrt/2016/06/13/gtk-4-0-is-not-gtk-4/



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]