Linux Center Interview: a few questions to... Matthias Ettrich

By Gaël Duval.

Matthias Ettrich is 26 years old and he is a German programmer. He is not very well known yet, although he is responsible for one of the biggest Open Source project after Linux. It is the K Desktop Environment, a complete graphical desktop manager for Unix and especially Linux, which encounters a wide success nowadays.

Gaël: Matthias, do you remember the day, in 1996, when you thought : "Unix needs a better interface, I'll do it..."? Were you still developing LyX and what was your situation at the time?

Matthias: In fact, I was still a student at this time, with my exams slowly coming nearer. Two things lead to the announcement that started KDE: One was my desperate attempt to install a really user friendly machine for a real enduser, the second was that I discovered the Qt library. So the thought was rather simple: Here is the problem, there is the technology to solve it. Let's do it!

I was still envolved a lot in the LyX development at this time. But since LyX found an excellent programming team I could easily do something else without any fear that the LyX development might slow down.

Gaël: Did you start the project on your own? And... was there anything already coded for KDE when you posted your original announcement in the end of 1996?

Matthias: I was not really alone, since I knew that many people out there just like me have been waiting eagerly for the right moment to start. Also our FTP and mailinglist master Martin Konold, who did a good job in promoting LyX before, participated from the very early beginnings, providing the technical infrastructure.

A few hours after the announcement we had already about 40 subscribers to the development list. And many of these are still active in the core team, for example Torben Weis, Martin Jones or Kalle Dalheimer who all joined during the first days.

Gaël: Did you expect the project to grow as much as it did?

Matthias: I saw some potential, but expected? No, not really. In the original announcement I suggested writing something which is far below what is KDE now. But at the time of the announcement it seemed to be something reasonible - and new. It gave the direction towards something that was not a dream, but possible. If I was a prophet and had described KDE-1.0 in that announcement, few people really would have been so curious to actually start working on such a huge thing. Instead, we would still discuss wether we should support X at all, or rather start writing our own graphic device driver and toolkit.

Gaël: Is there anything in KDE 1.0 that you didn't expect at the beginning?

Matthias: KDE 1.0 is much more powerful and much more complete than what we originally planned for the first enduser release. So there are a lot of things we (or at least I) did not expect. Especially the quality of the integrated webbrowser still surprises me, given the short development time, its small size and performance. Maybe we could have done the configurable keybindings for both the desktop and the applications ealier. However, these are now available in the KDE-1.1 development tree.

Gaël: Why did you start a new graphical interface project instead of trying to improve existing ones (fvwm, afterstep...)?

Matthias: fvwm and afterstep are two good examples of "Windowmanagers". Window managers are applications that are responsible for the window decorations. That means, the way the titlebar or the frame around a window looks. In addition, some windowmanagers come with some kind of startup menu to launch applications. They have no influence on the graphical interface of applications, though. The old and weird xman utiliy for example is completely the same under fvwm, afterstep or any other window manger. It does neither become nicer nor more userfriendly. This is why I refuse to call a window manager a graphical user interface. People mainly made this mistake on Unix, because there was no graphical interface at all. The window manager was all they got, although they wanted to have one (because all competitiors meanwhile had those). So they simply called the window manager a GUI instead of writing a real one.

Gaël: Why did you choose Qt - the graphical library used by KDE - as a base? Was it a better choice as compared to Motif, Xforms, Athena Widgets or Lesstif?

Matthias: I had some experiences with Motif, since the very first version of LyX used it. Believe me: An experience you do not want to repeat. Motif is extremely hard to use and requires a lot of source code for even simple tasks. Another problem is the lack of a unified API when programming Motif. Instead, you will have to learn at least three APIs and when to use them: Motif, Xt and Xlib. Further more, your application won't have any printer support at all, except you write it manually. Besides that the resulting applications often feel sluggerish and slow. XForms is easy to program, although it is written in C. And it comes with a neat GUI builder. However, the look and feel is so non-standard and the source code is not freely available. Two killer-arguments not to build something like a desktop on top of it. Did I forget something? Ah yes, Athena! No need to comment on that. What I like best are the text input fields without any focus handling at all: You need to position the mouse pointer exactly above the widget. To be fair: Athena was never meant as toolkit for applications. It's a great online documentation how to build toolkits like Motif with Xt.

Qt on the other hand is rather complete and a true C++ class library. This makes writing new widgets extremely easy, simply by C++ inheritance. Programming Qt feels quite natural, at least as natural as an abstract task like programming can be. Besides, Qt comes with excellent documentation. But the best thing is that it often requires less then one quarter of code to write the same application with Qt compared to the Motif-equivalent.

Gaël: Do you personnally think it's better to use an object-oriented programming language like C++ to build graphical interfaces, or is this choice lead by the choice of Qt (fully implemented in C++)?

