KDE 3.0 beta 1 is out
From the development team who tries to break every development speed record (last month they released KDE 2.2.2) comes KDE 3.0 beta 1, with lots of new features, new QT (3.0.1). It is beta 1 so expect crashes. You can find release notes and download locations over . A full feature list of whats planned to be on KDE 3.0 is also available (hmm, quite a big list) and some screenshots are available here. Please read the README files for your favorite distribution before installing the files as those packages are not replacing the KDE 2.2.X binaries (if you have it installed).
I have been part of the KDE team for a few years now, and slow development is certainly not something which I have experienced.
Development is not always about graphical updates to the interface - and KDE 3.0 encompasses some architectural and some extended functionality.
We are all (KDE and GNOME) evolving fine, and if you are concerned about it, why not help?
--- Jono Bacon - http://www.jonobacon.org/ Writer - Web Developer - Musician
A few people have been complaining here that KDE 3.0 looks the same as KDE 2.x. I just wanted to clear a few things up:
- First of all, KDE 3.0 is largely an architectural upgrade - we have moved to the new Qt 3.x series, and this needs to be reflected in KDE 3.x. The Qt 3.x series has a lot of bug fixes and additional features such as database connectivity, better handling of data structures and the like - this increased stability is passed on natively to KDE 3.0.
- In terms of interface updates, KDE 3.0 will see some updates but bear in mind that this update was aimed at primarily porting the codebase to Qt 3.x. Any additional interface updates will be added as the need arises - we always like your suggestions and bug reports are always welcome.
- KDE 3.0 is largely about increased functionality - examples include better JavaScript, a more integrated Konqueror, new modules such as the KDE Educational Module, the font installer, kernel compiler etc. These things are really likely to appear in 3.1 and further releases.
- For those of you who are gonna bitch and moan about KDE, GNOME, XFree86, Kernel, Mesa etc...why not just help to correct the things you don't like. You don't need to be a coder to help ny project - *everyone* can help an open source project.
Please be patient folks and keep those bug reports coming in - we value your help.
Jono Bacon
--- Jono Bacon - http://www.jonobacon.org/ Writer - Web Developer - Musician
> KDE is a good product, don't get me wrong. But why does it have to look just like MSFT's products?
The point is, it doesn't have to, it just can.
...or (horror of horrors) compile glibc yourself with Jakub Jelinek's prelinker patches, if you can find them (they seem to have disappeared off the net).
The dynamic linking of libraries is by far the biggest cause of KDE program startup slowness. A big desktop environment has a lot of shared libraries to link to an application at runtime, it's expensive computationally (particularly for C++ libraries), and the way the glibc dynamic linker works right now, it's done every time an application is started or a library is dlopen()'ed (such as when embedding a KPart). It can also cause swap thrashing on machines with limited memory (the entire library must be read into memory to perform the address relocation, only after relocation can the VM drop pages of the library) and obviously, disk contention between this swapping and the application loading can slow things down even further.
What the prelinking patches do (don't get them confused with the objprelink hack which, while useful, is not a long-term or efficient solution) is move the linking time from application startup time to system startup time. A tool runs at system startup, immediately after ldconfig runs, which loads and relocates libraries in its search path, then notes down the relocation addresses. Then, later, when the dynamic linker is asked by an application to load a library, it simply uses the values that were cached earlier. Any libraries that have not been 'prelinked' are simply relocated as normal. The linker also makes sure that non-prelinked libraries are not relocated into the same address space as any prelinked libraries that are not currently loaded.
The next major version of glibc will hopefully include library prelinking by default, but I haven't been following glibc development closely enough to know for sure. Let's keep our fingers crossed. Note that it's not just KDE that will benefit from this, Mozilla will gain a great deal (it, like KDE, is mostly C++ code split into many shared libraries) and even GNOME will benefit a little - doing the dynamic linking on C libraries still costs processor time, although it's much less than with C++ libraries.
The next biggest cause of KDE startup slowness is icon loading - currently every app has to search through the entire set of available icons on startup in order to load the icons that it needs. Not very efficient. Given that KDE has several hundred icons available already and that is likely to increase over time, it needs a solution. Waldo Bastian is apparently working on an icon server for KDE 3.0, which will do that search once, cache the data, and then respond with appropriate icons when an app asks, rather than forcing the apps to do it themselves every time. I'm hoping it also makes it easier and faster to do image compositing (overlays and so forth) with icons.
To sum up: glibc 2.3 together with KDE 3.0 should make a huge improvement to app startup (and KPart embedding) time, and, assuming the KDE guys are tight with their code, may even make KDE 3.0 usable on machines that couldn't effectively run KDE 2.x.