Check out the new USENIX Web site. next up previous
Next: The Kontact Component Model Up: KDE Kontact: An Application Previous: Introduction


Components vs. Monolithism

Why bother with integrating originally disparate applications? Why not build a monolithic integrated application from ground up with all its parts fitting together from the beginning?

The technical advantages are that a loose coupling forces modularization and cleaner interface definitions. This leads to a better factored architecture which is inherently easier to maintain and leverages reuse of existing code.

On an economical side this kind of reuse saves the investments, in particular of time and effort of the open source community, in the already existing applications. All the components integrated into Kontact have a long history as independent applications and provide a stable and feature-rich base for the integrated framework.

There are also social reasons. Each of the different Kontact component applications have their own healthy developer communities. By providing a technical integration framework on the top of those applications the developers also get integrated. They still maintain their application development environment but gain a new sense of community on a higher level. The Kontact experience shows that this works surprisingly well and gives room for new synergies. The monolithic approaches we have seen in the past in this area have suffered from the not-invented-here syndrome and reinvention-of-the-wheel scenarios. There are several projects which tried to write a monolithic application comparable to Kontact and failed because of these reasons.

On a philosophical level the integration of GUI desktop applications as done by Kontact can also be seen as interesting parallel to the classic philosophy of UNIX commands, single-purpose commands which can be assembled to complex and powerful aggregations to fulfill almost any task imaginable. By combining single-purpose applications in an integrated suite for personal information management this philosophy is raised to the application level.


next up previous
Next: The Kontact Component Model Up: KDE Kontact: An Application Previous: Introduction
Cornelius Schumacher 2004-04-06