Matthias: Undoubtely it is much better to use an object-oriented language for that. Object-orientation and GUI programming work so extremely well together, that the usage of other languages leads to awfully lot of unnecessary work. In C you will have to fiddle around with preprocessor macros, for example, to get some kind of convenient API. And by doing this you, you usually give up a lot of static typechecking, which in return makes software development and debugging much more difficult. Real OO-techniques like virtual functions or overloading are hard to resemble in C, and again, you loose most of the checks a real C++ compiler can do for you at compile time.

Gaël: Were you part of the Qt project before starting KDE?

Matthias: No. I started KDE immediately after having discovered Qt.

Gaël: I'm often told KDE looks like Windows 95/98... Is it a strategic characteristic? Or are the KDE developpers Windows-lovers? :-)

Matthias: It is probabaly more a matter of taste than a strategical characteric. Indeed, many KDE developers admire Microsoft for their graphical interface, while the underlying technology usually stinks. But when it comes to object component technology, it is way ahead to everything else on Unix right now. However, Torben Weis with his OpenParts project (the technology behind KOffice) is going to change that. But there is also an overall strategy behind it, I admit. Like with any other project out there, if you do something new, you first clone successful concepts of your competitors until you are able to define new standards and to introduce different concepts on your own. Naturally, KDE adopted many ideas from CDE, classic X-environments and - nobody can deny this - MS-Windows.

Gaël: What do you like/dislike in Gnome? What do you think of the Gtk+ widgets and would you have used them if they had existed at the beginning of the KDE project? Did the Gnome/KDE war affect you?

Matthias: Gtk+ is an impressive and very complete toolkit. If only it was written in C++, the decision between Qt and Gtk would have been really hard. As it is now, Qt programming is much easier, requires less code and feels more natural. And Qt is much better documented. I know about the C++ wrapper for gtk, of course, but a thin wrapper can never compete with a true class library.

Regarding Gnome: Since everything a KDE developer says about Gnome in public is interpreted as bashing, I should rather be quiet. Anyways, there is nothing like a Gnome/KDE war, at least not among the developers. Developers usually respect everybody, who actually makes his hands dirty and writes source code. Anyways, the flame wars really made me sort of sad, destroying my belief that there actually is or was something like a linux-community. It's not just KDE, it's everything. Announce for instance that you wrote a new texteditor. People will flame you that you did not improve emacs instead. Others will start to argue that vi has a similar mode and here we go. Did you ever read a posting from an emacs or vim developer bashing the other one? Or announce that you wrote a LaTeX frontend. People will flame you that their current way of writing TeX is better, more powerful, more unix-like, etc. Why? Many linux users out there seem to believe that authors of free software want to force them to use the new stuff exclusively. That's nonsense. If you like some software, use it, if not, use something else. Why is that so hard to understand for many linux fans? I have no idea. Anyways, it's getting slightly better, so there is some hope. Nowadays people can even ask technical questions about KDE in a general linux newsgroup and get, well, a technical answer instead of flaming. Personally, I do not read linux newsgroups any longer. Real development or end user support happens in mailing list that provide a much better signal/noise ratio.

Gaël: Do you think Qt would be so better if it was Open Source?

Matthias: I do not think that Qt was better if it was Open Source. After all, there is nothing comparable to Qt which is Open Source right now. For the success of KDE, a stable, controlled basis class library was an important factor. It could have been an open source one, of course, if one was available. We in the KDE team wanted to write free software. For us Qt works perfectly. People who complain about the license want to write proprietary applications without giving back. Well, they can easily do this by using another toolkit.

Gaël: Are you employed at Troll Tech?

Matthias: Yes, which may relativate my previous answer ;-) I started working for Troll Tech recently at the 6th of August 1998, which means after the release of KDE-1.0. In other words: Not only that I can continue with KDE development, I get even money for that :-) Another nice side effekt: I am now living in the same town as the current LyX maintainer Lars Gullik Bjoernnes, in Oslo. So after working together for years we could finally drink our first (and rather expensive due to the norwegian alcohol taxes) beer together

Gaël: Have you participed to QtMozilla, the Qt port of Mozilla? Will there be a KMozilla?

Matthias: Of course I participated! If not I had missed the greatest hack for years! Honestly, it was awesom. We have been able to replace around 500 thousand lines of code with about 25 thousand lines of Qt based code - in just one week, with virtually no documentation at all. Since then Netscape released much more documentation, so porting should be easier now. I was a bit dissapointed that we have been the only team porting Mozilla. We expected a couple of teams all over the world to take the challenge, but nobody else was really that curious.

We thought about a KMozilla at the beginning but decided against it. It is much more valuable to improve our own, clean and fast web browser instead of messing around with the huge mozilla, especially since we already have a decent mail client and a newsreader. Since Mozilla does not support Java so far, there are not many advantages over KDE's built-in browser anyway.

Gaël: There have been a few discussions about KGimp (the KDE port of Gimp) : will it be released one day ? If not, why?

