Previewing KDE 4

Recently at a Linux show, John Littler saw a preview of a new version of KDE running on a KDE developer's laptop. The interface looked cleaner than before, and apparently there was a whole raft of new stuff under the hood. John recently interviewed KDE developer Aaron J. Seigo about the forthcoming KDE 4 (due in the fall) and also a little about the recent controversy surrounding the porting of KDE to operating systems other than Linux.

John Littler: The new features I remember include a bucketload of bug fixes, a universal messaging client, and a big cleanup of the GUI. Are there more things that you should mention?

Aaron J. Seigo: For KDE4, there is a lot more than just this. We are:

switching to Qt4, which brings a host of new capabilities when it comes to visuals (via the Arthur paint engine) and application design (improved threading, model/view), as well as having a smaller memory footprint and allowing us to write non-GUI apps that don't require an X server

selecting a new multimedia system (aRts is unmaintained and not providing what we need)

JL: Right. I remember Stefan changed his thinking on that approach. What are the main alternatives now?

AJS: GStreamer, NMM, and MAS. GStreamer looks like the most probable candidate at this point. We'll be:

replacing the desktop and panels with a new application called Plasma

introducing a new set of artwork (Oxygen) and bringing an updated human interface guidelines to bear; we will be making extensive use of the SVG format for these items

streamlining Konqueror's file management and web browsing interfaces

porting our libraries to Mac OS X and Windows as well as maintaining support for our traditional platforms

reorganizing and cleaning up our libraries into components and frameworks for greater developer clarity; this includes new classes for networking and hardware interaction

introducing a standard application automation (scripting) system that centers around ECMAScript (aka JavaScript)

JL: I think one of the general aims has been to make the whole thing "lighter" and faster. In achieving something like that in a reasonably large codebase, what sort of methods do you use?

AJS: There is no single silver bullet, nor even any really simple answers. There is work going on at pretty much every level, including things such as:

improving fontconfig (which now uses a shared memory cache so that font information isn't regenerated for each application, which is an expensive operation)

improvements to the GNU tool chain (linker and compiler optimization)

improvements to X.org's acceleration architecture (such as RENDER and COMPOSITE improvements and EXA)

improvements to Qt's memory footprint (a lot of effort went into making QObject and QWidget, the base classes for most of Qt, lighter in Qt4)

the Qt4 paint engine Arthur, which allows for hardware acceleration where available

more fine-grained libraries so that our non-GUI apps can link in just the bare minimums required (similar for other groupings of functionality such as networking)

improvements to KDE libraries' footprints and speed

redesigning applications so they are able to be optimized better. For example, the desktop and panels are being merged into one app, which also provides for functionality now only available in Superkaramba. The resulting design allows us to much more efficiently share application launch, graphics, and geometry coordination data while also avoiding the overhead of multiple processes where just one will do quite fine. This will allow people to have quite flashy desktops (or even simple plain ones) that are snappier and take fewer resources.

Add to this the hard, thankless work of old-fashioned profiling and optimization, which we do with each release, and it's a promising recipe for success.

JL: In the early days of KDE there seemed to be a definite attempt to make Windows users feel at home. Do you think you're traveling away from that now?

AJS: Windows users certainly felt (and still feel) at home, but that's different than that being an explicit goal. We've always tried to present a reasonably coherent and integrated desktop that is well behaved, which is also what people used to Windows have come to expect. Inasmuch as that remains the goal of both KDE and Microsoft, I don't expect there to be any large departures from the phenomenon of Windows users enjoying KDE.

At the same time, we certainly are willing to try a greater number of new things, which seems to be the same with Microsoft and Apple as well. I think this may be due to desktop computing entering a new phase of its evolution and maturing further, combined with the fact that KDE has come to the point where we have a solid base and have on several fronts little place else to go in terms of improvement other than to start innovating more.