Scratching an itch: a KDE developer speaks

By Sam VargheseNovember 2 2002

The K Desktop Environment (KDE) project was founded in 1996 to provide a contemporary desktop environment for Unix workstations.

Several hundred developers are now involved in the project which produces one of the most widely used desktop environments. There are numerous applications as well and the project has grown beyond what many thought it would.

Sirtaj Singh Kang is one of the many developers. Taj, as he is better known, is one of two people who are nominated as official KDE spokespeople in Australia.

Taj, 27, is from India but is based in Melbourne. He was interviewed by email.
");document.write("

advertisement

");
}
}
// -->

How did you come to be involved with the KDE project?

I've been interested in computers for a very long time, though I
was exposed to Unix only when I came from India to study software
engineering in Melbourne. While I recognised that it was probably not
as newbie-friendly as it could be, I was impressed by the underlying
simplicity and the solid, flexible environment to which it led.

Around 1995, I used Linux to implement the university's time-tabling
system as a Web application. I was very happy with Linux and the various
tools available, it made for an easily maintained, programmer-friendly
environment. Again, however, I had had experience with GUI programming on
some Windows-based RAD tools and noted that the available GUI development
tools were not up to scratch.

QT and KDE arrived and filled that need for me. I had the basic thirst
for knowledge and programming experience, so before long I was neck-deep
in KDE, hoping to bring a nice GUI environment to Linux.

Why free/open source software? Why not the more financially attractive world of proprietary software?

When I was around 14, my dad bought us a 286-based computer. It
was quite expensive. We weren't poor by any standards but this stuff
was still a luxury. Still, for me to get all the tools a kid needed
to learn programming cost as much again, even just to get started.
Given that software is infinitely reproducible practically for free,
there is really no excuse for this especially now that hardware has
become so cheap. Give interested people access to software, allow them
to improve and redistribute it - that's the way for computing to really
make a difference.

This is, of course, just a reason that is important to me. There are dozens
of other reasons that free software is important, but there are many
people who have already explained them better.

There will always be a market for proprietary software, most likely in
more specialised niches where there is less motivation for people or
businesses to solve the problem for themselves. Incidentally in the last
few years I've been able to feed myself solving exactly those sorts of
problems, mostly in financial software and workflow automation.

I work on free software in my free time. Like the car mechanics who
work on their own hotrods in their spare time, it is in my professional
interest to understand and improve on my available toolset. It makes me
a more marketable employee.

What kind of hierarchy exists in a big open source project like KDE?

There is no formal structure, but there are a lot of processes and
automated systems in place which make up for that in organisational
terms. Anyone can become a KDE developer simply by writing code
or documentation, translations, artwork, Web pages, whatever. Each
developer has access to the development infrastructure around KDE, such
as the software repository, mailing lists and the bug tracking system.
Documentation repositories and archives are open to everyone anyway.

The mailing lists are the nerve system of the project, people organise
themselves into sub-project hierarchies simply by communicating with
each other on more specialised lists.

Why was KDE started? What was the initial strategic direction of KDE and why?

As I mentioned earlier, lack of a platform for GUI-based applications,
specifically based on C++. I like C++ and have always maintained that
it makes a better GUI programming language than C without any noticeable
performance penalty. The arrival of the QT toolkit motivated me to join
KDE, and I'm certain it was the direct reason KDE started.

So I guess the goal of KDE from day zero was to provide the application
development framework and basic apps, using QT for its GUI and general
utility toolkits. Over time the apps vs framework line has been blurred
but generally the work on KDE can be divided into these two areas. So
many applications are based on the KDE framework that it was natural
to provide it as an integrated environment for users, productivity tools
and all.

Who decides on the strategic direction which the project takes?

Bad designs and code get replaced by better ones if they prove themselves
and stand up to scrutiny by other developers. The closest thing we have
to a master plan is a release schedule, no vision statement or anything.

Generally, decisions made on sub-project lists are respected by other
developers, as long as they are consistent with the overall direction
of KDE, again decided by discussion on the more general mailing lists.
More experienced and dedicated developers begin to stand out over time
and their opinions and design decisions become more generally respected.
The more formal positions of release coordinator etc are purely on a
volunteer basis (though peer pressure is liberally applied), and are
normally people from this group. There are a handful of developers who
get paid to work on KDE fulltime, so a lot of heavy lifting comes from
them as they have the resources to do it.

How are the communication lines maintained? Ever have a meeting where most of the developers have met?

The mailing lists and repositories are the guts of the project. Normally
decisions get resolved quickly as long as someone is already willing
to do the actual work involved. There are always issues that come up
repeatedly, of course, they might be small things like single-click vs
double-click and the discussions on the lists can sometimes get heated.

Face to face meetings are certainly important. KDE has sponsored developer
meetings quite often, perhaps once or twice a year of varying attendance,
though there is a group in Europe that meets very often. KDE folks also
turn up at conferences everywhere, allowing us to keep in touch with
other free software developers.

KDE has faced some flak from so-called purists for its use of the QT libraries. What's your take on this - both the purists and use of QT?

