It is impossible to summarize 4 years of development in a single post. We’ve written detailed articles about many of the new things in this release over the past year: Data transfers, Event controllers, Layout managers, Render nodes, Media playback, Scalable lists, Shaders, Accessibility.
GTK is the backbone of virtually everything I do on my computers – I run GTK desktops – and I know I’m far from the only one. The benefits and improvements of a new release of this toolkit will find their way to all of the major GTK desktops, and this is the first major step in that proces.
I don’t use Linux (for now at least) but familair with the artchitecture and implimentation issues of GUI frameworks riding on top of system and graphics calls so get the idea of graphical widgets. I don’t have much to say really but the idea that anyone including schoolchildren can have relatively easy access to playing with graphics is very appealing. Back in the day (sigh) coding, graphics, system calls, and peeking and poking with memory was a thing. Nothing was locked down or hidden behind a shelf of inch thick manuals as it is today. Things like this keep the flame burning.
I should give GTK4 a try. I’ve never once written a GTK application. Back when I started programming on Linux, everything I read was “use QT! gtk+ is horrible to set up”.
I’m in no way a GUI developer (I’m a low level developer) but I have some experience in writing code in both GTK and Qt, and I must admit that I found both have their weaknesses and strengths.
Qt is far reaching, and handles everything from dialog boxes down to SSL connections and threads; and in general if you use Qt you better use it across the board.
Gtk on the other hand is far smaller and plays better with clean POSIX.
In short, it greatly depends on what you are looking for. (Lets alone the question what do you prefer C or C++)
BTW, Gtk has another bonus, great Python integration (as opposed to PyQt).
What problems have you had with PyQt? It seems really good to me. To the point where I sometimes don’t even bother finding the PyQt docs; I just look at the C++ ones (which are more prevalent) and just assume the Python bindings are there.
gilboa,
Yeah, I’ve tried QT a few times but every time I do I feel it’s too invasive if that makes sense. I like developing for GTK better, but I find it cumbersome to make portable software with it. It works, but a small toolkit like FLTK is more up my alley as it compiles natively to every platform. This is very appealing to me as there’s no need for bulky dependencies and additionally using the native OS controls there’s no clunky theme mismatch that you can sometimes get with higher level toolkits.
When I was developing GUI frameworks I looked into FLTK. It’s good work. Another one well worth mentioning and which never gets any attention is Borlands VCL. While it wasn’t cross-platform at the time I pretty much raided VCL for every concept and idea it had going. The people who put VCL together really knew what they were doing. FLTK came a very close second.
When developing a GUI you need to think about cross-platform issues from concepts on downwards to implentation. What is available on one may not be available on another. I found in the main this is not a problem as 99% of OS are similar or close enough the GUI framework can make up for differences with minimal coding so they are functionally the same. The biggest issues I feel are whether the application developer are or are not coding to cross platform principles themselves. If they are thinking of this they should abstract and be using their own abstraction layer. It’s amazing how many developers don’t even think of this. (I’ll just ediit in the point that cross platform GUI frameworks work best in my mind when they present a native interface. Getting the concepts and abstractions right at the start means native is a piece of cake.)
There are probably a lot and certainly a few key applications aimed at Linux which would benefit from a better ethos at the beginning. In Windows and OS X and other OS a lot of the HCI decisions have already been made. Using supplied tools it’s very easy to build applications which fit with this or alternatively code to this. I find Linux is a bit all over the place by comparison. Then there’s Wayland doing its own thing. Sigh.
Does it bring thumbnails in the file picker, finally?