Variety is the Spice of Life...
...But it's a bugger to contend with when you're just trying to get an app developed and shipped.
I hadn't realised that GTK was evolved in step with each new version of Gnome. Are they mad? Do they want 3rd party software to be written?
Basically, it looks like it's not just Windows that is riven with fear, uncertainty and doubt about "How GUI Applications Should Be Developed". I'm just waiting for someone to decide it's a good idea to do a Linux desktop in Electron (braces for a barrage of links to that very thing that I'm too horrified to even begin to type a search for into a search engine).
How It Should Be Done
Just my 2p's worth.
Having a graphical app layout tool is sensible. Mechanical engineers don't create objects by hand-crafting CNC code, no. They use a CAD package to be more productive. So it stands to reason that a graphical app layout tool should make programmers more productive.
However, I really don't like the idea of that producing a pile of XML (or equivalent) that is consumed at run-time by a bunch of libraries. That invites bloat; a linker can't tell what it's got to link in, and so you end up distributing the entire toolkit's libraries regardless of how much is going to be used.
Having a graphical app layout tool emit source code (C, C++, Java, C#, whatever) is sensible because i) programmers then stand a chance of understanding how the hell things are supposed to work, and ii) it makes for an efficient, smaller sized binary.
And, finally, there's things like SL-GMS (https://slgms.com/). For those that don't know what this is, it's the kind of thing you wish you had when you realise that your GUI toolkit library hasn't got the thing you need, and you realise you've got to code up your own. SL-GMS (at least when I first saw it a long time ago) made it very easy to draw a custom widget and ascribe properties to it, and then have that emit C, C++ (ad now Java, C# and Web) source code that implements that widget against a graphics primitives library of your choice. AFAIK there's nothing like it available as open source, and few seem to even perceive the benefits from having such a thing.
For example, say you need a compass rose widget. GTK and Qt don't have one, and you can't find a third party library that does one you like. With SL-GMS you simply draw your compass rose using the design tools, and then give it a property (i.e. this thing rotates abouts it's centre, 1 whole turn). Then you press a button et voila, source code in a language of your choice for a graphics primitives library of your choice (within limits) that has a compass rose class with a "bearing" property. Instantiate one of those classes, set the "bearing" property of the object, and you've got a compass rose on the screen spinning away. It takes literally 2 minutes from beginning to end.
The demo I saw of this back in the 1990s involved developing a whole moving map + live data feed for bus locations, from scratch, in 30 minutes, with a minimum of hand written code, in C++. It was very impressive. I'm not a customer of (I do embedded stuff) or connected to the SL-GMS company in anyway.
Really there should be no reason for developers to have to write any code to implement the "graphical" bit of graphical applications these days. Software development seems to be the last industry that has steadfastly failed to embrace tools to make GUI software development significantly easier. Some (like Gnome perhaps?) seem to be actively engaged in making it even harder than it already is. All other engineering disciplines are using software tools to make their lives dramatically easier, whilst the software industry keeps messing it up. Why?