Well, speaking as one guy who understood the licensing problem and tried
to ignore it, I think my enjoyment of using QT and the direction in which
was headed allowed me to ignore the purists, even though it certainly hit
many developers' motivation for a long time. I was comfortable with its
original licensing terms, despite the GPL making it hard to write GPLed
code that used QT. There were only one or two KDE applications that were
actually using someone else's GPL code, that got fixed pretty quickly.

In the end, everyone breathed a huge sigh of relief when QT went GPL. I
still think it was pretty generous of Troll Tech to do that. We've paid
them back by providing lots of exposure and a sizeable number of QT
experts. Some of them now work for Troll Tech and work on KDE in their
spare time. This allows a really healthy feedback loop between QT and
KDE without the project having to maintain a KDE-specific version of QT.

Commercial distributions of all kinds now decorate the landscape. Your take on this growth - good, bad or ugly?

No one distribution is going to fit everybody, Linux for the pocketwatch
is going to have different requirements to Linux on UltraSuperCluster
or Linux in Space. Each distribution will find its niche somewhere in
there, or will be absorbed by other distributions.

Right now, it's just fun to watch their different approaches to similar
problems. The good thing is that most of these distributions give away
large parts of their custom code, so their work will live on regardless
of what happens to them. This means they can and do borrow ideas from each
other and all Linux users benefit. Most free software will run unmodified
on any of these distributions so there's no massive portability issue.

Some figures in the Linux community - notably journalist Nicholas Petreley - have called for a merger of the two projects in order that all the effort could go into defeating Windows on the desktop. Your reaction?

I don't think it's particularly important what development methodology
or programming language an application was developed with. I certainly
don't agree that there should be exactly one application of a given
type. What bothers users is that the user interfaces of the applications
from either project don't mesh perfectly with each other. This is a real
problem, though it's being addressed by both projects and both feel free
to borrow code and designs from each other.

For example, common standards are already in use for features like
documentation, metadata, file formats etc. More commonality will emerge as
both projects mature and common abstractions are identified, eg scripting
interfaces. I don't think either project has it perfect yet, certainly
it's too early to abandon either direction of development completely.

This parallel development using different codebases to solve similar
problems is one of the luxuries of computer science that only free
software development can afford. It would be silly to deny ourselves
this advantage, we're not bound to the same deadlines and budgets.

How much of your time goes into KDE work? How do you stay motivated?

Well it's simple, good tools help me get more work done. I've used Linux
as my primary platform almost exclusively for the past seven years,
so much of the "free" code I've written is to improve the things that
bother me. Most of the successful projects in KDE were started by people
who wrote an app for themselves and continued to use it. There are a
number of things that motivate free software developers, but this one comes
up again and again.

I spend between zero and perhaps 24 hours a week working on free software. I haven't done much coding directly for KDE lately,
but for about a year on and off I've been working on some UML-based development tools with direct application to KDE. This is stuff that I
see as useful for the kind of work I do, so it's the "scratching an itch" factor again.

Did you ever expect that KDE would get this far?

From the inside and watching the rate of development, it was pretty
obvious. The project gathered a huge amount of momentum after the first
year. We've been lucky to have required ony one major overhaul of the
framework (between KDE 1 and 2) so far, so application programmers haven't
had the ground changing under them for too long. Still, there have been
and continue to be some growing pains, now that the number of developers
and users has been growing so quickly. The infrastructure requirements
of the project have been increasing steadily since the beginning.

What future do you see for the project?

The KDE component system is already used across KDE and will continue
to improve integration of the desktop and various applications. Editing
and navigating between documents will become more seamless and users
will have to worry less about which particular application they need to
start next. The desktop will become a particular user's preferred view
of their information.

Apart from the growing number of languages from which developers can
access the KDE framework, there is a lot of cool stuff coming from the
folks working on the scripting architecture, based on the component
and distributed object toolkit. Along with KDE's network awareness,
this makes it a great way to create rich client-side interfaces to Web
applications. The development tools are getting better all the time so
it won't be long before KDE is the way to build the Web applications
themselves.

And finally, what do you think about the level of self-examination within the free/open source community as a whole? Too much navel-gazing? Too many bigots? Or do the words "open" and "free" really mean a change in thinking and attitudes?

There are always people who would rather talk about it than actually help
with development. Users must understand that they are an important part
of the free software community. There is a certain level of responsibility
they must bear if they want their software to improve.

It doesn't take much, even a decent bug report with enough information
for a developer to reproduce the problem is great. That sort of small-fry
stuff is infinitely more useful than yet another rant about what free
software needs or how it should be developed. If they are willing to
help implement the features they want, that's perfect. Even if you are
not particularly tech-savvy, there are things you can do, such as fill
in missing bits of documentation and send it along to the developers.

Once micropayment over the Internet becomes more accessible, people can directly fund the development of the features they want. Until then, it
is not realistic to assume that there are people out there just waiting to write software the way you want it.

The second person listed by KDE as an official spokesman in Australia, Martin Jones, was also approached for an interview, but turned it down, saying "As you may have noticed by my slow replies, I'm not very active in KDE anymore. I follow its development, but I am not involved as a developer. I'm afraid I wouldn't make a very good subject for your article."