Deep Inside the K Desktop Environment
Lemmingue writes "Ars Technica published a very good article about the KDE architecture. It's a essential read for anyone wondering how Konqueror can open documents in the same window or just understand the license issues regarding the Qt use.
The article describes most of the technologies behind the KDE (Qt, KParts) and how the project is organized.
The article is full of links, screenshots and diagrams."
And it makes to to slashdot only four months late! Unless Ars made a stealth update I'm not aware of?
"In the end they will lay their freedom at our feet and say to us, 'Make us your slaves, but feed us.'" -Dostoevsky
...you guys will link up my new Prescott article that went live this morning!
(Looking back at this post with the preview function, I'm thinking, "is this a troll, flamebait, informative, funny, all four, or none of the above?" I post, you decide.)
Senior CPU Editor | Ars Technica | http://arstechnica.com/
The freeversion of Qt is under two licenses: the GPL and the QPL. While most people have a rough idea about the GPL most people don't know about the QPL, Like you for example.
100% Crunchier
From TFA:
In addition to DCOP, the upcoming KDE 4 is expected to also support D-BUS, which was designed using DCOP as a model but with the added advantage of having no dependencies,
Thank $deity! KDE would in general benefit from ridding the application programmer from dependencies to GPL'd stuff. KDE "needs" (to the extent any piece of software needs anything) to be able to render Gtk-applications with native LAF, so that the application developers can choose their license freely. I'm not aware if the dependency problem with DCOP relates to Qt, however. Without GPL (and QPL), KDE could have been embraced as the standard Linux desktop environment ages ago. So far it only has the most users, but that's not enough if it's not "strategically viable" (if you work for Trolltech/KDE: please spare the lecture about corps affording $1500/dev/year, we've all seen it).
KDE could really collect the jackpot by allowing development of native KDE apps via Gtk/other LGPL'd lib. I assume QtGtk isn't up to the task yet?
DCOP, BTW, is a very sweet and underadvertised technology. We need DCOP-like scriptability for all the applications. It has a very transparent feel, just like a good Unix methodology should.
Save your wrists today - switch to Dvorak
Yes, we published this several months ago, and have made no recent revisions to it. If you're going to link us up (which we always appreciate!), why not do it to our new article on the Future of Prescott?
As a regular Windoze user, I love looking into KDE from time to time. I first tried it out in '99 on my Pentium 133 laptop and was somewhat happy. (It was certianly better than the X-win system on our Sparc 5 workstations.)
I now have Mandrake 10 and am very pleased with the progress, integration, and ease of use. Since I use NT 5 here at work, I am almost excited to get home and work on my system running KDE.
Good job, Mattias!
See, being from Tübingen can be Kool!!!
The Kai's Semi-Updated Website Thingy
--
Evan
"$30 for the One True Ring. $10 each additional ring!" -- JRR "Bob" Tolkien
Regarding the subject: probably because someone among the KDE people thinks s/he can do better than the author of the original app. As far as apps like kopete and kontact go, they actually did do better. Konqueror is still primarily a file manager (excellent browser too, but I guess the "standard" browser will be Firefox in the near future), and significantly better than nautilus as far ergonomics and features go. It also preceded nautilus chronologically.
Save your wrists today - switch to Dvorak
The idea is to have software the integrates and takes advantage of everything the kde environment has to offer. There are two ways of doing this. 1. Pull your hair out trying to cajole existing applications originally created off of an entirely different framework, to take some, limited advantage of what kde has to offer. 2. Start from scratch with an environment that makes fast development very easy and very quick, without massive quantities of hair left in your hands.
...and IN SOVIET RUSSIA, beowulf clusters imagine 1, 2, 3 profit!!!! jokes made out of YOU!!!
Slashdot posted it when it came out.
I'm convinced--the editors absolutely do not read Slashdot. The last straw was last week when Michael duped a story from three hours earlier that was still on the front page.
Gnomes Gone Wild?
Everytime some one posts a Deep Inside article makes me think of Deep Inside Devon, or some other Deep Inside .
Well, I don't really like juK... I use amaroK.
Gaim sucks. Kopete's better.
Evolution is slow. Kontact is fast.
All these programs, though, use KDE technologies that made them a *lot* easier to develop and a pleasure to use.
I guess the real question is: Why not?
Actually Konqueror/KHTML and Kontact are not really reinventing the wheel.
;) ), and second, everybody is reinventing the wheel all the time anyway, so what?
The work on KDE's filemanager and HTML engine dates back to the days when the only usable *cough* browser was Netscape4.x and Mozilla seemed only like a great failure.
Kontact is basically an aggregation of long time existing KDE applications like KMail, KNode, KNotes etc., pre-dating e.g. Evolution.
That said, this question about reinventing the wheel is stupid anyway. First, there are many things about KDE that KDE has had first (like, the first usable Linux GUI
Has it occurred to anyone that supporting non-l337 g33kz using KDE as a primary desktop will be made more difficult just because it's impossible to keep track of all the dopey names for things?
How does 'kopete' relate to 'chat' or 'instant messaging'? How does 'Konqueror' relate to 'browsing the web'? How does 'Apollon' apply to p2p? How does 'K3b' apply to CD burning/ripping? KMail works. KControlCenter works. Easy for someone to figure out what it does by its name. That is what A NAME IS FOR. We're not dealing with hungarian notation here: The whole idea of a UI is that it needs to be completely descriptive at a glance, and anything that is counterintuitive or obscurantist needs to be fixed or replaced. Normals expect this, they don't think it a crutch, and they're not expected to know better (as developers who take issue with HN may argue other developers _are_ expected to).
At least Apple (and even M$ to a lesser extent) uses prosaic names like iPhoto, iChat, Mail, DVD Player, iCal, Address Book, which makes it easier for mortals to understand their metaphor (Safari being the most egregious exception). KDE ware names seem purposefully opaque, and if you want to make a dent in the GUI you either have to hope for great icons and forget the names, or you have to do more work than you should have to do.
I love KDE, I think anyone from 3 to 103 could use it comfortably, but I shudder to think about all the help calls I'd get from people just trying to find shit in the interface.. It took me an hour of googling to figure out what the hell Apollon was! Anything that can or should be in a base KDE release (or a bundle, like kdemultimedia or kdenetwork) should have a simple, descriptive name, even if it means stepping on the toes of obsolete projects or capricious developers.
(OTOH, maybe you don't give a damn about condemning your less technical friends and/or family to a life of M$ hell. Oh well.)
konqueror 3.2 doesn't render their front page created website properly ...
I'm not particularly a KDE fanatic, and frankly Firefox is normally better than konqueror. However I tend to use konqueror when I can just because it integrates so well with everything else. The same is a million times more applicable to kopete and kontact. If you don't think of them as separate programs, but as part of a unified desktop then I think it makes more sense.
My first experience with KDE was this weekend.
I finally decided to put my money where my mouth is (so to speak) and installed mandrake 10.
Brilliant, I must say. But, I only have one concern. I was a bit taken aback that the install ran slower then windows 2k on my celeron 400.
When i say slower, i mean that browsing the web took longer and programs took longer to load and execute. Windows took longer to move around the screen. Menus took longer to "pop up." Basic stuff, really.
Functionality-wise, I am not complaining, I really like how things are working so far. I just need to familiarize myself with a few more things (navigation, program location, ect) and ill be fine.
I admit though, I was looking forward to a slight speed increase. I was a bit taken aback that things actually slowed down.
no
How does 'kopete' relate to 'chat' or 'instant messaging'? How does 'Konqueror' relate to 'browsing the web'? How does 'Apollon' apply to p2p?
I suppose one way of figuring this out would be that the default menu entries for these apps clearly state what they do.
Kopete is found under taskmenu--internet--Instant Messaging (Kopete). Konqueror is lister as "Web Browser (Konqueror)"... etc.
I can't say that I ever had troubles finding the right apps in KDE, even when I was a total noob.
"Qt is GPLed, and as such, prevents FOSS developers from using any OSS licenses that are not compatible with the GPL. Ironically enough, XFree86's license is not compatible with the GPL, and hence XFree86 could not include a Qt configuration utility."
Your first statement is wrong. Should I bother reading the rest?
http://www.trolltech.com/developer/faqs/license_gp l.html#q19
http://www.trolltech.com/developer/faqs/license_gp l.html#q114
"Propietary", and I'm not trying to be flippant.
Well, yes, but proprietary is a very large umbrella term -- it can refer to everything from the Windows source code to the patents Apple holds on TrueType kerning. I meant a way of distinguishing between software that is free-as-in-beer to use and distribute, where source can be downloaded and learned from with no NDAs or registrations or anything being signed and the rest of the body of what we generally would call "non-Free", "non-OSI-compliant" software.
They would be wanting to use millions of man-hours of work without contributing back to the pool, and I don't think that's a reasonable position to adopt.
It is certainly less efficient, but not all software of this class is like the NPL, where the original author of the work gets special rights to improvements. Povray or xmame, for instance, have non-OSI-compliant licenses, but do not grant special rights to anyone. I guess that I can agree that it might be rather nice if everyone had intercompatible licenses, but I don't agree that the GPL is the "ultimate" license or that it's a good idea to try to force all GUI desktop software for the premier hobbyist OS to fall under a particular license (or pay a penalty fee for not doing so). I'm just not comfortable with it.
Povray's kind of a disappointment. I completely understand why they can't release it under an open license, and I certainly don't hold those reasons against them, but it's sad that the (best? only?) source-available raytracer still has so many strings attached. Here's to hoping that they can get it all resolved.
There are a number of GPL-compatible raytracers. It's not really all that hard to write a raytracer -- I did one for a class project once. YafRay is GPLed, CoolRay is GPLed, and Blender has an integrated raytracer (as well as other renderers).
May we never see th
If they're doing closed source non-GPLed development then they should have to pay this. I don't see why this is a problem.
Sweet, thanks for offering to buy me a $3000 cross-platform developer license.
The licensing issue is the one reason why I'm avoiding Qt. I dump Microsoft because they charge me lots of money for things I don't want.. and Trolltech turns around and tries to do the same thing. Qt/KDE offers me less choice and pads the pockets of Trolltech if I wish to go closed source. Saying that GNOME sucks donkey balls does not change a thing, not is it an effective argument.
It's about control. I currently control my code on all platforms that I choose to release on. I am not about to change the licence that I use because some whiny snot-nosed hippie on Slashdot told me to.
Until KDE allows LGPL'd use of their libraries - free use through dynamic linking, just like every other major GUI system including Windows, Os X and Gnome - KDE will not have the support of the commercial software industry. Unless Gnome wins the desktop war, the Linux desktop will remain a fragmented mess that nobody can sell commercial applications for.
Thank you, Gnome developers, for predicting the licensing issues and creating your competing windowing system that allows developers freedom to create applications on their own terms.
It's even more broad that that. The QPL does not specify OSI-approved licenses only, it only specifies that the source code be available with rights to modify and redistribute. Pine and povray might possibly qualify. Old BSD licenses with advert clauses most certainly do. qmail and djbdns probably not.
Don't blame me, I didn't vote for either of them!
>I was a bit taken aback that the install ran slower >then windows 2k on my celeron 400.
>When i say slower, i mean that browsing the web >took longer and programs took longer to load and >execute. Windows took longer to move around the >screen. Menus took longer to "pop up." Basic stuff,
>really.
I've got the release of KDE that came with RedHat 9, and I will say that it has gradually been winning me over, lately. Konqueror is a very useful file manager when in twin-pane mode, and Konsole also makes my life a lot easier.
That said, one thing I have noticed is somewhat poor performance on slower machines, and even on my own setup (Celeron 1.7, 512 Mb ram) things can get a bit choppy at times. I would tend to conclude that KDE is built primarily for aesthetics and secondly for functionality, with efficiency being a fair way down on the list of priorities.
If you're sufficiently computer literate that a few less frills won't bother you, I'd recommend Fluxbox, a smaller and lighter window manager which from what I've seen has become rather popular with the LFS crowd in particular. XFce is another possible choice, and personally I've always been a huge fan of Enlightenment. E can be a bit slow initially, though...you'll need to turn off some of the more frivolous additions such as the desktop micro-window and so on, but I used to run that on a Celeron 400 myself and had no problems.
I didn't used to like KDE at all I will confess, but I've learned recently that it does have it's place. Resource efficiency however is not what it was designed for, so you really need to have the horses to drive it.
GPL is a partial solution? Better tell that to the kernel folks!
A deep unwavering belief is a sure sign you're missing something...
I am a long time Gnome user and only recently have been using (and really liking) KDE. While it may seem to be reinventing the wheel, there is not much choie for a KDE developer. They cannot reuse GTK/Gnome stuff, since that would add more dependencies to a KDE desktop. Why would a KDE desktop user want Gnome/GTK dependencies? Just as why would a Gnome/GTK desktop user want QT/KDE dependencies? The two toolkits and desktops are very different and use different languages (C and C++) so the hope of reusing GTK/Gnome and QT/KDE is slim to none. They could reuse ideas, but not code. Just as it would be hard to reuse code between MS Windows and Mac OSX.
If Tyranny and Oppression come to this land,
it will be in the guise of fighting a foreign enemy. -James Madison
Actually I didn't intend to wink, that was supposed to be normal smiley. I think KDE was the first usable Linux GUI, and keeps being the best. YMMV
As for the usability problem, if the dialog has 'apply' button, then common sense says the settings will be applied after you click that button. I don't see any problem with that.