The Developer's Perspective: Why KDE?
KDE offers software developers five compelling reasons to write software using KDE: superior technology, documentation, quality development tools, an active and open development community and a significant user base.
For the developer, KDE is first and foremost a technology infrastructure. It provides file access, network communication, configuration tools and standard user interface components such as file open and save dialogs that are both sophisticated and easy to use. At the foundation of KDE lies the open source Qt toolkit, which is widely regarded as one of the best cross-platform toolkits available. Its clear and pragmatic design makes development quick and easy. KDE's own libraries build upon Qt to extend the possibilities even further while keeping the same spirit of pragmatism, clarity and quality.
On top of these base libraries are a wide array of advanced technologies that prove indispensable while creating modern graphical applications, such as:
- XMLUI which allows, as the name implies, defining UI elements such as menus and toolbars via XML files
- DCOP which is a light-weight interprocess communication system that allows programs and users to pass messages with and remotely control applications
- KParts which is a component model that turns applications into shared libraries that can then be easily and generically embedded by other KParts-aware applications
- KIO which provides extensible network-transparent file access for KDE applications
- KConfigXT which takes an XML file and produces source code to manage configuration options, including classes to glue the resulting code to configuration dialogs.
All KDE libraries and components are Open Source and are therefore freely available to all. This has the added benefit of transparency and ongoing development which adds to the value of KDE's infrastructure.
The powerful capabilities provided by KDE's libraries and components are just one part of the KDE value proposition for developers. It is said that a craftsman is only as good as their tools, and KDE's software development tools are some of the best available today.
At the most basic level, every developer needs a text editor. Kate is a fast, flexible editor with syntax highlighting, code folding, bookmarks and more. In true KDE fashion, Kate's text editor capabilities are wrapped up in a KPart component and used by many other applications, including the award winning KDevelop IDE, which is now in its third major release. KDevelop sports everything one would expect from a modern IDE including project management, support for 15 programming languages, an integrated debugger, revision control, documentation browser, application wizards and more. KDevelop was recently awarded the 2004 LinuxWorld Product Excellence Award for Best Development Tools in recognition of its leadership in this area.
KDE also provides a UML modeller (Umbrello), a CVS front end (Cervisia), a graphical diff program (Kompare), a memory profiler and leak checker in the form of KCachegrind and Valgrind, translation tools and a full featured GUI builder. KDE's simple yet powerful build system which is used throughout KDE itself as well as by most third party KDE applications takes the guesswork out of writing reliable, cross-platform configure scripts and Makefiles. There are more development tools to be found at kde-apps.org as well.
Of course, all the technology in the world isn't enough on its own. A development environment can be rendered frustratingly useless for the average developer if it isn't documented properly. Fortunately for KDE developers, Qt has extensive online documentation as do the KDE libraries. This is augmented by a library of tutorials, HOWTOs and other documentation housed at the KDE Developer's Corner website. There are also several books on Qt development available online and at local bookstores.
There's also the excellent documentation provided in the form of the KDE source code itself which contain example implementations for every part of KDE imaginable.
Armed with this wealth of documentation, it is easy to get up to speed with KDE development and find answers to your development questions.
Active and Open Development Community
Of course, no matter how much documentation is available eventually every developer ends up with a question they just can't find an answer to. This is when having an active community of fellow developers who are familiar with the technologies you are working with is vital.
KDE's developer community is expansive and easy to reach online. There are several KDE development email lists where experienced KDE developers can be found, and developers are constantly discussing development issues on the OpenProjects.net IRC network in the #kde-devel channel. Questions are usually answered quickly and accurately. Annual KDE meetings and attendance at trade shows around the world makes meeting KDE developers in person a reality as well.
In addition to human resources, the KDE project also holds out several technical resources to KDE developers. For those writing Open Source applications, there is the Extra Gear project that offers CVS, mailing list and bug tracking services along with a heightened profile in the KDE community for third-party applications. The KDE-apps.org website provides an excellent platform to announce and distribute your applications to users around the world from.
A Significant User Base
As the most widely available Open Source desktop system, KDE has a huge following of users and is commonly available on most Linux and UNIX platforms. Linux and UNIX desktop users often have the necessary KDE components and libraries installed to run the KDE software you write. For those who don't, it's usually just a few clicks away in their OS's package management tools. This vibrant and growing user base ensures that millions can take advantage of your software easily and effectively.
Developing With KDE
|The KDE Project