| I would not call Gtk+ a "huge technical debt", but there is some truth in what you say. Gtk+ development has been badly under-sponsored by the companies that sponsor GNOME development. In recent years, Cairo and then Clutter were the hot new toolkits that many people used to supplement Gtk. (Clutter provides a 2.5D canvas that can be used in Gtk+ applications and Cairo is used by Gtk+ to draw widgets.) Qt, on the other hand, is backed by Nokia and has been undergoing constant development. The difference is noticeable. There was a time when people spoke excitedly about creating new GNOME applications using Clutter, because Gtk+ itself didn't support what they wanted to do. Clutter was (and still is) blessed by GNOME. Among other programs, many GNOME games have been rewritten to use Clutter with a small Gtk+ wrapper. I am no longer involved in GNOME, so I can't say for sure how people feel right now. I would guess that the attitude is what it has always has been: Gtk+ might not be amazing, but it is good enough for what we need. Use Clutter if you need a canvas. It would be insane to switch to another toolkit, as that would kill the GNOME project. Edit: I want to add a few points I forgot to mention: 1. Gtk+ 3.0's support for CSS theming will level the playing field with other toolkits, and especially with Qt. This is the most exciting addition to Gtk+ 3.0. To be honest, it is long due. 2. Qt is my personal choice for a cross platform toolkit in high-level languages. Qt Designer, QLayouts, and Qt's language bindings are very good, and have all been present for years. Gtk+ has good language bindings, but it is lacking in all of the other areas. Furthermore, Qt's last few releases bring many new features that Gtk+ is missing and wont implement soon. 3. Despite my preference for Qt, I still use Gtk+ for small small C programs because Qt is written in C++. Gtk+ isn't as fun as Qt, but being forced to use C++ is plain out painful. |
Cairo drawing throughout. GDK no longer wraps the antiquated X11 drawing API; we've made a clean break and exclusively rely on cairo for all our drawing needs now.
As for Clutter, the OpenGL based canvas, Gnome-Shell (aka the Gnome 3 desktop UI) uses cluttter throughout. The new window manager is called Mutter which is a fork of Metacity to use Clutter for hardware acceleration and all the panels and other desktop UI are also rendered this way.