atom feed103 messages in org.kde.kde-core-develRe: why kdelibs?
FromSent OnAttachments
13 earlier messages
John LaytOct 28, 2010 8:47 am 
Stuart JarvisOct 28, 2010 8:56 am 
Sven LangkampOct 28, 2010 10:43 am 
Matt WilliamsOct 28, 2010 11:52 am 
Pau Garcia i QuilesOct 28, 2010 12:08 pm 
Vivek PrakashOct 28, 2010 12:13 pm 
Milian WolffOct 28, 2010 12:21 pm 
Pau Garcia i QuilesOct 28, 2010 12:53 pm 
Pau Garcia i QuilesOct 28, 2010 12:59 pm 
Albert Astals CidOct 28, 2010 1:07 pm 
Albert Astals CidOct 28, 2010 1:16 pm 
Pau Garcia i QuilesOct 28, 2010 1:33 pm 
Jos PoortvlietOct 28, 2010 4:56 pm 
Stephen KellyOct 28, 2010 10:08 pm 
Gregory SchlomoffOct 28, 2010 10:57 pm 
JaimeOct 29, 2010 2:28 am 
Keith RuslerOct 29, 2010 7:52 am 
Kevin OttensOct 29, 2010 8:30 am 
Chusslove IllichOct 29, 2010 9:01 am 
Kevin OttensOct 29, 2010 9:08 am 
John LaytOct 29, 2010 9:17 am 
John LaytOct 29, 2010 9:39 am 
Robert KnightOct 29, 2010 9:41 am 
Albert Astals CidOct 29, 2010 10:55 am 
ChaniOct 29, 2010 12:19 pm 
Stephen KellyOct 29, 2010 7:44 pm 
Cornelius SchumacherOct 30, 2010 1:31 am 
Andrea DiamantiniOct 30, 2010 2:11 am 
Juan Carlos TorresOct 30, 2010 4:04 am 
Sebastian TrügOct 30, 2010 4:31 am 
Tom AlbersOct 30, 2010 7:24 am 
Richard DaleOct 30, 2010 8:01 am 
Milian WolffOct 30, 2010 9:04 am 
Alexander NeundorfOct 30, 2010 9:11 am 
Alexander NeundorfOct 30, 2010 9:15 am 
Alexander NeundorfOct 30, 2010 9:35 am 
Alexander NeundorfOct 30, 2010 9:48 am 
Albert Astals CidOct 30, 2010 10:00 am 
Alexander NeundorfOct 30, 2010 10:04 am 
Parker CoatesOct 30, 2010 10:44 am 
Cornelius SchumacherOct 30, 2010 10:50 am 
Cornelius SchumacherOct 30, 2010 10:52 am 
Luciano MontanaroOct 30, 2010 10:53 am 
Mark KretschmannOct 30, 2010 11:22 am 
Albert Astals CidOct 30, 2010 11:23 am 
Albert Astals CidOct 30, 2010 11:34 am 
Stephen KellyOct 30, 2010 1:43 pm 
Marco MartinOct 30, 2010 2:27 pm 
Marco MartinOct 30, 2010 2:30 pm 
Stephen KellyOct 30, 2010 2:58 pm 
Thiago MacieiraOct 30, 2010 5:35 pm 
Albert Astals CidOct 30, 2010 6:31 pm 
Henry MillerOct 30, 2010 6:32 pm 
Thiago MacieiraOct 30, 2010 10:26 pm 
Oswald BuddenhagenOct 31, 2010 1:29 am 
Alexander NeundorfOct 31, 2010 2:11 am 
Marco MartinOct 31, 2010 2:23 am 
Cornelius SchumacherOct 31, 2010 3:20 am 
Torsten RahnOct 31, 2010 7:21 am 
Boudewijn RemptOct 31, 2010 7:58 am 
Mark KretschmannOct 31, 2010 8:18 am 
Thiago MacieiraOct 31, 2010 8:39 am 
Sven LangkampOct 31, 2010 8:43 am 
Boudewijn RemptOct 31, 2010 8:54 am 
Thiago MacieiraOct 31, 2010 9:03 am 
Stephen KellyOct 31, 2010 11:03 am 
Juan Carlos TorresOct 31, 2010 11:38 am 
Alexander NeundorfOct 31, 2010 1:33 pm 
Cornelius SchumacherOct 31, 2010 1:35 pm 
ChaniOct 31, 2010 1:56 pm 
ChaniOct 31, 2010 2:08 pm 
Albert Astals CidOct 31, 2010 4:14 pm 
Thiago MacieiraOct 31, 2010 4:47 pm 
Andreas PakulatNov 1, 2010 12:38 am 
Diederik van der BoorNov 1, 2010 1:26 pm 
David FaureNov 2, 2010 5:33 am 
Thiago MacieiraNov 2, 2010 7:55 am 
ChaniNov 2, 2010 9:43 am 
ChaniNov 2, 2010 10:15 am 
Aaron J. SeigoNov 2, 2010 11:04 am 
John LaytNov 2, 2010 12:31 pm 
ChaniNov 2, 2010 12:37 pm 
Thomas LübkingNov 2, 2010 1:09 pm 
Stefan MajewskyNov 2, 2010 4:00 pm 
John LaytNov 2, 2010 4:34 pm 
Barth NetterfieldNov 2, 2010 10:50 pm 
Alexander NeundorfNov 3, 2010 11:31 am 
Alexander NeundorfNov 9, 2010 1:13 pm 
Stephen KellyNov 10, 2010 5:04 am 
Kevin OttensNov 10, 2010 5:27 am 
Subject:Re: why kdelibs?
From:Stephen Kelly (stev@gmail.com)
Date:Oct 30, 2010 2:58:21 pm
List:org.kde.kde-core-devel

Answering Cornelius and Alexander here.

Cornelius Schumacher wrote:

I know what you think ("madness", "no", "KDE 5", "impossible", "governance", "binary compatibility", "Nokia", "impossible", ...), but if you put that aside for a while and think big, wouldn't that be a wonderful answer to all the struggles we have with kdelibs?

I don't think so.

There will always be a place for third party Qt-based libraries. That is what kdelibs should be. The kde platform should sit on top of those libraries. The kde platform will not become completely irrelevant because of integration points like action shortcuts, about dialogs, menu structures etc. It should be possible to use the libraries without the menu structures and about dialogs though.

1) Would KJob make sense to have in Qt directly? Probably. kdeui/itemviews? Parts of it, yes. And parts of it are going in to Qt.

2) What about KMime, KIMAP, Kross etc? Those are all domain specific libraries. Why should they be in Qt instead of third party libraries?

3) What about KDED, KLauncher, kdeinit, ksycoca? Those are all platformy kde specific things. They make sense if you are creating a large suite of integrated applications, which use the same libraries, which publish mimetype based capabilities of the applications for certain tasks. Most Qt developers don't make a large suite of hundreds of applications. They make just one. They make the only one which is suited to the task it was written for, so they don't need ksycoca.

I heard there used to be a rule that API only gets into Qt if 80% of their customers would use it. I don't know if that has changed, but it might help answer the questions of 'Does this particular functional library in kde{pim,}libs belong in Qt?'

The things that fit into category (1) above correspond to the Tier 1 I described in the wiki. Category (2) is Tier 2, and category (3) corresponds to the platform Tier.

If you're talking about putting code into Qt to make is possible to use Qt APIs like QDateTime in our applications (and most importantly in our APIs), and have it JustWork with our platform like it does with KDateTime today, I'd say +1000. That needs to happen.

When the categories 1 and 2 are separate and below the platform, rather than on top of it, it doesn't matter whether they are in Qt or are a third party addon, such as my proposal for kdelibs. The separation of platform and libs is a prerequisite either way.

