KDE 4.0 is very exciting, though not yet production ready, and that shows with this weeks' release of the first beta. It's a beta release for a major software project (using the traditional definition of beta, and not Google's it's-production-ready-but-we-don't-want-to-support-it-officially-yet definition of beta) and thus, it comes complete with bugs, crashes, missing artwork, and other goodies one would expect such as new code, new technologies and fun toys. For those of you who are unaware, KDE is one of the largest open source projects ever conceived. A major milestone release such as 4.0 is a long time in the making. Here follows a number of things to look forward to for those of you brave enough to try this early beta:

Qt 4.3: The entire KDE project has been ported to use Trolltech's Qt 4.3, which in itself is a major undertaking. Qt has always been the foundation of the KDE project, and KDE 4.0 takes advantage of many of the new technologies that this powerful C++ toolkit brings. One more notable improvement to Qt is the widget painting system which is now fully anti-aliased, with support for SVG graphics, and a new canvas to provide nearly unlimited power to those doing layouts. The improvements that happened in Qt 4.x are numerous to the point where they would warrant a journal article of their own just to describe them, but one of the most important is that Qt is now modular, meaning you can now write terminal based Qt applications without having to link to all of the higher level graphics code to write a simple utility. This separation of the backend classes from the graphical components has spilled over into KDE as well, with kdelibs being heavily reworked to allow the use of things such as KIO Slaves (KDE's flexible, network transparent protocol handling) at the command line, if so desired.



KSysGuard with SVG graphics KSysGuard with SVG graphics

Portability improvements: the KDE 4 libraries and applications are no longer tied to a specific platform. KDE has always had the goal of maintaining portability across UNIX and UNIX-like environment, but even there it has had a dependency on X. The main cause for this dependency was that Qt was only available under the GPL for the X platform. Since Qt 4.0 was released some time ago, Qt is now available under the GPL for all four major platforms (X, OS X, Windows, and embedded framebuffers). This releases most of the KDE code from its requirement on X, except for those components that are inseparably linked to that windowing system. KWin, the screensavers, KDM, and a few other KDE components including the new Plasma workspace environment will remain X only; applications like Konqueror, Amarok, Kstars and more will all be portable to a large degree. Ross McKillop has created a visual tour of how to get KDE up and running under OS X, and a similar effort is underway for Windows.

A new build system: since KDE was founded in 1996, it has used the autotools build system to construct the whole project. However, the project had to make a number of extensions to the system in order to allow KDE to compile many of the autogenerated files, and it got to the point where a simple KDE "Hello, World!" application would ship 200kb of build system. This complexity made entry into the KDE programming world somewhat daunting for new programmers, and the build system for the core components of KDE was only really understood by a select handful of individuals. For 4.0, KDE has totally dumped autotools in favour of the CMake build system, which is easier to use and understand, but also introduces a number of portability benefits. For example, CMake is able to automatically use KDE's build system to generate project files for a number of IDEs, including KDE's own KDevelop, commercial IDEs such as Visual Studio, and many others..

New multimedia framework: Since KDE 2.0, KDE has relied on the aRts multimedia system for decoding audio files and related activities. However, aRts was not an ideal solution, being somewhat unmaintained as well as making the coding of multimedia applications more complex than need be. By the end of the 3.x development cycle, most of the more powerful multimedia applications were circumventing aRts and using audio libraries such as Xine, Mplayer, or Gstreamer directly. This meant that each KDE application was independently reimplementing their multimedia functions on top of a lower level library, which is not ideal when it comes to code reuse. For KDE 4.0, the developers have introduced a new multimedia API called Phonon that simply acts as a layer that sits on top of the lower level libraries such as Xine or Gstreamer. This API makes it trivial to use audio or video from any application you can think of, and future proofs KDE against changes in the underlying multimedia libraries. An application can now simply tell the API that it wants to play a sound and Phonon will make the appropriate calls to whatever backend is available on the system, be it Xine or Gstreamer or similar on UNIX, to Quicktime on OS X, or DirectX Audio under Windows. The Xine backend works on the UNIX systems including OS X, and is likely to be the best supported backend for KDE 4.0, although others will likely be available. There are rumours within the community that the Phonon API is so desired that a version of it will be making its way into Qt in future releases.

