KDE's rough edges... what are your experiences?

Duncan 1i5t5.duncan at cox.net
Fri Nov 1 13:02:35 GMT 2013


Michael posted on Thu, 31 Oct 2013 11:45:04 +0100 as excerpted:

> Am Tue, 29 Oct 2013 14:35:29 +0000 (UTC)
> schrieb Duncan <1i5t5.duncan at cox.net>:
> 
>> Michael posted on Tue, 29 Oct 2013 06:48:40 +0100 as excerpted:
>> 
>>> If KDE5 will have the same QA-style, I guess KDE will
>>> go into the history books of open source software, as always shiny
>>> but buggy to a degree that it may even be unusable.
>> 
>> Call me an optimist (heh, wrote that before noting your email address 
>> =:^) if you will, but I believe the kdeers are on the right track
>> with this kde frameworks five stuff.
> 
> That means you think with QT5 and KDE5 the overall bug- and
> maintenance-situation will improve?

Yes...

[tl;dr summary, more modular-qt/kde-frameworks discussion]

>> Both the kde foundations and the qt it's based on are becoming a lot
>> more modular, with the ability for developers to pick and choose the 
>> dependencies they want/need without having to bring in the whole big 
>> currently monolithic qtlibs and kdelibs.
> 
> How I see it, that would only help to get the issue-list down for
> people NOT using the full-stack of KDE.

It tightens down the scope.  Individual modules are smaller both in code 
and in authors.  Less code means less bugs.

At the same time, more projects that would have previously ruled out 
using that library due to the cost of pulling in the whole ecosystem will 
likely find the now lower cost of pulling in just the module they need 
rather more palatable.

More application users and more application developer's and advanced 
user's eyes looking at a smaller pile of code... should mean faster and 
more in depth bug finding and fixing.

>> Qt itself is maturing as a developer-community-based toolkit in its
>> own right, and qt5 is far more community-driven than any qt ever
>> before in history.
> 
> More community-driven as non-qt frameworks as well, or at least on par
> with them? And regarding the issues discussed in this thread, I don't
> see a necessary benefit from the possibly higher factor of
> community-drivenness there too. And I doubt the issues I have in mind
> here are QT-issues.

When qt was driven by trolltech and then nokia, it was corporate 
controlled, and certain changes that might have made sense from a library 
and code perspective would not be accepted because they conflicted with 
where the corporation intended to take its product.  It was sort of like 
closed source, you can't fix it as it's not in your control so you 
develop your own workarounds.  It wasn't near as bad as closed source 
because the source was open so people could see what the code was 
actually doing without reverse-engineering it and could submit proposed 
patches, but whether those patches would be taken or not...

>From the various mostly kde devs blogs I've read, but supported by the 
razor-qt and lxde moves as well, that's gone and qt is fully community 
driven and community transparent now.  It's far easier for kde to move 
former kdelibs functionality down into qt where it makes sense, yet 
because of the increased modularity, doing so doesn't bloat qt as a 
whole, because to a large extent the code is going into optional qt 
modules, not into qt-core where it'd be forced on every qt user, 
regardless of need.

Meanwhile, kdelibs is itself becoming smaller as bits of it break off 
into optional kde libs or into various qt modules.

The bigger picture is one of the entire ecosystem going more modular, 
with higher level users now able to interact far more directly with their 
now narrower scope lower level dependencies, meaning the whole stack is 
more transparent and what were kdelibs or kde-category-libs level 
workarounds to qt level bugs in the kde4/qt4 and even more the kde3/qt3 
era, now can be fixed directly in the qt module with the bug by the 
developer experiencing the bug themselves (of course providing they're a 
qt dev too, but it's a community and that's open to them now).  And the 
same at the kde frameworks level as kdelibs breaks into a framework of 
libs, some higher level some lower, with some functionality transferred 
to qt and thus not kde level at all any longer.

That problem I mentioned with khotkeys4 that ultimately traced to qt4 not 
having proper multikey support?  Based on comments I've read, qt5 doesn't 
have that problem, in part because the kde developers who suffered with 
it in qt4 made very sure qt5 did it right.

Entire qt4 era workarounds in kdelibs and above are now being chopped 
from the qt5/kde-frameworks-5 code, because the problems can and are 
being fixed directly in qt5 now, so the workarounds are simply no longer 
necessary.  Both directly less bugs and less workarounds as a result, and 
indirectly, slicing whole layers of workaround code out as a result, 
meaning any bugs in THAT code are now gone!

> Off-Topic (writing style): Both paragraphs repetition over repetition of
> former statements with only small amounts of new arguments. Do you see
> that now in retrospect?

Part of that is inherited.  My dad's a teacher, and one technique 
teachers use is stating and restating the same thing in different ways 
and from different perspectives, so that ideally it'll eventually soak in.

Now as a student I'd often skip quite a bit of the daily "make work" 
stuff designed to drive a principle home, and would /still/ typically 
score high enough that in on-the-curve tests I was often setting the 
upper end of that curve.  But others /needed/ that repetition or the 
material simply wouldn't sink in.

Perhaps its those people who get the most benefit from my posts, which 
explain for the first time in language and concepts (and repetition) they 
can understand, the basics of some concept or other...

Those who don't need it... can skim or skip, much as I did back in school 
myself.  I've already said I appreciate the killfile, and don't mind 
people making use of it on me, if indeed they don't find my posts useful.

