Konsole Interview - App Interview of the Month
You can also check out the overview of Konsole.
Interview by Andreas C. Diekmann with the author of Konsole Lars Doelle
Original can be found at www.kde.de
When did you start working on Konsole?
Directly when the KDE project started. For about a year or so before, I was investigating GUI programming on Linux. The state at this time was a disaster to say the least, besides X11, which is definitely a very good foundation. The most promising development at that time was Lesstif, a free Motif clone, but this project was progressing slowly, although it became successful in the end.
The earliest work of Konsole had a slightly different direction, as it was intended to become a terminal emulation for use of what was called mail boxes at that time. Basically a console running on top of a modem instead of the pseudo pty devices as it is now.
After learning more on what terminal emulations are about and recognizing that an X-terminal for KDE would be needed to replace kvt, a work from Matthias Ettrich's pen and basically a port of xvt onto Qt, I started working on Konsole.
Initially, most of the work was, well - let's say - archaeological research of the pre- and early history of data processing. Technically, Konsole is all based on the DEC's VT100 and lots of its successors, which are all extensions of the sort we'd call 'hack' today. It took about two months to collect and balance all sorts of escape codes as they are needed to make an X-terminal work as it should.

DEC VT100
The rest was pretty straight forward coding.
Beside the maintainer Waldo Bastian, you are listed as only author. Does Konsole originate from you alone? Is there anyone else to mention, when talking about Konsole?
Waldo Bastian currently maintains Konsole, together with some other programs. He's doing an excellent job in that and I'm very, very thankful that he takes care of Konsole at the moment, after I've sort of retired from active development on Konsole. I'm still doing a little maintenance and some correspondence though.
The "Thanks To" section in Konsole's About dialog lists ways too few helpful people for my taste, as Konsole received a lot of contributions. The one I personally found most helpful was Peter Silva, perhaps because he was the very first substantial contributor. It was one of the incidents I find so typical in the freeware movement. Precisely at a time when I really felt exhausted and desperate about the finalization of Konsole he showed up and did something helpful and important and that was adding the marking ability. As sudden and quickly as Peter came, he disappeared to help someone else and left a happy and fully refreshed author. I've experienced this kind of contributors in any freeware project I did and people like him are definitely the ones making freeware production so fruitful and so much fun.
Another great improvement example I like to mention is the partification work of David Faure, which took Konsole on a complete different level allowing it to work smoothly with other applications like Konqueror or KDevelop.
Many others made great and often silent contributions. Their work often simply showed up in CVS. These were many smaller and larger contributions which make Konsole what it is now.
Only the rendering core and the interpreter of the control codes are, besides likely elementary material alone, from my pen. Amazingly, this haven't been changed since the very beginning.
The "classical" shell is essential on Linux machines for productive and fast work there are some X-terminal variations out there too. What did you miss in the other programs, what did motivate you to program another X-terminal, and what is particular for Konsole in your opinion with respect to the other terminals?
Well, perhaps, as you are asking about the shell I like to put straight a typical misconception of what Konsole or an X-terminal is about.
Because the prominent application running in Konsole is certainly Bash, i.e. a shell, an X-terminal is often confused with the application run in it. Konsole is simply an emulation (or simulation, if you want) of a terminal. A terminal is a concept buried deeply in the DNA of UNIX and anything alike as for instance Linux. For example, if you run the ps command, you'll find a terminal attached to each and every process running on the machine. A UNIX host has, say 20 or even hundred of terminals attached to it over serial lines all with users working actively on them and queuing to get access to the machine. I guess on a modern PC one could easily serve a thousand or more busy users today, but hardware became so cheap, that we can waste all these precious resources on a single user who enjoys playing Quake with a rate of 200 frames per second.
As the PC and graphical terminals came up, some kind simulation of what the terminals were for the old machines was needed and this substitute is what the X-terminals are now. Still they're communicating over some sort of serial line with the host, to allow running all the programs which were made for earlier terminals.
As for comparing with the other X-terminals. Now, these are all good programs, and especially in the beginning of Konsole, I was very happy that they existed at all, taking much of the burden from me. They were simply a fallback for the users in case I did something wrong with Konsole.
Perhaps, Konsole is just a bit more advanced in some minor respects, especially fonts and color schemas, although these are configurable with the other X-terminals, too. Maybe tight integration with KDE, the session concept and all more or less useful bells and wistles that make Konsole what it is today. Many reductionists moan about "bloat" in Konsole and list transparency as an example. But hey, you can do some nice screenshots with a transparent Konsole, can't you? Konsole is very much a thing of my own personal preference of how a terminal emulation should look and feel like. I grew up on linux with the Linux console as primary surface and I tried to make Konsole be a worthy replacement of it. To this end, I rolled out the Linux font, which costed me about a month of work, I adjusted the color to suit the VGA color scheme, and added the session concept, which is definitely unique, and useful. Konsole even had a fullscreen mode that was pixel identical with the Linux console when running a frame buffer console with the same resolution. It is a pity that this feature broke over the years. I look forward to fix it in the next maintenance round.
When talking about my motivations to start working on Konsole I had several reasons actually. First of all, I was looking for an example project to learn coding for X11 and Qt. Second, I really wanted to contribute to the existence of what one could call a desktop for Linux, which did not exist at all in the beginning of the KDE project. A desktop for Linux can be credited to the KDE project, no doubt. Without any wrong intention I can say that the GNOME project was only reactive at the time it was founded. A desktop for Linux was desperately needed, remember that MS Windows 95 was already out for two years at that time and was ways more advanced then anything that Linux could offer (besides X11 which is still technologically superior, though it could need a huge step forward). Third, I simply loved the Linux and freeware stuff so much, it made me feeling like standing in a warm rain and I wanted to give something back. Fourth, I was somehow needing a better X-terminal, one as nice as the Linux console. So, all in all, there was a lot of motivation for starting this project.
How did you pick up the knowledge for programming?
I studied computer science in Darmstadt and Hamburg, and I'm working as a self-employed professional programmer since 20 years now. I work mostly in the UNIX environment, but I did a few things on MS Windows, too. Just enough to confirm all my bad Windows preconceptions. Windows is really worse than its fame. Since many years I'm doing Linux all the way now as well both professional and private.
Do you get any financial support for Konsole?
No, not really. I did a few adoptions of the core of Konsole for some special applications. After these, I can say, the work on Konsole was at least partially payed back, which came as a sort of suprise to me. For me, getting a few bucks for it is just a matter aside, i did never intend to get money for it, but I did it for fun, and I wanted to do something good and also because I needed a good X-terminal myself.
How active are you developing Konsole? What are your future plans for Konsole?
Well, as I already mentioned, I'm sort of retired from active Konsole development, but since long I plan to do a maintenance round to pull a few things straight.
I don't think I'll personally be able to push Konsole much beyond of what it is now, but since you asked, I could mention a few things I considered pending.
- Completion of the unicode support. This is not really a topic for Konsole itself, but actually of the CLI programs. Mostly text-utils like grep, sed, and all the stuff that has something to do with regular expressions. This stuff does not work well with unicode.
- Integration of CLI programs with session management. Session management is independent of the GUI, so CLI programs could take part of it, but they don't. Imagine a bash or a mutt or an mc or vi coming back where you left them when you logged out.
- Internationalization. I was in contact especially with Asian developers, but doing support for Asian scripts or bidirectional scripts needs more understanding of how they are used in a console than I was able to gain.
Do you have a favorite tool under KDE besides Konsole :-) ?
Sure. Clearly Konqueror and KMail. Harder to notice, but always present, kwin and kicker. And of course, the very important tool collection which you can find under the game menu.
Konsole was published under the GPL. How do you think about "Open Source"? Have you never thought about distributing your software commercially?
How I think about "Open Source" strongly depends on the respect I think about it. If the respect is "Closed Source" I know from my practical experience, that working with "Closed Source" is hell on earth. In respect to freeware, I clearly prefer the latter. Yes, I do believe freeware has something to do with freedom, and "Open Source" is in this respect nothing but water poured into delicious wine. Perhaps in the good spirit because pure it might be too strong for some people.
The "commercial" question is more difficult to answer, especially if you have a narrow interpretation of it. Have you ever considered that releasing the software under GPL can be a conscious commercial decision? That perhaps, it is already such decision in many cases?
Let me make an example. How many book keeping programs have been written alone in Germany for particular companies, do you guess? 10.000, 100.000? How often do you think such programs have been sold by their producer? How much did they cost to produce, to maintain for the customers? How many different book keeping programs does a society need? If you're one of the companies who ordered such a program, would it be "commercial" to release the source under the GPL and share the cost of production and maintenance even with your worst competitors?
Another example, just like the first. How many programs do you think were written for just one customer, are only used by him and, in a likely way written for many others? The sources of such programs just sit in some cabinet and get older. How many hundreds of billions of dollars do you think are wasted this way? Wouldn't it be "commercial" to release these programs under the GPL and start a big big market with service and reuse around them?
Both examples show, that a huge commercial potential lies in a clever construction of source licenses and source reuse. Perhaps, the GPL is one of most clever one ever made, as it helped to create the whole GNU/Linux thing and much more.
How to construct a source license such that a proper utilization pipeline together with a new market is created, is the foundation of the strategy of an enterprise. There are as many answers as there are products. To make up such a utilization pipeline is something for the clever, not for the "all our source is our secret" kind of guys, who simply have _nothing_ to hide, really. Take Troll Tech approach for example, which clearly is one successful commercial approach for a library style of products. Oh, and do you perhaps believe IBM's, Oracle's, SGI's, Sun's or Novell's contributions are any but for charity?
How do imagine is the "Desktop of the future"? How far are we still away from that?
Seriously? I'm not good in clairvoyance, but there are some interesting directions, I see anyway. I hold the ksvg work for very important, especially when it integrates full scripting. Some cracks in the timber work of the Xfree86 lately sounds pretty promissing for me, too. Another of my hopes is, that we (the freeware movement) finally manages to attract artists, graphic designers and musicians, who might deliver a work of likely quality and level of integration as we did as software authors. Yes, a future desktop could be all singing and dancing, perhaps, but did i mention, that I'm not good in clairvoyance?
The "Desktop of the future", if any, is unimaginable, I guess, and might come as a big suprise to anyone making silly predictions, like those, that I just tried.
How does your hard- and software look like, that you work with?
Hardware always two generations back, the used software is the newest Debian unstable since 3 or 4 years.
Please talk a little about yourself - what are you doing professionally? How do you spend your spare time?
I became 42 three years ago. Professionally, I'm self-employed working as a consultant and developer. I'm doing product development as my core business since about 10 years. I'm hoping to develop and sell a few products myself the next years, perhaps as freeware, but this remains to be seen. I was working abroad for some years, and travelled a lot professionally, but right now, I enjoy staying in Hamburg.
I'm a fanatic programmer and therefore I spend much of my spare time in front of the screen. I do a little in culture like going to operas and exhibitions, I'm trying to learn the piano, I love reading, long walks and good meals. I have some political and social interests aside. Oh, and I love many and long holidays on warm sunny islands, but I do definitely get too few of these.
Lars Doelle can be reached by email at lars.doelle@on-line.de. The interview of "Application of the Month" Konsole is conducted by Andreas C. Diekmann.
You can also check out the overview of Konsole.
About this site | RSS | Last updated: 05:07 Sat 05 July 2008| KDE is a trademark of KDE e.V.