Oxygen artwork and theming: KDE 4.0 is getting a complete facelift, and much of that work is visible in the beta, albeit in a somewhat unpolished state. The artwork is now fully vector based wherever possible, including a new set of icons from the Oxygen team, new graphics for the KDE Games and KDE Education application sets, new cursors, and more. Also included in this beta is early code for the new window decorations and widget styles, which are still being heavily revised to give KDE a professional yet visually appealing default appearance. One of the benefits of Qt 4 is that widgets can now be themed using a CSS-derived stylesheet. KDE is adopting a theme creation program which should allow the KDE artwork community to create a wide array of new and exciting appearances with ease.

A new workspace: one of the most anticipated projects within KDE is the Plasma workspace, which replaces the existing desktop metaphor that has long existed within KDE. This new project is included in the beta, but would be considered one of the more unstable portions at this point as it is still under extremely active development. When complete, it will replace the existing KDE desktop and panel with a totally new system that is scriptable, extensible, and should run a wide array of applets (called plasmoids) from task managers to desktop widgets. There is even an OS X Dashboard widget compatibility layer that is rumoured to be in the works for a future KDE version. In this early beta, Plasma is usable, but barely. The full functionality of the existing panel has not yet been fully replaced, so there is a notable gap there. However, it already replaces most of the desktop functions, including things like the run dialog, task manager, screensaver activation, and more.



Plasma Plasma

Composite effects: KWin, the window manager, has seen work to bring it up to par with the effects that people have come to expect from compositing window managers such as Compiz Fusion. The infrastructure and some effects are now in place, assuming your video card drivers support OpenGL and X.org's Composite extension. One of the main advantages to doing these effects in KWin versus using another window manager is that they are all well integrated into KDE, and the window manager has a sane fail-over mode, whereupon it will deactivate effects on video cards that do not support them, leaving you with a perfectly usable and well-tested window manager. KWin has now seen testing for nearly a decade and pretty much every corner case has been solved. In this beta, many effects are already available, although some may be disabled for KDE 4.0 as the artwork needs to be polished. For example, for the 'burn down' windows effect, the window collapses, but the artwork for the flame itself is still missing.

A new file manager: Konqueror will be back to its previous tricks, being KDE's integrated viewer for the Web and other Documents, as well as maintaining its existing functionality as a file manager for those who cannot part with it. However, KDE has also introduced a new default file manager called Dolphin. It has been designed from the ground up to be a powerful program that offers all of the advanced features that are needed from a dedicated file manager, while presenting a better organized user interface. The work that has gone into Dolphin is quite visible in the beta, including the new file view components that are shared between Dolphin, Konqueror and the File->Open/Save dialogs.



Dolphin Dolphin

This release is an early beta, but the level of stability (or lack thereof) is an indication of the development cycle. The KDE core APIs were only frozen a week before the beta source code was tagged, and as a result, some of the coders were rushing to get their API changes in before the freeze lest they be stuck maintaining a bad function or two throughout the entire KDE 4.x life cycle. Also, keep in mind that KDE 4.0 is not the end of the 4.x series. Most of the work has gone into the foundation libraries, with a little visible work happening with artwork, effects, and a few programs. Much of KDE, however, has simply been ported from KDE 3.5 and it will take some time before all applications are truly taking advantage of the new architecture. This beta is unstable but clearly shows the progress happening for 4.0.

The beta contains many more new and exciting things, and for those who

are willing to bleed a little (or a lot), there are a number of ways to

get a copy of this release. Distributions such as Gentoo, Kubuntu, OpenSuse

and Mandriva have all produced packages for this release (along with a

decent set of caveats). OpenSuse also produces a KDE 4 live CD

for those who are little more trepidatious about installing beta

software on their systems. Details on obtaining this beta for testing are

included in the full announcement, found at KDE.org.