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.
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.
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.
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.
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'