Editor’s Note: This is a guest blog post from Jos Poortvliet, a community manager for SUSE who is part of the KDE Marketing Workgroup.
Today the KDE Community released a Tech Preview of Frameworks 5, including two mature modules which are usable now. Why is this relevant for Qt coders and Free Software in general?
With about half a million developers working with it, Qt has become the dominant Free Software toolkit. KDE’s libraries, having developed over 15 years of highly diverse usage, offer a wealth of additional functionality to the Qt ecosystem. KDE Frameworks 5 are making those capabilities available in small, easy-to-use components. That is a big deal for the Free Software world.
Frameworks 5: Splitting Up KDELibs
The KDE libraries form the common code base for (almost) all KDE applications. They provide high-level functionality such as toolbars and menus, spell checking and file access. The libraries were developed over the last 15+ years based on the needs of KDE application developers, who abstracted the underlying Linux platform to speed up development and provide consistency and common functionality. KDE’s development efforts have led to innovations like KHTML (on which WebKit is based), DCOP (DBUS’s predecessor) and more. And from the beginning, ‘kdelibs’ was distributed as a single set of interconnected libraries.
Frameworks 5, the successor to the KDE Libraries, splits them up. Where KDELibs used to be take-it-or-leave-it, Qt developers will be able to select just what they need from the collection of Frameworks. Thanks to KDE’s development policies (and the more detailed Frameworks policies), the libraries are consistently LGPL or BSD licensed, written with a consistent Qt-like coding style and offer stable and well thought-out APIs.
Of course, no code is perfect. There is always room for improvements, features, bug fixing, and better documentation. KDE’s open government model has served well for the last 15+ years, making the KDE Community one of the largest and most vibrant. So getting changes upstreamed is not hard and Qt developers are open to requests or questions. Functionality that is sufficiently mature and that fulfills a broad need will likely follow the path that other mature KDE Library code has taken: merging into Qt proper.
Examples, state, plans
Recently, the KDE News website published an article about Frameworks 5, detailing several Frameworks and giving an account of the history and plans. The KDE team has just released a Tech Preview; a final release is planned for the first half of 2014. About 20 developers (paid and volunteer) actively supported by four companies are separating and re-factoring the code, adding and improving tests and documentation (see this dashboard for a status overview).
The KDE Frameworks and other third-party Qt addons are being gathered at inqlude.org, the curated Qt library archive, which is not yet complete. The full set is available from the KDE download servers today, and several distributions already offer packages.
Today, the KDE Community released a Tech Preview, consisting of 57 Qt addons. Two prominent ‘example’ modules are more mature and immediately usable: Threadweaver and KArchive. KArchive offers support for many popular compression codecs in a self-contained, featureful and easy-to-use file archiving and extracting library. Just feed it files; there’s no need to reinvent an archiving function in a Qt application! ThreadWeaver offers a high-level API to manage threads using job- and queue-based interfaces. It allows easy scheduling of thread execution by specifying dependencies between the threads and executing them satisfying these dependencies, greatly simplifying the usage of multiple threads.
Benefits of using Frameworks
For developers, the Frameworks are Time-saving, Mature and Familiar.
Developers and businesses can save development and maintenance work, time that can be invested in business-specific value. Using Frameworks means using mature, tested code. KDE has been around for a long time, and KDE libraries are based on real-world needs, having been used in more ways than most companies could test in-house. Developers using Qt will take less time to become familiar with this code, because KDE libraries follow the Qt code- and API style.
For organizations building their own ecosystems, such as Jolla, Blackberry and Canonical, there are additional benefits from using Frameworks: API stability and cross-platform support. Libraries like KAuth (authorization mechanisms wrapper) and Solid (hardware abstraction) are more useful than native APIs for long term API stability, even for an ‘owned’ underlying stack. Ecosystem providers should assume that developers prefer multi-platform-capable APIs as it eases porting (and learning to write for a particular platform).
Relevance for Free Software and Qt
Qt simplifies development by being comprehensive and high quality, with fast paced innovation. No single sector or business segment dominates, so Qt offers a diverse, growing and reliable ecosystem with more than half a million developers actively using the toolkit (source).
With a growing Qt ecosystem, more users are doing more diverse things. So there is an ongoing need for functionality which may not be part of Qt standard codebase. This is why KDE’s Frameworks 5 is a big deal for the Open Source world.
As a place where many new, enthusiastic coders join with experienced, long-time contributors, KDE has always offered an open and inspiring environment where new ideas can blossom. The value of such a space where both people and technology thrive cannot be overstated. Companies spend billions attempting to build what thrives naturally and freely in the KDE Community. It is not hard to see how Qt stands to benefit tremendously from KDE Frameworks now and especially in the future.
A complete, mature and openly developed toolkit on and for open source platforms is important for Free and Open Source, for current hardware configurations, the new generation of mobile devices and other consumer electronics. KDE Frameworks is an important contribution to innovative and compelling open platforms.
Jos Poortvliet has been active as Free Software evangelist for over 10 years. He lives in Berlin, works as community manager for SUSE, is part of the KDE Marketing Workgroup and loves cooking.