GTK+ History

GTK+ was started as toolkit for the GIMP around 96 and reached its first stable release in April 98. GTK+ 1.0 contained the basic widgets that were needed to support the GIMP. The next stable release, 1.2, February 99 contained many new widgets which made GTK+ a reasonable toolkit to choose for general application development, it was no longer Gimp-centric. 1.2 was also the first release which featured a separate GLib library.

After 1.2, GTK+ went into a long development cycle, during which a lot of things were done. Text rendering was moved to use Pango, yielding first-class internationalization support. The object system was generalized and moved to GLib under the name GObject. A backend separation was introduced in GDK, and the win32 backend was added. Two big new widgets, the text view and the tree view, were created from scratch. Both feature a model-view architecture. During this 3 year period, Gnome was eagerly waiting for GTK+ 2.0 to get ready, since Gnome 2.0 depended on it. One of the lessons which the GTK+ team learned from the 2.0 release cycle is to try to stick to shorter 9-12 month development cycles between stable releases. We haven't reached that goal for all 2.x releases, but we have successfully avoided multi-year development cycles since 2.0.

The releases after 2.0 had more of an incremental nature. The main new feature in 2.2 was multihead support, for traditional X11 multiscreen/multidisplay and Xinerama.One interesting aspect of the multihead support in GTK+ is that it allows you to move windows between screens and displays, a feature which only few toolkits support today. The current stable release 2.4 features a new, much anticipated new filechooser widget, as well as a new combobox, and some widgets which were "brought home" from other places in the Gnome library stack.

To get an impression of the size of GTK+, here is a rough count of the lines of code (created using David A. Wheelers sloccount utility). These numbers include GLib, ATK, Pango and GTK+: