why kdelibs?

John Layt johnlayt at googlemail.com
Thu Oct 28 16:47:59 BST 2010


On Thursday 28 October 2010 12:11:43 Chani wrote:
> When I was at DevDays, I noticed that while people were very enthusiastic
> about Qt, I was getting a sort of "qt is all you need" vibe at times - a
> fine sentiment for promoting qt, but then, what about kdelibs?
> 
> And then I realized: what *about* kdelibs? I had no idea how to tell anyone
> why they should use the kde platform, what advantages it would bring. Hell,
> at this point I'm not even sure what's *in* kdelibs, or what the KDE
> Platform is.
> 
> After a quick skim of community.kde.org, I'm just as lost.
> 
> So I ask you: Why kdelibs? Why the KDE Platform? I *know* that we have all
> kinds of awesome in there, but what is it and why should people use it?

In general, we provide lots of convenience classes and methods for things that 
are either awkward to do in Qt, or you have to do yourself.  The concept of 
being an add-on module to Qt providing stuff to make Qt coding easier is 
valid, but then we also have lots of stuff designed for integration into our 
platform, like consistency between apps and localization that others may not 
need.

Off the top of my head, some of the good stuff:
* Proper localization of Calendar Systems, i.e. your app will play nicer in 
foreign countries
* Far more date formatting options than Qt has
* Proper timezone handling
* World's best File Dialog.
* Extra features added to the print dialog on *nix that Qt seems to have no 
interest in supporting
* Unit Conversion library, e.g. km <-> miles
* KIO network transparent file operations
* All that Semantic stuff
* GUI widgets that integrate all this good stuff so you don't have to
* A holidays library that no other platform has an equivalent for

However with Qt moving from being just a widget and container toolkit to be an 
entire development platform, i.e. implementing all the api's the mobile 
platform needs, we're more often running into the problem of duplication.  For 
instance:
* KHTML/KJS vs QtWebKit
* Phonon vs QtMultimedia
* Solid vs QtMobility
* Akonadi & kdepimlibs vs QtMobility

Where in the past kdelibs users could happily use our stuff as an add-on and 
not think much about it, now they have to make decisions as to which 
incompatible module they will use and accept possible limits as to how well 
they will integrate on each platform.  Some KDE apps already have Qt only 
versions that restrict how well the KDE version integrates into KDE or force 
them to re-implement kdelibs stuff.  How long before such apps decide the KDE 
side isn't worth the hassle, that a compatible widget style and a few shared 
dialogs is good enough?

What do we need to be doing to make sure that using kdelibs is not seen as 
being a disadvantage, that it is worth the extra weight for all the goodies?

Or is chasing the non-KDE market just not worth it if we loose what makes us 
unique?

Big questions.  Anyone with big answers? :-)

I'm thinking about this stuff as I'm trying to plan for GeoLocation support in 
kdelibs.  Do we stay in-house and copy bits of Marble into kdelibs, but then 
cut out the mobile guys who will want to use QtMobility.  Or do we use 
QtMobility and the problems that entails away from the mobile platform?  Or do 
we write some Phonon-like wrapper that will use whichever is installed, but 
that's no better for the mobile guys than any other new API?  But that's a 
different e-mail...

John.




More information about the kde-core-devel mailing list