>> Up the stack at the application level, kde5 is breaking up and
>> shipping most individual apps with their own version tagging and
>> release timing, so apps that are evolving fast can ship updates every
>> month or even every week if they wish, while already mature apps in
>> primarily maintenance mode might ship an update a year, mostly just
>> to keep them building on current libraries with current tools, with
>> the occasional security update as well when necessary.
> 
> With QT4 / KDE4, could applications not just build against maybe older
> qt- / kdelibs which would then not prevent fast-paced
> application-development?

For the version-synced releases that isn't in general supported.  While 
many apps and some libs didn't have a single code change in especially 
the monthly bugfix-only micro-releases and sometimes in the semi-yearly 
feature releases as well, (re)building against the version-synced kdelibs 
and other lower level dependencies was assumed, and failing to do so 
would sometimes trigger interesting bugs.  (Gentooers tend to have more 
personal experience than most with these sorts of bugs, since gentoo is a 
rolling release distro and actually running a version of an app or higher 
level library on a changed version lower level library is not only 
possible but done routinely, and there are in fact automated tools such 
as gentoo's revdep-rebuild to help spot and fix via rebuild such 
problems.)

I remember the update I did, back when I was still running konqueror as 
my primary browser, when it broke after updating kdelibs, until the 
rather later in the build process libkonqueror and then konqueror itself 
was rebuilt.  Most of the time I continue to run kde during the upgrade 
but don't try to restart it, as I know some bits likely won't work until 
the upgrade is completed.  In this particular case, however, the old 
konqueror wouldn't run on the new libraries, so I was left without a 
(primary) browser until konqueror itself was upgraded too.

The independent kde-based apps such as amarok and k3b do allow this in 
general, but there are both code level workarounds to manage it and 
occasional bugs it triggers even then.

Which is where the whole independent release cycles thing gets 
interesting.  It can be made to work in general and in fact that's how 
library upgrades are handled normally, but there are certainly other 
compromises necessary in ordered to do so.  (Generally, an upper level 
depender will state a lower level dependency minimum version requirement, 
and lower level libs maintain their old interfaces within a major 
version, only dropping them at major version bump time, and only adding 
new interfaces but not changing the exposed older interface for minor 
version bumps.) But those sorts of compromises and bugs tend to be 
reasonably well understood and the community is already used to dealing 
with them, since they deal with them in the independent library case all 
the time, so I believe overall it'll still be an improvement over the 
current situation.

> Right, there *is*! No idea why the new "de-coupling style" benefits
> such projects. BUT ignore the question you might see here, as it will
> go in a direction which is out of the scope of this thread. Really,
> don't answer the question, ignore it.

If you say so... =:^)

>> The effect should be that individual kde apps will be chosen on their 
>> merits, no longer simply because they're part of kde, and people
>> doing what I'm effectively already doing here, mixing a few kde apps
>> with a few gtk apps with a few independent apps, picking the app in
>> each case that best fits their needs, will become much more common.
> 
> I really don't see *any* important change there. As all sensible users
> already know that they can mix applications today. There was never an
> issue with that. And no one I know would suggest otherwise. I use
> K3b and Amarok for years now on all DEs. The only benefit I see would
> be a possibly smaller dependency impact, slightly less used
> harddisk-space, which isn't a big problem these days anyway and wasn't
> for a long time.

I believe you're underestimating the impact.  I've seen a lot of folks 
say they like k3b, for instance, but won't install it because it'd be the 
only kde (and sometimes only qt) app on their system, and they refuse to 
pull in the whole heavy set of kde deps including qt and kdelibs, just to 
get k3b.

And even that underestimates things as there's a lot of people that see 
that it's a kde app or take a look at what it would pull in, and cross it 
off their list as too expensive, without ever having tried it.

Of course on build-from-sources distros such as gentoo, that effect is 
amplified many times, as every dependency pulled in is likely to be 
upgraded and rebuilt many times over the period it's a dependency, and 
that's a real cost, not the trivial install and forget cost it is on 
binary distros.  (I look at it as significant encouragement to do what 
the security folk already say is best practice, only install what you're 
going to use, and if you're not going to use it regularly, consider 
uninstalling.)

As an example from the flip/gnome side, I do have some gtk2 apps (pan, 
firefox and now claws-mail being the big ones) installed, but when I 
decided kmail2 with its akonadi deps and bugs was no longer the right 
choice for me, I looked at and immediately crossed off several email app 
choices (IIRC balsa was one of two, IDR the other, evolution was off the 
list already since it uses the same database style solution I was leaving 
the akonadified kmail to get away from, tho arguably evolution is more 
mature so it should actually /work/ there) simply because of the gnome 
related deps they'd pull in, that no how, no way, was I willing to do.  
Fortunately I found claws-mail, which turned out to be about the perfect 
match for my needs, without all those inflated deps I didn't need =:^), 
but there's several email apps that I otherwise would have at least done 
more research on and might well have installed temporarily to play with, 
if they hadn't wanted to pull in most of gnome in ordered to do so.

And that's on a full size/strength desktop.  Then there's netbook level 
machines (I have one) and even embedded, where non-volatile storage is 
often single or double digit gigs and memory is at best a gig or two.  
Big deps are a real luxury there, and while I do have kde on mine, I'd 
definitely veto both gnome and kde on it (and it wouldn't even be a 
practical choice on the smaller <10 gig non-volatile storage machines), 
much more so than on my main machine.

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman

___________________________________________________
This message is from the kde mailing list.
Account management:  https://mail.kde.org/mailman/listinfo/kde.
Archives: http://lists.kde.org/.
More info: http://www.kde.org/faq.html.




More information about the kde mailing list