KOffice - Portability in Action
I have on several occasions been asked "why do you work on KOffice when OpenOffice.org already exists and does everything people need?". Well, there are several reasons why OpenOffice.org (OOo) is not the end-all of free office suites. This blog is the first in a series that will outline why KOffice is necessary and why it may in fact be the real future of the free office suites.
Let's start in this blog with portability.
KOffice runs on all Linux distributions which is not surprising since most of it is developed on Linux. It also runs on Windows and MacOS X, although these ports are not production ready yet. There is still some infrastructure and packaging work to do, but the KDE Windows and MacOS X teams are doing a fine job there. These three platforms are also the ones that are supported by OOo.
But it doesn't end there. Three days ago, a KOffice port to Haiku, the free followup of BeOS, was announced. The porting team had started out by porting Qt, the great C++ toolkit from Trolltech, now owned by Nokia. After that they continued with the KDE libraries and then KOffice and most other KDE applications were just a simple matter of compiling. There is also a port of KOffice to FreeBSD, which is another Unix dialect where, to my knowledge, OOo doesn't work. Edit: OOo is available on FreeBSD as shown by one of the comments, my bad.
But to make things really interesting, we have to look at the mobile devices. This week we saw the first alpha release of the office viewers on the Nokia N900 device. This release is interesting in several ways. First of all, it's not a normal Intel processor and not a normal desktop or laptop machine with all the power and memory that such a machine has access to. Instead it's an embedded device and demands a very low energy consumption but still needs to provide a fast response to the user.
The other challenge with the N900 port was that the UI had to be switched for a new one. The desktop version of KOffice uses the normal WIMP interface (Windows, Icons, Menus, Pointers) but the N900 device has a touch screen and a small form factor. The desktop UI would simply not be workable for such a device. KOffice is the only free office suite that allows the developer to use the internal engine for loading and rendering the contents and create a custom UI on top of it.
So, what gives KOffice this great flexibility and portability? Well, first of all it's the Qt toolkit. Qt is arguably the most portable toolkit of all, and especially if you take into account that it provides a native look&feel on all platforms that it is ported to. Qt is ported to all Unix dialects, Windows, Mac, Symbian and many more. On X windows it can even take on the look of the desktop environment, like Gnome or KDE Plasma.
Second, it's the design of KOffice itself. KOffice has a very modular design. Not only is the GUI mostly separated from the engine, it's also very much based on plugins. In some cases even plugins have plugins -- the spell checker, for instance, is a plugin to the text shape, which is a plugin in itself.
The first point makes it possible for the developer to create completely new UI like Nokia did. We foresee KOffice ported to Symbian and other mobile OS'es like Moblin and Android once Google allows native applications that are not written in Java on it. And why not a port to Windows Mobile?
The modular design with plugins makes it very simple to create a tailored version of KOffice with a selected set of features. Right now, there is a CMake option to the configuration phase called "TINY" that creates a smaller KOffice with a limited set of applications and a limited set of filters and built-in shapes. As far as I know, there is no similar build time options to OOo or Abiword. It's also easy to replace functionality by simply switching a plugin to something similar. An example of this is how Thomas Zander created a simplified text formatting docker for kids with fewer options and bigger buttons.
So, the combination of these two makes KOffice uniquely suited for non-standard platforms. Non-standard by desktop standards, that is. Most people today agree that mobile is the future. And maybe so is KOffice...
Let's start in this blog with portability.
KOffice runs on all Linux distributions which is not surprising since most of it is developed on Linux. It also runs on Windows and MacOS X, although these ports are not production ready yet. There is still some infrastructure and packaging work to do, but the KDE Windows and MacOS X teams are doing a fine job there. These three platforms are also the ones that are supported by OOo.
But it doesn't end there. Three days ago, a KOffice port to Haiku, the free followup of BeOS, was announced. The porting team had started out by porting Qt, the great C++ toolkit from Trolltech, now owned by Nokia. After that they continued with the KDE libraries and then KOffice and most other KDE applications were just a simple matter of compiling. There is also a port of KOffice to FreeBSD, which is another Unix dialect where, to my knowledge, OOo doesn't work. Edit: OOo is available on FreeBSD as shown by one of the comments, my bad.
But to make things really interesting, we have to look at the mobile devices. This week we saw the first alpha release of the office viewers on the Nokia N900 device. This release is interesting in several ways. First of all, it's not a normal Intel processor and not a normal desktop or laptop machine with all the power and memory that such a machine has access to. Instead it's an embedded device and demands a very low energy consumption but still needs to provide a fast response to the user.
The other challenge with the N900 port was that the UI had to be switched for a new one. The desktop version of KOffice uses the normal WIMP interface (Windows, Icons, Menus, Pointers) but the N900 device has a touch screen and a small form factor. The desktop UI would simply not be workable for such a device. KOffice is the only free office suite that allows the developer to use the internal engine for loading and rendering the contents and create a custom UI on top of it.
So, what gives KOffice this great flexibility and portability? Well, first of all it's the Qt toolkit. Qt is arguably the most portable toolkit of all, and especially if you take into account that it provides a native look&feel on all platforms that it is ported to. Qt is ported to all Unix dialects, Windows, Mac, Symbian and many more. On X windows it can even take on the look of the desktop environment, like Gnome or KDE Plasma.
Second, it's the design of KOffice itself. KOffice has a very modular design. Not only is the GUI mostly separated from the engine, it's also very much based on plugins. In some cases even plugins have plugins -- the spell checker, for instance, is a plugin to the text shape, which is a plugin in itself.
The first point makes it possible for the developer to create completely new UI like Nokia did. We foresee KOffice ported to Symbian and other mobile OS'es like Moblin and Android once Google allows native applications that are not written in Java on it. And why not a port to Windows Mobile?
The modular design with plugins makes it very simple to create a tailored version of KOffice with a selected set of features. Right now, there is a CMake option to the configuration phase called "TINY" that creates a smaller KOffice with a limited set of applications and a limited set of filters and built-in shapes. As far as I know, there is no similar build time options to OOo or Abiword. It's also easy to replace functionality by simply switching a plugin to something similar. An example of this is how Thomas Zander created a simplified text formatting docker for kids with fewer options and bigger buttons.
So, the combination of these two makes KOffice uniquely suited for non-standard platforms. Non-standard by desktop standards, that is. Most people today agree that mobile is the future. And maybe so is KOffice...




