[kde-linux] Kget "My Downloads" [Is this MS Windows?]
Duncan
1i5t5.duncan at cox.net
Mon Apr 22 08:11:23 UTC 2013
James Tyrer posted on Sun, 21 Apr 2013 23:23:46 -0700 as excerpted:
> On question you missed is Plasma. I have never looked at the plasma
> code, but usually the type of instability that Plasma exhibits is caused
> by code race conditions. You don't mention if there are any plans to
> completely rewrite it from the ground up? Or, what will be done with
> it?
I don't know about the general case. I do know some specifics, however.
One of the big problems and my personally biggest frustration with
plasma, certainly so when one misbehaving plasmoid would freeze or take
down the entire thing, is that it was single threaded (at least where it
counted), and a single process with no protection between components...
in a plugin architecture marketed from the beginning as extensible by
third parties with who knows what sort of experience or lack of it, etc.
That just made NO sense to me!
But apparently, at least part of it was due to compromises forced by the
qt4 context they were working with. The technical details went fuzzy on
me, but apparently, there was simply no provision in qt4 for multi-
threading or protecting critical contexts which would need access from
multiple components at the same time.
So working with what they had, the solution was to simply serialize
pretty much everything... which meant that a freeze or a crash in one
third party plugin component froze or crashed the entire thing!
I'm not close enough to the development context to know the specifics of
how that is resolved in qt5, but I believe it's a reasonable bet that
this was a front-and-center concern as they reworked the implementation
for qt5, since the negatives of the qt4 solution were so immediately and
widely visible in plasma, so if I don't miss my bet, that limitation
should either no longer be there or should at minimum be dramatically
reduced in effect.
So I expect the qt5 plasma to be much better behaved in this regard.
OTOH, I honestly don't know what to think about the whole store-all-the-
valuable-config-in-a-single-ultra-complex-and-not-particularly-robust-
plasma-desktop-appletsrc-file problem. Given the defined plugin
architecture nature of the project, THAT problem should have been
foreseen early on, and a solution with for example that file as a
hierarchy of subdirs, with each component having its own rc file and
containers having nested subdirs as necessary, could have been devised
instead.
Since I don't know why they took the approach that common sense and past
experience suggested would be entirely inappropriate there in the first
place, with the predictable indeed occurring, I really haven't a clue as
to whether they might have learned from that mistake and corrected it in
plasma-for-kde-frameworks, or not. I'd /hope/ so, but...
Anyway, IMO addressing just those two issues would go a VERY long way
toward making plasma the robust plugin architecture desktop it was
envisioned and marketed as. I'm definitely hopeful, but other than the
reason to believe that the root cause of the one has been addressed in
qt5, I really don't have an indication where that's headed, at this point.
But if Kevin's correct and they're targetting a tech preview release for
this summer, we don't have long to wait now, to get at least a small
hint. If the preview has a plasma that still uses that single file for
all its components, I'm not going to be happy about the outlook. But if
they've fixed that, as it seems they should be doing pretty early on in
the new concept if they're planning on doing it at all in ordered to
avoid getting locked in again, then I'll have big reason for continued
optimism. =:^)
--
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
More information about the kde-linux
mailing list