This article explores where the KDE community currently stands and where it is going. Frameworks, Plasma, KDE e.V., Qt5, KDE Free Qt Foundation, QtAddons - you heard some of these terms and want to know what all the fuss is about? A set of articles on the Dot aims to bring some clarity in the changes and constants of the KDE community in 2014 and further. This is the first article, diving into the technical side of things: Plasma, applications and libraries.
KDE is People
Today our technology goes much further than the humble beginnings in 1996, when we started out building a 'Desktop Environment'. KDE today has many hundreds of active developers. They make not only a 'desktop' (Plasma Desktop) but also a variant for tablets (Plasma Active) and TVs (Plasma Media Center); Plasma Netbook is already 5 years old!
Meanwhile, the KDE applications have gone beyond simple clocks and calculators – we have a full office suite, mail and calendaring, video and image editors and much more. Not only that, KDE applications are being ported to multiple platforms - not just Windows and Mac, but also Android and other mobile operating systems. And our libraries (being renamed to Frameworks 5) are going modular, making them freely available to a far wider audience than just KDE developers.
Today, KDE is no longer a Unix Desktop Environment. Today, KDE is people: Us. You and me. And our technologies—Plasma, Applications and Frameworks—are doing more today than ever before. Let's explore where they are going, starting with Plasma, central to our desktop interface.
Plasma by KDE
Plasma was conceived as the next generation of KDE's desktop technology. When its architecture was drafted in 2006 and 2007, the goal of the developers was to build a modular base suitable for multiple different user interfaces. It is easy to see this as an obvious goal in a world with high resolution displays, tablets, mobile phones, media centers and so on. But as argued here, until today, KDE technology is unique in its ability to converge the different form factors at a code level. Others are still either attempting to build one interface for a wide variety of devices, looking for a middle ground or have realized that user interface convergence is a futile exercise and created separate interfaces.
Multiple Plasma Workspaces in March 2011
Plasma took some time to mature, in part due to its ambitious design, in part because the technologies it built upon were not mature enough for the needs of Plasma. This is still somewhat of a problem today, and the 4.x series has workarounds to deal with the deficiencies in the platforms below it.
This is where the next generation of Plasma technology comes in. Conveniently named Plasma 5, it will bring pixel-perfect design and super smooth performance thanks to the QML and Qt 5 technologies and fully hardware accelerated display rendering. High DPI support and the ability to work with Wayland (Linux's next generation display server) are planned as well, but neither are expected to be fully finished with the first release.
These capabilities put the current Plasma far ahead of any competitor and the gap will only increase with the release of Plasma 5. But these advanced features do not take away from the familiar interface. The Plasma team is fully aware of value of established work flows of computer users and the need of not disrupting them. This means that there will be minimal feature loss or changes in the setup of the desktop. Just butter-smooth performance, polished look and more flexibility.
The Visual Design Group, Interaction Design and Usability
Aside from technical work, there is design and usability work going on. The idea behind the Visual Design Group was to build a team in KDE which would focus on design. This is done in a rather novel way, led by the enthusiasm of Jens Reuterberg, a FOSS enthusiast and designer from Sweden. Since the inception of the design team, there has been work in many areas. There have been new icons and improvements to existing design elements of KDE software but the majority of work has been focused on Plasma 5. A widget theme is in development, a cursor theme as well and icons are being discussed. And Plasma 5.0 will move to the Oxygen font by default. But the team also looks at interaction design and work flows in the interface, working together with the KDE usability team.
The usability team keeps developers and designers experimenting with new user interfaces close to the ground, making sure the user impact of their work is evaluated. The team conducts surveys and tests as well as using its own expertise to help the KDE developers design powerful but easy to use applications.
Usability experts have been giving feedback in various areas of KDE's software, for example working closely with the developers of a new network manager interface for Plasma. Another example is the chat room experience in KDE Telepathy. Currently, work is being put into redesigning Systemsettings and many other things.
At events like Akademy, the usability team gives developers training in testing user interfaces with real users. Aside of working directly with developers and training them, the usability team has been reworking KDE's Human Interface Guidelines.
Work in progress
The first release of this new generation Plasma will not be without its issues. With a substantial change in underlying stack come exciting new crashes and problems that need time to be shaken out. This can also lead to visual artifacts. While QML2 brings better looks due to its seamless integration of openGL and more precise positioning, the immaturity of Qt Quick Controls, the successor to the 15 year old widget technology in Qt, will bring some rough edges in other areas. Moreover, as the latest Beta announcement points out, performance is also heavily dependent on specific hardware and software configuration:
“In some scenarios, Plasma 5 will display the buttery smooth performance it is capable off - while at other times, it will be hampered by various shortcomings. These can and will be addressed, however, much is dependent on components like Qt, Mesa and hardware drivers lower in the stack. This will need time, as fixes made in Qt now simply won't be released by the time the first Plasma 5 version becomes available.” Plasma 5.0 is scheduled for release July 2014.
- Plasma Next technology preview announcement (currently, beta 2 is out and testing is appreciated!
- "Next means focus on the Core" blog post on Plasma Next changes by Sebastian Kügler
- KDE's Converging User Interfaces work is ahead of the competition
- Blog by KDE's design team
- Work is going on to redesign Systemsettings, see this post, this and this. There is also the usability work on Network Management
- Work on Plasma Active restarting, High DPI work on Plasma Next and work on locale changes, systemtray in Plasma Next and one more on that subject
- Harald Sitter announced that there are now weekly Plasma 5 live images being released to aid testing and feedback
The KDE Applications
Compared to the desktop and libraries, the situation with KDE's applications is simpler. Currently at 4.13, the next release will be 4.14, coming in August. After that there will be another release (together with KF5-based applications) but what comes next is still up for discussion. KDE's release team has been experimenting with shortening the release cycle. Shorter release cycles seem to be a trend throughout the ecosystem, facilitated by improved tools and processes.
A very fast release cycle?
Experiences in the world of mobile and web applications have shown that users are far more likely to start using features and appreciate small batches instead of large dumps. Short release cycles can bring bug fixes and improvements to our users much faster. On the other hand, most users of KDE software access their software and updates through the downstream distributions which are on slower release cycles even though they have repositories for updated software. Therefor this is a discussion which needs to include the distributions as much as the upstream developers.
And in any case, both our release infrastructure and our promotion will have to be adjusted as well. This has been started on the KDE Community mailing list, with proposals involving a clean up of the KDE Applications and changes in the release cadence.
Moving to Frameworks 5
The trend towards shorter release cycles requires many questions answered before it becomes feasible in practice. But a move to Frameworks 5 is certain to happen at some point, the question merely is when. Some applications have already started porting, encouraged by the swift progress being made on Frameworks 5. However most have not; it is not likely that most applications will have been ported to Frameworks 5 by the end of the year. Porting is relatively easy but the teams vary in focus and goals so we will have a Frameworks 5 based Applications release next to a 4.x series for a while.
Here again, KDE developers want the upgrade process to be smooth for users. In short, the 4.x series will be with us for the time being, and a Frameworks 5 series will be available in parallel. Regardless of the series, applications will work fine under any desktop. Developers want to ensure that migration is not an issue.
- Next generation search by KDE available for the 4.x series. More such major changes will probably not come out for the 4.x series but instead focus on Frameworks.
- A recent blog post about porting applications to Qt5 and Frameworks 5 by Aleix Pol
- KDE PIM team meeting report. The first porting steps to Qt5 and Frameworks 5 are being taken but the team expects this to take 1-2 years. In the mean time, KDE mail, calendaring and contacts as part of Applications 4.14 continues to get features like the improved integration of GMail coming in KDE Applications 4.14
- QML support being improved in KDE's development tools
- Discussion about where KDE Applications and releases are going on the KDE Community mailing list. Proposal One. Proposal Two. Proposal Three.
- Work on Platform 4.x series applications continuing: Plasma NM is out, Digikam 4.0 progress, KMyMoney 4.8 coming, Calligra and Krita 2.8 released (note the krita kickstarter action).
When KDE began more than 15 years ago, development was application-driven. Libraries were intended to share work, making development easier and faster. New functionality in the libraries was added based on simple rules. For example, if a particular functionality was used in more than one place, it was put into a shared library. Today, the KDE libraries provide high-level functionality like toolbars and menus, spell checking and file access. They are also used occasionally to fix or work around issues in Qt and other libraries that KDE software depends upon. Distributed as a single set of interconnected libraries, they form a common code base for (almost) all KDE applications.
Under the KDE Frameworks efforts, these libraries are being methodically reworked into independent, cross platform modules that will be readily available to all Qt developers. Some functions have already been adopted as Qt standards. The KDE Frameworks—designed as drop-in Qt Addon libraries—will enrich Qt as a development environment. The Frameworks can simplify, accelerate and reduce the cost of Qt development by eliminating the need to reinvent key functions. Qt is growing in popularity. Ubuntu is building on Qt and QML for Ubuntu Phone and planning to move over the desktop in the future. The LXDE desktop and GCompris projects are in the process of porting over to Qt. Subsurface (a divelog project made famous by having Linus Torvalds as core contributor) has had its first Qt based release.
With Frameworks, KDE is getting closer to Qt, benefiting both, as well as more and more users and developers. The Frameworks team plans to go for monthly releases with 'branch-less development'. This means that everything will be developed in master, so each release will contain a few new features and bugfixes. Of course, this type of release cycle comes with a price of its own. Features in released modules can only be introduced in a very fine grained way so as to not jeopardize stability and our continuous integration and testing tools will be taken very seriously. All modified code has to come with corresponding tests and there is a strong focus on peer review. This model is still under discussion with the distribution teams, considering the impact on their release practices. KDE Frameworks 5.0 is planned to be released in the first week of July 2014.
- Frameworks 5 was started at the Randa meeting in 2011. Consider supporting the fundraiser to make Randa 2014 happen
- Frameworks 5 explained
- KDE's contributions to Qt 5
- article on Linux.com about relevance of Frameworks 5 for Free Software
- Frameworks 5 Tech Preview released (Beta 3 is out already)
- Sebastian Kügler shares some musings on the quality of Frameworks
- Dependency diagrams now visible on api.kde.org
Now, we've covered the Frameworks, Applications and Plasma—the full gamut of KDE technologies. By summer of this year we can expect new generation Frameworks and Plasma to be available. The Applications will take a tad longer, but should run on any desktop. All have release cycle changes, no longer releasing as part of the full "KDE Software Compilation". Compared to the previous major change in platform (KDE 4.0), these will be incremental on a technical level. Plasma 5 and Frameworks 5 are very much about taking advantage of the fact that our infrastructure has caught up with our ambitions. We intend to deliver these benefits in the form of a great experience for our users!
Next week, we'll publish part two of the 'where KDE is going' mini-series, with a look at KDE's governance and how our community has been changing.
These articles are based on a talk given at conf.kde.in by Jos Poortvliet with lots of input from KDE contributors. A more extensive version of these articles, quoting members of the KDE community for more background, can be found in the upcoming (August) issue of Linux Voice magazine, 'the magazine that gives back to the Free Software community'
This really sounds great. Thank you for those wonderful products !
Everything I've been reading about the switch to frameworks-5 has me optimistic that things will go dramatically better, this time around, than it did with kde4. Among other things, the pre-release kde4 PR was all about the whiz-bang new technology, and I guess people kinda lost sight of actually keeping working things supported and working until the replacement properly worked as well as what it was intended to replace.
This time around, however, the focus seems to be on modularity and letting devs and distros and users pick and choose kde5/frameworks based solutions as they mature, while continuing to support kde4 -- and interoperation with non-kde technology where it makes sense too -- for areas where the frameworks-5 based solution isn't yet mature.
That seems far healthier than the last time around, and I'm looking forward to the chance to try various bits out. =:^)
(As for testing, I'm actually running live-git kde4 from the gentoo/kde overlay package build scripts, and there's frameworks-5 and plasma-next package builds as well, but they depend on qt5, which isn't there or in the main gentoo tree yet, only (presumably) in the gentoo/qt overlay, which I don't have loaded. So I've not get gotten a chance to actually try the plasma-next stuff, but am looking forward to it.)
"and I guess people kinda lost sight of actually keeping working things supported and working until the replacement properly worked as well as what it was intended to replace."
Not really; we supported 3.5 for an additional year post-4.0 with new releases, something we announced prior to the release of 4.0 and repeated in the keynote presentation at the release event. That vast majority of new things in the 4.x codebase were not replacements, either; they were new frameworks that provided access to new functionality.
What has changed this time around is:
* the workspaces and libraries are fully separated in terms of release, so each can be released when they are individually ready
* the port from Qt4 to Qt5 compared to the work necessary for Qt3 -> Qt4 (exception: QML)
* very little architecture is being revisited (including a few things that need that; next time :)
These differences also explain the differences in promotion. This is very similar, in fact, to the 3.0 release relative to the 2.x release.
Learning the _right_ lessons are important, otherwise one makes the wrong decisions thinking they've learned when they haven't. In the case of 4.0 it wasn't an innovation problem but problems stemming from how KDE made releases (starting from 1.0 and never changing suitably), and taking it as an innovation problem may well lead to the mythology that innovation is not worth doing. The lesson was to change the dev-and-release processes to match the evolving needs of the various projects.
There might be more than one lesson. The switch to KDE 4.x cost me my favorite features and settings. I still miss Kasbar daily. And I personally didn't see any benefit from the innovations but had an awful time with dual screen support while others struggled with the database backends. I'm not saying that for some users and developers the releases were the issues. However, for some the innovations were the issues. For me, feature regressions remain the issue.
Please, fix font rendering
'fix' it into what? Everybody disagrees on how fonts should look. Half the world hates Mac fonts, the other half loves it. Half the world wants sub-pixel rendering, the other half pukes at it.
Actually, the halfs mentioned above are part of the 0.0001% who care about font rendering, the rest of the world just thinks people moaning about it should get a life ;-)
Thanks for the KDE article! It includes informative images and goes into details but not too much.
It's featured as news and people talk about it in www.osnews.com/comments/27803
Are we playing black and white here gnome 3 is black and kde is all white.
KDE is really amazing, I really hope it will become the most used Linux DE. Thank you for your work.
It's nice to see that some real effort is being made to improve the aesthetic of the UI, though by the looks of it there is still much to be done. As a UI designer/developer myself I always found the harsh juxtaposition of KDE4's strong, functional UI and ugly UI components to be quite bemusing, so much effort was put into ensuring that the usability was of a high standard that one could only assume that the aesthetic it's self was given little attention - the window manager, the lackluster polish on navigation and menu components and the icon theme as being prime examples. Unfortunately not even the most rigorous attempts to compensate for these perceived flaws via the available customization was truly sufficient.
The clean, modern, minimalist style has certainly got my attention though. I look forward to seeing further improvements across the UI as development progresses.
Thanks for the nice words. I've updated the screenshots in this article, and there's a nice video on youtube showing the latest version off quite nicely: here.