Matthias:In fact there was never a true or complete KGimp. I gave a talk at the 1998 Linux Kongress in Cologne about multi-toolkit programming, the technique we used to port LyX from xforms to KDE. But since KLyX was already done and completely ported, I wanted to come up with another example. So I did that one-day hack which lead to awfully lots of discussions. That was really amusing: People spent hundreds of hours discussion something which took me less than one day to write :-) A real release was delayed over and over again, mainly because I did not find the time to put the stuff in a proper autoconf installation. Also I wanted to wait for GIMP-1.0. Anyways, GIMP-1.0 has been released some time ago and the GIMP maintainers consider to incorporate KGimp as compile option into the official GIMP distribution. Maybe this has already happend when this interview is published.

Gaël: Will there be a KEmacs?

Matthias: XEmacs is the editor of choice for many of the KDE developers. In converse, some XEmacs-developers also mentioned interest in a tighter KDE integration. So the future regarding KEmacs looks pretty bright.

Gaël: When will KOffice be mature enough to be a serious competitor to MS-Office? :-)

Matthias: This is not a matter of waiting for something to happen. Instead, it is a matter of making something happen. Simple rule: more active developers, more software in a shorter time. A serious competitor to MS-Office for me is system which I can use to do my work. In the real world, a serious competitior to MS-Office must look exactly the same and must read and write *exactly* the same, always changing proprietary file formats. In that case KOffice will probably never be "serious" competitor, only better ;-)

Gaël: After having created LyX - the graphical front-end to LaTeX -, you have ported it to KLyX. Is it as usable as a word processor (like `Word'), or is it for people who are used to using LaTeX?

Matthias: Not at all! I would not even recommend it for people who already use LaTeX. LyX' main strength are long and complex documents, with lots of equations, pictures, cross-references, tables, footnotes and so on. In other words: something `Word' still cannot handle very well, like a master thesis, for example. Of course you can also write letters with LyX fairly easy. But it is not a desktop publishing program, which is what most people are looking for when they say wordprocessor.

Gaël: What do you think of Red Hat Software decision to not adopt KDE as the standard graphical interface of their Linux distributions?

Matthias: Every company has a target market, so does Red Hat. Most linux distributors try to serve the enduser market - people actually doing their work (or just have fun) with linux - and free software developers. See, a user wants everyting that is useful and makes his work more pleasant and productive. A free software developer wants everything which helps him writing better and more powerful free software in a shorter time. Red Hat found another market, though: People, who want to buy a cheap operating system in order to develop and sell proprietary applications with it. Well, this is still possible with a linux distribution that contains KDE. But the Red Hat target customer is even more special. He is not able to actually read the licensing statements of the libraries he is using and he is absolutely unwilling to pay back, neither the free software community nor the developers of the tools he is using. To allow this, the distribution must neither contain any GPL'ed libraries nor the Qt toolkit. Red Hat is a commercial company, they are free to serve their favorite target market. Nevertheless, given the size of this market I think they are doing a big mistake.

Gaël: Do you think it would be a good thing if KDE became _the_ standard graphical interface for Unix and especially Linux? And do you think it will happen one day? :-)

Matthias: It _is_ already the standard free graphical interface for Unix. I admit that this a bit cheated, because it is the only one fitting in our definition of graphical interface right now ;-) Anyways, we have to distinguish between KDE, the code and KDE, the look and feel and protocols. There is already an extended Tk library available which allows you to write KDE compliant applications in Tcl, using a completely different toolkit. In the future we might have a gtk version which fits in look and feel smoothly into the KDE desktop as well. Standard look and feel and protocols are much more important than using the same code base. I am confident that KDE will gain enough momentum and influence to be able to push these things.

Gaël: What about the future of Linux and KDE? Do you think Microsoft should start to worry?

Matthias: Well, sarcastically, I would like to remark that whenever some Unix-related project was about to become really successful, somebody splitted it. This happend both in the commercial and the free software world. So, statistically Microsoft does not have to worry. I hope, however, that Linux and KDE are about to break that rule.

Gaël: What about your first personal computer?

Matthias: I met my first computer during a sommer vacation in denmark. I was about 12 years old, the machine was an Amstrad CPC464. The parent of my danish friend - the owner of the machine - taught us some basic programming and it was so fascinating! Right after being back in Germany I bought a C64 (together with two of my brothers because it was soooo expensive). After some years of hacking 6510 assembler I completely retired from doing computer related stuff at all. Instead I changed the kind of keyboard and did some music instead - until I started studying computer science years later.


The interview was done by email in September, 1998.
Many thanx to Sébastien Blondeel for the interviewer english-bugs fixes :-)
This interview of Matthias Ettrich by Gaël Dyval may be reproduced and distributed in whole or in part, in any medium, physical or electronic, so long as this notice remains intact and unchanged on all copies.

1998 Gaël Duval