A developer's nightmare
January 15, 2003
The various proprietary bits and pieces which commercial Linux distributions continue to add to push their products and grab market share is driving at least one group of developers to distraction.
Says Shawn Gordon, president of theKompany.com, "The current situation is an absolute and utter nightmare."
theKompany.com is a California corporation founded in August 1999 with the aim of developing software for the KDE desktop environment which runs on Linux.
A programmer for the last 23 years, Gordon has an eclectic mix of staff - from England, Italy, Germany, Romania, Russia, Ukraine and the US - only one of whom he has met.
theKompany.com was initially into desktop applications but has turned its attention to the embedded market since 2001 and has just released a VoIP product, tkcPhone.
Gordon was interviewed by email about the company, his work and general Linux issues.
Let's have a brief idea about theKompany.com.
I myself have been programming since 1979, but my work has been primarily mainframe and Windows client/server work. I can code a dozen languages but never did much C++, so I decided to take the plunge and hire some folks. My first official, on the books employee is still with me, Catalin Climov out of Romania. He and I worked for a couple of months and he recommended a friend, who I hired as well. I ended up hiring a couple more friends of his in Romania and they've all been great employees. I went on to hire people as I found some folks in Sourceforge that were working on projects I thought were interesting, and then we started getting tons of resumes and other really good proposals.
In all this time we've fired one person and had two people resign. We have enclaves of folks in most of these countries so they can get together and work, but I've never met any of them but one who happened to be in California on his holiday last summer and stopped by (it was nice to meet one of them finally). We mostly hire by personal referral now, but we look at every resume and respond to them the same day they are sent in typically. All of our employees telecommute and keep whatever hours they want, we have Monday morning (for me) meetings in IRC every week to discuss ideas, problems, BS, strategy and the latest in donkey technology. Not everyone has good English, I'm sure half the guys couldn't speak it on the phone, but they do good written, so it works out better than having everyone in the same room at the same time for the most part. Some of our technology has been developed to accommodate this virtual company.
Do developers like you feel marginalised after Red Hat came out with its 8.0 release and relegated many KDE apps to second best in its choice of desktop applications?
Well, let's look at the facts and then we can look at conjecture. We know that Red Hat has never been a fan of KDE, nor has it ever supported KDE. As I recall, they financed the original work on Gnome and despite what a large company they are, there was only one KDE advocate at the company who quit last summer and has since made a forked version of Red Hat called Ark Linux if I recall. We also know for a fact that Red Hat sufficiently modified Xft, the Qt libraries and KDE to essentially make RedHat 8 an unsupported platform for Qt. Trolltech has since managed to apply patches to resolve the problem, but it affected us as a software vendor and it was three or four months for the fix to arrive, just in time for the beta of RedHat 8.1.
Their work in Red Hat 8 can be taken one of two ways. You can look at it and say "Oh my, this is wonderful how Red Hat is being a unifying force and merging these two divergent desktops", or you can take the other angle and say "RedHat is the 800 pound gorilla, for many people Red Hat is Linux and they have now sufficiently crippled KDE so that anyone using it will get a bad taste and not return to it". I don't know what the truth is, but I know I don't care for what happened with Red Hat 8, it was really a nightmare for us as a software vendor to adapt and support it.
As commercial Linux distributions keep adding proprietary bits and pieces in, doesn't it make things more difficult for you to cater to one and all?
The current situation is an absolute and utter nightmare. When we started three and a half years ago you could make an RPM and pretty much without exception any RPM based system could use it. Now not only are RPMs not compatible between distributions, they aren't even compatible between versions of distributions. Here's a list of the packages we have to make for a single program for it to work properly across linux distributions without making 100MB static builds:
- gcc 2.95 static and shared
- gcc 3.2 static and shared
- RedHat 7.2, 7.3, 8.0
- Mandrake 8.1, 8.2, 9.0
- SuSE 7.3, 8.0, 8.1
- Slackware 8.0, 8.1
- Caldera 3.1
Now add Debian and PowerPC to the mix. At the moment Debian is almost hopeless because it is so outdated as a desktop OS, it's great for the server, but they are still on KDE 2 and only just started looking at gcc 3.2 the other day. I appreciate that they don't update every six months, but it's just too slow to update and because almost everyone is finding their own version of KDE3 for Debian and updating their libraries, it's pretty hard to make a package that will work on Debian since no one is running anything standard.
Add to that distributions like Xandros and Lindows who have further customised it and it just becomes unmanageable. This is a big reason why we have static builds of our Qt apps, but it's not feasible for a KDE app.
Some people in the Linux community tend to feel that KDE is in a race with Gnome which it cannot win - despite the fact that it is a more mature desktop environment. Your comments?
Well, I've been making this argument for a couple of years now. Yes, KDE and Gnome are in a race. Yes, in my opinion KDE is a far superior technology and more mature. Unfortunately or fortunately, depending on your point of view, the main KDE developers aren't interested in world domination, they'd keep doing this if they were the only ones using KDE. There is no organisation making deals with HP or Sun to use KDE. The KDE League has been an awesome failure from its mission statement. It's very frustrating to watch. At the end of the day it's going to be the same answer its always been, applications. End users want to have a specific application. The Gnome or KDE user experience is not terribly dissimilar to the average user to make a compelling argument on its own.
I see something of the traditional US vs Europe enmity in the whole Gnome vs KDE thing. Is that a far-fetched comparison?
I totally agree. KDE tends to be very passive. I have a number of core developers that work for me or have worked for me and I've queried them on this topic and your previous question and that is how I've come to these conclusions. Whenever there is a problem or a problem individual, the standard response is "We'll just ignore it and it'll go away". My experience is that this is a very European attitude, I don't know that you can say there is enmity because I see core people from both camps talking and working together all the time, the feelings between the bulk of developers in both camps is very cordial, they are typically respectful of each others' abilities while maybe not agreeing with their approach.
Have you ever contemplated developing applcations for the Gnome desktop?
When we first started out the idea was to abstract the user interface to the point that we could make it KDE Native or Gnome native and we built technology to do it. Our Kapital product originally had this ability, but our own decision was that technologically the KDE paradigm was far superior. About two years ago we made the decision to go 90 percent Qt only with our apps, so this makes the Gnome/KDE distinction fairly unimportant. Qt is just fantastic overall, we ported our Kivio mp to Mac OS X in a day, for example. Certain things like Kapital and one or two other projects we've got in the pipe make sense being tied to a specific desktop and for that we've stuck with KDE.
You started out as a venture to make Linux/KDE useful/attractive on the desktop to corporate users. Now you appear to be concentrating more on products for the embedded market. Is this a correct perception? If so, why has the change occurred?
Actually we founded (the company) with one product in mind and to have it be a KDE app. We've modified our plan as things have evolved, we have about a dozen desktop apps, most running on Linux, and Windows and a few on OS X. In late 2001 the opportunity for embedded Linux came up and we decided to give it a shot, we were only going to do a few applications, but as we got into it, frankly it was fun doing these apps and before you know it we've got 25 apps. What's exciting is how we've leverage a chunk of this technology between the desktop and embedded, let me give you a few examples:
Our tkcFTP app on the Zaurus uses our FTP engine from our QuantaGold and Kobol products. tkcJabber is a port of our desktop tkJabber plug in for our Aethera project, tkWhiteboard is a desktop port as a plug in to Aethera from tkcWhiteboard on the Zaurus. Our new VoIP app tkcPhone will be ported from the Zaurus to the desktop and our Rekall database RAD tools runs on both the Zaurus and the desktop. There is a lot of technology being re-used in a lot of places. We probably only have 15 percent to 20 percent of our staff on embedded apps full time, but it's an exciting opportunity and one we will continue to pursue but not at the expense of our desktop apps.
How profitable is thekompany.com?
Surely you jest :). Last year was good for us, our best yet, we're hovering at the break even point basically. Keep in mind this company was founded and funded out of my own pocket, and I'm not, nor ever was, wealthy, there are no outside investors. In 3.5 years we've built up almost 40 applications running on four platforms with a team of people I've never physically met. It's a little frustrating to see companies getting funded with millions of dollars for just ideas that never pan out when we have a proven track record, but then again we've never actually tried to raise money, we've built it all on the sweat of our collective brow and some personal sacrifice, but we all believe in what we are doing, and enjoy the process and our friends to the extent you can be friends with people you've never met and have never talked to on the phone.