Another prerequisite IMO is to fix Qt enough so that classes like KUrl, KFile, KProcess, KDateTime, KWhatever are either not needed, or can be in the platform level. They create interdependence and are incompatible with creating Qt applications which use the functional libraries we have in kdelibs.

We all love Qt, without it KDE wouldn't exist. We also love the KDE development platform, it provides all that what Qt doesn't have or didn't have at some point in time. But is there still a real reason to keep them separate? Wouldn't it be much more elegant, if you wouldn't have to decide, if to use some KDE classes or write a "qt-only" application, if you would get all the wonders of KDE from Qt in one consistent way?

Which wonders? The libraries or the platform?

The fact is that kdelibs as it currently is is incompatible with Qt applications, and therefore many parts of it do not belong in Qt. It is in a walled garden. You can use use none of it, or you can use all of it, or you can fork the parts you want to use into your own build and integration system. That is why it is hard to use and hard to sell.

The future I'm talking about is one where Gregory can use the coherent functional libraries without using all of them, and without being forced to discard his own platform of settings and i18n etc in favour of the kde platform ones. And without having to fork them or the build system for them.

In fact, Gregory had forked kjob, kimap and kmime into a Hg repository complete with replacing KDateTime for QDateTime, kDebug for qDebug etc, and a qmake build system before I told him that was probably not needed. That is even one of the most sensible ways of using the functional libraries of kdelibs today if you ask me. Isn't that a bad situation? The large pool of Qt developers can't see over the walls into our beautiful garden without a little help from one of us.

We would reach way more users. We could much more easily acquire contributors.

Wouldn't this be true if kdelibs was 'a set of Qt-based libraries which can be used in Qt-based applications'?

Over the last couple of years, KDE development has constantly shifted from library development to application development. Our struggles with even just doing the basic maintenance of the libraries show that. But we have a lot of shiny apps, people are excited about being part of our subcommunities centered around applications. There are still brave souls taking care of kdelibs, but it's really hard to keep up there.

It doesn't seem so bad to me, but I haven't really been around long enough to have something to compare todays situation to.

Anyway, without knowing whether your talking about merging libraries or the platform into Qt, and what that even means, I don't know if what you're talking about is a good idea or a bad idea.

After that we can start listing obstacles :)

Alexander Neundorf wrote:

I would love to use some libs from KDE at work in a Qt-only project. First candidate is kio, several widgets, the file dialog. But, I can't recommend this.

Exactly. Why should all of the libraries depend on all of the dependencies of all the other libraries? Why should a transparent network data transfer interface, some widgets and a file dialog depend on relational databases, semantic databases, string template systems, spell checking libraries and compression libraries?

That shouldn't be necessary of course and more modularity and encapsulation and less interdependence would make what you and others like you want to do possible. Then you wouldn't have to commit to the whole kde platform, maintaining its dependencies etc.

A good thing still might be to reorganize our modules (it's quite long that we discussed this the last time ;-). Into some part which doesn't bring many additional dependencies (widgets ? kio ? date and time ?) and some part which is more complex (desktop search ? pim ?).

I agree. This is what I proposed on the wiki.

But then again, the email address parsing from kdepimlibs probably doesn't have any dependencies, while maybe some widget where it is not obvious immediately drags in kwallet, dbus, etc.

These things belong in the platform integration level.

Said that, I think the current setup with "kdelibs" and "kdepimlibs" is not optimal. I think either having more library modules would have its advantages (smaller, more targeted modules with less dependencies than the whole thing), or also moving kdepimlibs into kdelibs would be better, then it would be at least consistent (everything is inside kdelibs). This would also move kdepimlibs from being "one step higher" than kdelibs to the same level as kdelibs, i.e. when you want to use it, you would not have to drag in kdepimlibs AND kdelibs, but only (a bigger) kdelibs. But maybe there stuff can be disabled, so you end up with less dependencies.

We seem to agree with each other, but I get the impression that many people didn't read what I wrote in the wiki. Can we use that as a starting point for discussing any reorganization?

http://techbase.kde.org/Projects/KDELibsModifications

All the best,

Steve