KDE 4 .. or the KDE Workspace?
What these blog entries are usually comparing is not 'KDE 4' with 'GNOME 3' but two of the KDE 4 workspace components, Plasma and KWin, with gnome-shell. Little more than that is compared in most of them when the topic is 'KDE 4 or GNOME 3?'. This is unfortunate because KDE 4 is a lot more than just the KDE Workspace, which is just one product that comes from KDE, just as GNOME 3 will be more than just gnome-shell.
A primary example is the KDE development platform. It consists of KDE's libraries built on top of Qt, Akonadi, Nepomuk/Strigi and others and represents one of the most important products we create. This platform started back in the 90s as a means to an end: getting the KDE desktop workspace functioning and sharing code and functionality efficiently between KDE apps in a way that guaranteed some consistency. These days, while it has kept this same set of purposes as an important part of its mission, the KDE development platform has taken on a much bigger role and a life of its own.
I'd love to see some thoughts that extend beyond Plasma/KWin out there and look at things such as the maturity of KDE's development platform compared to what others are offering right now or, as in the case of GNOME 3, in the near future. I'm really excited how we have Nepomuk shaping up, for instance, or how in the last few releases we have seen integration of KAuthorization which gives us access to PolicyKit (including the upcoming polkit-1 release) on Linux using the same 'hide the system level API details' strategy as Phonon, Solid and others which in turn has made the polkit-0.9 to polkit-1 transition painless for KDE applications. We have good, stable libraries built on really exciting technologies. (Just look at what's going on in Qt these days, or Akonadi!)
There are also other products that KDE projects churn out at a remarkable pace as well. Some are released in categorical packages, such as KDE Games (which just got another neat game the other day, a Bomberman-style game which stole some of our time last night here in the house ;), KDE Edu or KOffice; others are released as stand out individuals, such as Amarok. These are all independent projects within the KDE umbrella and most if not all of them are considered part of 'KDE 4'. They can all be run independently of the KDE Workspace and stand on their own merits.
What I'm saying is that if you lift your eyes up (or cast them further down, as the case may be), KDE 4 is a lot more than the KDE Workspace and we should be sharing those other bits with people too.
'You say you want a revolution'
The other point that keeps coming up is whether there is too much, too little or any actual revolution out there in the workspace. Regardless of what people think of where gnome-shell's approach lands on that scale, there's a subtlety to the Plasma story that I fear may be being missed and it makes me simultaneously beam with pride and cry tears and sorrow. ;)
To be honest: I don't believe in revolutions, because revolutions don't exist except as a story telling mechanism. A 'revolution' is a story about an evolutionary series of events with some careful editing: it starts at a random point in time which then gets called 'the beginning', skips most of the middle bits and then ends at another point in time convenient to the storyteller that gets called 'the exciting end!' If you track beyond the beginning and ends and include all of the middle bits too, it turns out all 'revolutions' are actually evolutionary sequences presented in a much simpler (and fun to listen to) way. So maybe we should be talking about the value of different possible evolutionary tracks and what they can or will bring us; talking about revolutions can be left for people retelling our story far in the future?
In any case, several writers have noted that 'Plasma' offers a pretty stock desktop with a whole bunch of nice improvements. I would agree there: we've improved the system tray, notifications, widget handling; we've removed a lot of assumptions like 'this is the one and only KMenu' or 'yes, you must have at least one panel!'; we've added things like a dashboard overlay and multiple widget layouts, extensive SVG based theming and the ability to extend your panels and desktop not only with C++ but also with HTML, JavaScript, Ruby, Python, GoogleGadgets, MacOS widgets and E17 widgets; we've improved workflows associated with device hotplug, application menus, etc. Those are certainly evolutionary and not revolutionary. (Which reminds me, I need to do a new 'cool things you can do with KRunner' screencast..)
Beyond what's quite clearly evolutionary, we're introducing things like remote widgets which lets you share and move components over the network between devices without any difficult configuration or set up. A couple of clicks and away you go. We're finally merging Plasma's Activities (multiple widget layouts) with Nepomuk's store and beyond into applications and working on an improved Activities management system. These are a bit more than the usual breed of evolutionary features.
Even then, there's something much more critical to understand here: when I set out to tear apart kicker and kdesktop, the foundations of KDE 3's workspace, I did so with the idea in the mind that this should never need to be so painful to achieve again.
An epiphanous (is that word?) moment for me came in the realization that the current desktop metaphors and ideas are so deeply entrenched in today's users that they can not just be ripped out wholesale and replaced. At least not if you expect any great number of people to actually use it on their desktop or laptop computer. We can evolve it, but we can't just replace it wholesale. But it will evolve and our framework must be able to keep ahead of that curve. That means that even on the traditional form factors of laptop and desktop, the days of building a purpose-built 'here's your workspace' system and expecting that to last for any extended period of time are over. The workspace needs to be flexible; it needs to be able to adapt to ideas we haven't had yet; it needs to be able to have a ninja drop into the middle of it and make lightening fast changes to one area to bring that one area forward to the next necessary stage of evolution without running into walls or causing problems elsewhere. It needs to be something completely different than what it is today ten years from now .. without ever being completely rewritten.
Another epiphanous moment (there's that word again!) came when I realized that laptops and desktops were not the only form factors we could target and expect to remain successful with. We needed to build a system that could be remolded with minimal effort and maximal flexibility to fit new places and fit them well. Plasma Netbook makes use of well over a 100,000 lines of code written as part of Plasma for the laptop/desktop space while, by adding a few thousand of its own, offering a user interface that is crafted specifically for the netbook form factor that offers very little in common workflow-wise with the desktop. That means we get compatibility with your desktop/laptop 'for free' avoiding the separate silo effect, have invested minimal efforts by changing or adding only what we feel is needed or wanted and can provide something that is both familiar (due to having access to similar features as Plasma Desktop via widgets like microblogging or Google Gadgets) and specially crafted at the same time.
Being able to do this while also being able to deliver a nice and traditional desktop workspace, despite none of that being embedded in the DNA of Plasma itself (it's all in plasma-desktop and a few desktop-specific Plasma plugins), while keeping it all neat, tidy and sane (hacks-be-gone!) has not been the easiest thing to pull off. So I'm really proud when people look at plasma-desktop and observe that it's a nice evolution over what was there before. I also cry a little when people don't realize that there's more to the story. :)
Now, I don't know of a single other serious project out there (in terms of 'shipping releases meant for actual production use some day') that is able to pull this same thing off. Do you? Every other workspace project I know is either hyperfocused on one form factor or follows the 'here's a toolkit, now rewrite everything above the toolkit for every target application' concept, which is what we've always done in the past.
While designing the fundamental ideas that would later be built by myself and the amazing team of people I get to call my team-mates into this thing called 'Plasma', an evolution that doesn't lead to dead ends and lets us sprawl with ubiquity across the computing landscape from device to desktop, from media application to multi-user interaction and wherever else we want to go.
So while we work on the implementation realizations, such as fancy desktop grid effects and what not, we are doing so as part of a big picture that is inclusive of where we've been, where we are and where we may want to go in the future.
Keeping an eye on others without becoming distracted
As a footnote to this entry, I thought I'd share something related but not strictly on this topic that we keep running into with Plasma. We do keep eyes on what others are doing, whether that's Microsoft, Apple, Google, Intel, Nokia, Enlightenment, GNOME or people doing purely academic research work. This helps give us some perspective and reality checks from time to time. It also helps us get some good ideas we may not have come up with on our own. At the same time, we're doing new things in new ways as well, and so while we watch others we also have to remain on guard that we don't end up becoming distracted from our own mission. There's a fine line between keeping tabs on the other cars in a race and chasing their light lights. It's interesting to observe how easy it is for the human mind to start doing the latter. Perhaps that's just part of being a social species?"