The GIMP Toolkit. Originally developed as a Motif replacement for the GIMP, GTK rapidly became one of the best, most popular and most important GUI toolkits in the X11 world, especially since it is now the foundation of the GNOME desktop environment. By the way: GTK became GTK+ when the object orientation was added. Sort of like the relationship between C and Objective C or C++.

Thus, the architecture is object-oriented, but using plain C without stapled-on syntax extensions such as the signal/slot keywords in Qt. All the object orientation work is done at runtime by a special library called GObject, which is very well-suited for scripting language bindings. Indeed, GTK+ now has bindings for a large two-digit number of languages, and so has GNOME.

GTK+ tries to wrap as much as possible of the underlying platform. GLib, a utility library, provides platform-independent data types and structures as well as general-purpose routines and the GObject OO framework; GDK, the drawing kit, wraps the drawing backend, be it X11, Win32, the Linux framebuffer, whatever.

With the recent GTK+ 2.0 release, a quantum leap has occured: the object model, GObject, is now separate from GTK+ and not dependent on X11 anymore; the pluggable graphics backend architecture was introduced; and an internationalisation toolkit, Pango, now provides the capability to handle text in all languages, non-latin, right-to-left, everything you need. From GNOME, stuff such as the stock pixmaps for decorating menus and buttons has been moved into GTK+; the most important of these additions is GdkPixbuf, a fast image manipulation library that now does all the pixel diddling in GTK+. Which means that GTK+ now has alpha-blending and such. Sweet.

Besides, GTK+ 2.x is much faster than GTK+ 1.x, too. It does anti-aliased fonts now. And it's prettier ;)