With KDE, a UNIX dream came true—a friendly, graphical environment for the user and a sophisticated application development framework for the developer. Well, to be perfectly precise, it didn't just come true. There is not much point in the free software world just waiting for something. Ultimately, somebody has to sit down and write the code. And many people did exactly this, in hundreds of thousands of uncounted hours during their spare time. This makes KDE even more interesting. It's a user environment created by users of this environment and a development framework written by developers, who wished they had found such a framework when they discovered UNIX themselves.

People tend to think of KDE as the flashy icons, the fancy window decorations, or the startup panel, but that's not the whole truth. The bigger and more important part of KDE is the framework—a framework that is powerful enough to create a customizable meta application such as Konqueror, with all its plug-ins for various mime types.

If you think KDE 1.x was the definite proof that it was possible to create such a framework based on the idea of shared code and voluntary work (nobody argues this today, but very few people—especially in the free software community—believed it back when KDE was started), then KDE 2.0 is supposed to become the masterpiece. Backed up by a stable, maintained, and highly appreciated KDE 1.x, the KDE team undertook the major effort to redesign big parts of the framework to reflect all the things learned from the first approach. Although software architects may criticize this "second system syndrome," it was indeed a time of big experiments—and the release date was more and more delayed. The most obvious example was the pervasive use of CORBA (Common Object Request Broker Architecture). After basing all interclient communication on CORBA for almost a year, we had to learn the hard way that it simply did not work out for our purposes. Although the architectural change from CORBA to KParts/DCOP might have delayed the release again, we believe it was worth the wait.

We can safely assume that many of the older and partially retired KDE developers will look back and dream of all the exciting applications they could have written during their active free-software hacking phases if they had had this new framework back then. Please enjoy the privilege of being able to write applications on UNIX without having to reinvent the wheel first.

Whenever you discover something you think could be done better or something that simply is missing, please consider joining the KDE team to fix the issue. Your help will be highly welcomed and appreciated.

Oslo, 5 June 2000

Matthias Ettrich

1. Lead Author

David Sweet ( has just earned his Ph.D. in Physics from the University of Maryland for pioneering work with Christmas tree ornaments (see the cover of Nature, May 27, 1999). Concurrently, he has been writing bits of free software, an article about KDE programming in Linux Journal, several chapters of Special Edition Using KDE, and this book.