With 2.0, GTK+ speaks Unicode, its textual widgets will properly handle right-to-left scripts, and the tree/list and text widgets are completely rewritten, more powerful, and easier to use. Moreover, the 2.0 release of GTK+, which Taylor expects by the first quarter of 2001, brings a sense of completeness and coherence to the library. Still, thousands of applications based on 1.0-1.2 have been produced successfully.
Perhaps most troublesome, the GTK+ documentation lagged behind the libraries in early versions - users often didn't understand how to exploit the facilities already present. Early releases of GTK+ had rough edges, compared to alternative toolkits.
The enthusiasm that fuels GTK+'s proliferation of language bindings has also had a hand in the functionality of the core GTK+ widget set. people can be assured that their language bindings will work across versions." Taylor emphasizes the GTK+ development crew's commitment to stability. 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. We're seeing quite a few people looking at using GTK+ with teaching languages as a way of introducing user interfaces. Even the less complete bindings can still be valuable. 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.
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. Maintaining a GTK+ binding is not a completely trivial task. For those who prefer other languages, Taylor explains the situation: Many programmers, especially those coming from Motif or Windows GUI environments, simply want to work in C, making GTK+ a natural choice. Taylor is employed by Red Hat Advanced Development Labs. 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+. While GTK+ and Qt share many technical characteristics, Qt is coded in C++, and well-maintained bindings are only available for C++ and Python. One of GTK+'s primary features is good support of different languages. It is more common, though, for an organization to prefer Motif or Qt because of their restrictive commercial licenses.
There are even a few situations - mostly concerning Linux-based embedded systems - where the GTK+ license is inconvenient for proprietary-software developers.
Qt's license has been liberalized, and Motif's source code is now available in some situations. The force of the license argument has diminished since GTK+'s birth. Many programmers now actively seek out licenses such as LGPL, instead of Motif or other toolkits. This may be the feature that developers mention most often when explaining their choice of GTK+. It's a solid member of the GNU project, available under the GNU Lesser General Public License (LGPL). So one of GTK+'s distinctions has always been its license.