I suspect many of you will remember Apple’s adverts a few years back, with the tagline Think Different.
Not think better. Not think world-changing. Think different.
What does “different” mean from the point of view of a user or developer? Different file formats. Different systems. Things that don’t interact. A hundred different bugs in every application. Just ask a web developer what they think about different browser implementations.
Developers get faced with choices between different systems all the time. Why should I use system A instead of system B? Does system A do something that system B doesn’t do, and do I care about that something? If so, then this is an excellent reason to use system A. Perhaps system A does the same thing as system B in every regard that matters to me, but does it better. This is still a good reason to use system A, providing I haven’t already invested heavily in system B.
But “different” isn’t better automatically. From the point of view of a commercial entity, “different” is generally worse by default. “Different” costs money. Is it worth it? You have to justify that, justify why different is better in this case.
In light of this, I have a question for you, the contributing community of KDE. What makes KDE better? What makes it world-changing?
Doing something revolutionary
Let’s make this a bit more specific. Most immediately I’m interested in what KDE has to offer the software industry at large. What is KDE pioneering that would make a company that has historically based it’s business model on web applications built on Microsoft technology, but is now branching into open source because it’s not afraid to follow interesting trends, sit up and pay attention? Consider a target audience of someone who thinks the time of the WIMP interface is over, but that the iPhone is a testament to the ingenuity of graphical designers and not software engineers (and software engineering is what we’re interested in here). Consider the trend towards service-based computing. Consider Google’s dominance.
Think about seamless integration of mobile devices, of reading something at your computer, then having to rush off and getting it onto your iPhone/eeePC/PDA/portable toaster with almost no interaction required. Think of the problem of sifting through the cruft of the intarwebs (cat captions and all) to find that useful nugget of information. Think of how your life revolves around trust networks (who do you ask for advice?), but how poor computers are at duplicating that. In short, think of the unsolved problems in computing.
Is the semantic desktop (cf Nepomuk) a bold leap into the future of computing? If so, how?
Is JOLIE integration into the desktop layer where it’s at? Why?
Will Plasma revolutionise the way we interact with small form-factor devices?
What problems are KDE solving that haven’t been solved before?
Remember, we’re thinking here about why people who’ve never heard of KDE and see Linux as a server OS should be interested in what we’re doing. We’re thinking about why budding young developers who don’t care about the GNU software libre philosophy but just want to work on an exciting, intellectually challenging and world-changing project might jump at the chance to get involved with KDE.
Doing something better
Secondly, why should people (again, who don’t care about the KDE desktop) use our development framework? What makes us better?
Perhaps Eigen is the matrix library to end all matrix libraries?
What can Akonadi offer the world beyond the kdepim module?
How will Plasma make the hoards adore your application?
In what way are KComponents the light side to COM and CORBA’s dark side?
Why should you embed Marble into your application?
How is KDE solving the problems that developers care about in a better way than they have been solved before?
I’m fully convinced that KDE is awesome. I care about software freedoms, and KDE is free. I care about frameworks and APIs, and Qt/KDE beats the competition easily in that regard. But I want to be able to evangelise KDE to other developers who don’t care about these things, and I don’t have the knowledge to do so.
Post your responses in the comments, or put them straight down on my Techbase page. I will try to collate everything there.