One of GTK+'s primary features is good support of different languages. While GTK+ and Qt share many technical characteristics, Qt is coded in C++, and well-maintained bindings are only available for C++ and Python. By contrast, "GTK+ is written in C, and has from the very beginning targeted bindings to other languages," said Owen Taylor, current co-maintainer of GTK+. Taylor is employed by Red Hat Advanced Development Labs.
Many programmers, especially those coming from Motif or Windows GUI environments, simply want to work in C, making GTK+ a natural choice. For those who prefer other languages, Taylor explains the situation:
Maintaining a GTK+ binding is not a completely trivial task. GTK+'s design makes it really easy to get a simple language binding up and running that covers 90 percent of everything that a programmer wants to do, but to get really thorough coverage of all 1,400 or so entry points to GTK+ takes a fair bit of effort, especially if you want to get a binding that really fits the language well.
Of the 20 or so language bindings out there for GTK+, perhaps half a dozen are really complete and heavily tested; in particular gtk (C++ binding), the Ada bindings, and the Perl and Python bindings come to mind.
... Even the less complete bindings can still be valuable. We're seeing quite a few people looking at using GTK+ with teaching languages as a way of introducing user interfaces. Before GTK+ became common, the standard way of doing this was either to write your own (usually primitive) toolkit, or write wrappers around Tcl/Tk.
Taylor emphasizes the GTK+ development crew's commitment to stability. "Once we finish a stable version ... people can be assured that their language bindings will work across versions."