Originally Published: Friday, 26 May 2000 Author: Rob Bos
Published to: featured_articles/Featured Articles Page: 1/1 - [Printable]

The Evolution of a Free Software Toolkit

The toolkit used to create the GIMP, then the most successful and high-profile Linux application, then and still one of the crown accomplishments of the Linux community, was spun off into a separate toolkit. Over time, GTK+ gained much of the functionality it required to form the foundation for a major X toolkit.

   Page 1 of 1  

GTK+, the core toolkit of a large number of Linux graphical applications, was, two short years ago, exclusively used by a single program, the GNU Image Manipulation Program, or the GIMP. From its beginnings as an X toolkit coded from scratch, enormous resources have been sunk into creating what is known as the GIMP Tool Kit. In two short years, this X library has gone from relative obscurity to being one of the foundations of the popular GNOME desktop environment. GTK+ forms a significant part of the functionality of end-user Linux applications and has far exceeded the original expectations of the authors.

Years ago, the most important X toolkit was called Motif. Motif was the core of almost all commercial and many non-commercial X applications. This was a significant problem, because Motif was until recently proprietary software in every sense of the word: source code was unavailable, and the so-called "Open Group" was unresponsive to developers and end users. The only free alternative to Motif, Lesstif, was inadequate at the time to compile any but the most simple applications. At the time, a huge amount of rhetoric was being spilled over the subject.

In fact, Motif was one of the first major obstacles to the progress of Linux in general. It was the most advanced toolkit of its time, and thus many applications were coded against it. Coding a replacement for Motif was an enormous undertaking. Other toolkits (QT, for instance) were either facing similar problems with licensing, or incompleteness, or simple technical inflexibility or lack of publicity.

Among the incomplete toolkits, however, was a relatively obscure one gaining developer mindshare very quickly. The toolkit used to create the GIMP, then the most successful and high-profile Linux application, then and still one of the crown accomplishments of the Linux community, was spun off into a separate toolkit. Over time, GTK+ gained much of the functionality it required to form the foundation for a major X toolkit.

The picture, however, was incomplete. GTK+, while the most advanced of the free software projects, still could not compete with commercial competitors at the time due to lack of mindshare and functionality. Most notably, the Troll Tech toolkit, QT, was significantly more advanced in some respects than GTK+.

In late 1997 to early 1998, however, the QT toolkit, technically superior to Motif in almost every way, was looking poised to become the successor to Motif. But this toolkit, at the time, was also not free software, and therefore not acceptable to the bulk of free software developers. Since QT formed the base of the single most ambitious free software project, the K Desktop Environment, a project that would quickly become the dominant desktop environment for Linux, the situation was clearly unacceptable. To have a non-free programming toolkit forming the basis of the only comprehensive desktop for Linux would mean a significant detraction in the long-term to the viability of Linux on the desktop itself.

A major scuffle in the free software community, on an enormous scale, spawned the GNU Network Object Model Environment, or GNOME, based on the most advanced free toolkit available: GTK+. Developers poured resources into the GTK+, and the various projects that made up GNOME. In a matter of a year, a very workable desktop environment speedily cobbled together from free components was created as an alternative to KDE and QT.

Meanwhile, QT was under attack from another two areas. The Harmony project, spurred on by Troll Tech's unresponsiveness to requests to make licensing changes to their toolkit, was humming along merrily in their efforts to clone QT's functionality in the same way that Lesstif cloned Motif. Programs which carried QT were being, en masse, removed from Linux distributions, most notably Debian and Red Hat (Debian still does not carry KDE or any QT programs), along with Slackware. The situation could not continue.

Because of the major criticism that QT had taken over the licensing on their toolkit, and because of the major efforts underway to make QT and KDE irrelevant, Troll Tech made the decision to free the QT library and release the source code under terms that, if they did not actively encourage free software, did not actively hurt it, either.

Together, these two desktop environments have fed off each other and competed with one another and together have advanced free software more than either of them could have alone.

But back to Motif. Ironically, today, the situation with Motif is far different. The so-called Open Group has released it under a free license and is actively developing it. In addition, the Lesstif project has provided a compelling argument for its existence regardless of Motif's existence -- in many ways, it simply works better and is more flexible than the toolkit that it originally simply wanted to emulate. In short, Lesstif takes Motif to the next level.

It is interesting to note what happens when something gets in the way of Linux' path to world domination. Motif -- simultaneously made irrelevant, replaced, and discouraged. QT -- almost simultaneously made irrelevant, replaced, and discouraged, but saved in the nick of time by a licensing change. Time and time again, threats to our freedom to build a new, better world have been pushed out of the way and worked around. These are wonderful times to live in.

Rob Bos (rbos@linux.com), converted three machines to ReiserFS today and intends to write comprehensive instructions on how to do the same. It is a nifty thing, to see ext2fs compiled as a module. Odd thing, though -- he can't remove Debian's e2fsprogs package without removing a whole slew of other programs that depend on it.





   Page 1 of 1