Slashdot Mirror


KDE & Gnome Usability Engineers Interviewed

Gentu writes "After the recent flamewar between the KDE and Gnome user camps, OSNews brings together the most influencial KDE and Gnome usability engineers to talk about how they will be able to overcome a number of obstacles in order to 'unify' KDE and Gnome in ways that could bring to the Unix desktop an easy to use, integrated and fully interoperated DE to better compete with the commercial alternatives. Waldo from SuSE and Havoc from Red Hat are taking part to the interview, and also Aaron, the head of KDE's usability."

24 of 372 comments (clear)

  1. Unification can only help by Anonymous Coward · · Score: 2, Interesting

    If both parties can indeed merge to form a unified desktop environment, this could have a HUGE impact in the acceptance of Linux on the desktop. My biggest prob with Linux is trying to decide which GUI to standardize on. I feel a slight tremor in Seattle.

  2. Integration across the desktop by manyoso · · Score: 5, Interesting

    In general I found myself agreeing with Aaron
    's comments more than the others. The main problem I see with Havoc and Waldo and all the others pushing for more shared technologies across the desktop is the implementation technology. KDE is built from the ground up upon Qt/C++ and this is one of the major reasons for it's considerable success. I see no reason to change this winning strategy.

    Recently, we've been discussing the incorporation of Glib into KDE on the core development list. While I am not against this per se, I wonder whether the GNOME developers will ever allow the use of Qt/C++ in any shared technology. It seems to this day that Qt licensing is still a problem for GNOME. One of the greatest ironies in all of Free Software, IMHO.

    If Havoc and Waldo are serious about integration then this problem will have to be addressed in earnest. I do not want to see KDE come down a level in technology just so that GNOME apps can integrate into KDE. Better to improve the great applications we currently have in KDE then waste so much time focusing on some elusive merging of these two.

    Besides, choice is good and GNOME with KDE offer this. Where we can agree upon specs and closing superficial differences we should and that will help those who choose to use GNOME apps in KDE and vice versa. But please, let's not rearchitect KDE and strip it of Qt.

    1. Re:Integration across the desktop by manyoso · · Score: 3, Interesting

      They are far superior when it comes to an object oriented development environment. Code reuse is a good thing and C++ has support for object orientation in the language itself. Now, while it isn't necessary for everything, it certainly is the best solution for a desktop. KDE is more integrated and one of the major reasons is the use of Qt/C++.

      BTW, I don't take the 'KDE is perfect, GNOME sucks' attitude. I prefer KDE, but this choice does not in and of itself disparage GNOME. Plenty of opportunities for improvement on both sides.

    2. Re:Integration across the desktop by Anonymous Coward · · Score: 1, Interesting

      KDE may be more integrated but where are the SUPERIOR APPS? on KDE desktops you see xmms, gaim, xchat, and sometimes evolution because they're far superior to noatun, kit, ksirc and kmail (which has the worst imap implementation ever..). It's all about the apps..

    3. Re:Integration across the desktop by IamTheRealMike · · Score: 2, Interesting
      One of the points behind Glib is that it is a cross language technology. You don't have to write stuff in C to use GObject, they are (supposedly) fairly easy to bind to other languages. I guess you'd know, as you wrote the KDE GStreamer bindings.

      The idea behind .NET is similar - code sharing between languages. The lack of pretty much any automatic-binding (like corba or com) object model at all, means GObject is the best we've got.

      So, if people prefer Qt/C++ then that's cool, GObject lets you use that. I don't know C++, and I don't want to learn it unless I have to, so I can use C, or Python, or Perl, or C# etc etc

  3. one API. one look. by CreatorOfSmallTruths · · Score: 5, Interesting

    a unified look and feel to both Gnome and KDE will be great. I would even go further to suggest that someone should write a book in the lines of the M$ book of standards (its a book full of "thats how a window should look like" and "thats how a button should look like" etc.) for the linux environment.
    I know this is sort of a blasphemy, after all - linux is about tweaking, but nevertheless its quite irritating to use middle mouse to paste in one program, ctrl-v in the other and shift-insert in the third , without any way of deciding or even a way to know in advance.
    just my 2 cents...

    1. Re:one API. one look. by stratjakt · · Score: 2, Interesting

      There was a "book", or rather a standard set up by the Open Group back when. We were supposed to have (IIRC my history) X as the window server, OpenLook as the desktop manager, and Motif as the widget library/api.

      The rub was that everything was Free except Motif, which was commercial, and threw a wrench in the whole "standard" Unix desktop. I guess it was pretty much the superior piece of kit at the time.

      The desktop projects need to work together towards the same goal if a Free desktop is to go anywhere. The code, the API, all the behind the scenes stuff needs to work in a common way. There needs to be a common clipboard and a standard for the way a window works.

      There's then still a ton of room for 'tweaking'. Most people's 'tweaking' consists of changing some event sounds and putting on a wacky fractal wallpaper anyways.

      --
      I don't need no instructions to know how to rock!!!!
  4. Re:As long as the result isn't Knome... by Anonymous Coward · · Score: 1, Interesting

    Heh. This is one of the more amusing criticisms of KDE to me. The name of the app is just marketing man. It can be changed by distros or hidden in the menus or whatever. While the K* naming scheme might not be so pretty it helps to show which apps are integrated into KDE.

  5. Finally at long last..... by NDPTAL85 · · Score: 4, Interesting

    ...REASON joins the open source movement!!!

    Choice is good, when limited. When allowed to run free, its actually a prison unto itself.

    Too many GUI's, desktop environments, xfree86 shells, WHATEVER you wanna call them (see there's even too much choice on naming the damn things) and userbases get splintered along with their apps making Linux HARDER not EASIER to use.

    A united GUI is the best chance Linux has for a respectable marketshare on the desktop.

    And for all you "But you will RUIN my LEENUCKS if you make it easy to use, I like being counter-culture and unique!!!!!" and "Dammit. Choice is sacrosanct! I don't care if NO ONE can figure out how to use Linux, if it doesn't have 500,000 different ways of doing the same thing then it isn't worth installing! Can't you see? Linux is ALL about WASTEFUL and POINTLESS duplication of effort! Why go foward when you can spend eternity going nowhere!!?!?!" people relax. I am sure someone will create a new Linux distro, the "Ub3r L33t Linux Extra-Special Hard To Use" distro with a built in AI that will monitor your usage over time and re-arrainge various commands randomly to keep you on your toes and make sure Linux never becomes "too easy" for you. Legions of filthy unwashed nerds and geeks, dissilusioned by the increasingly easier to use mainstream distros will flock to this new permanently hard to use distro. They will form communities to provide each other with moral support. Real Estate firms will notice a skyrocketing in their sales and rentals of basement unit apartments/condos as the geeks settle in for a lifelong pursuit of sunlight shunning and the disdainment of anything easy or social. Although these geeks and nerds will think their intelligence is par none, they will miss all other technological advances and fall further and further behind the rest of society. When their savings finally runs out and they apply for computer jobs interviewers will be amazed that you've all spent the past 5 years using what will appear to the rest of the world as "DOS Linux". Laughed out of the interview the poor geeks will have to settle for flipping burgers at the local fast food restaurant for a short time until they are replaced by burger flipping robots. Finally realizing their worthlessness to society in general they will join an EverQuest cult where they will all live in massive communes cut off from the rest of the world and live peacefully until someone forgets to pay the EverQuest bill and they all jump off a bridge from mass depression.

    --
    Mac OS X and Windows XP working side by side to fight back the night.
  6. Re:glib is a lovely library by nitehorse · · Score: 2, Interesting

    Well, this isn't about moving everything to use glib instead of the Qt-based equivalent data types at all (which is what several of the developers on kde-core-devel seemed to think) but simply about moving the copy of glib out of arts and into kdesupport. This way, we only have to keep kdesupport in sync with the latest glib stuff, and arts itself doesn't require updates when glib bugfixes are implemented.

    This is just my take on it, though - I may be misinformed or just plain wrong, but that's how I understand it. As I said, this has nothing to do with porting KDE to glib or anything like that, merely making the dependency tree slightly more sane and cleaning up arts a bit.

  7. the fundamentals are key by path_man · · Score: 3, Interesting

    When I look at areas where both Gnome and KDE can both improve, I see the basics. Things like printing. Things like sound setup. CDRW... DVD... improved .jpg and .tiff and other image management & manipulation.

    I know the immediate, knee-jerk response is going to be that there are great programs out there which handle all of the things I listed above. The problem is they aren't as integrated into either Gnome or KDE as they SHOULD be. Whether we like it or not, the Microsoft Windows 2k & XP interface is the gold standard for how applications are integrated into the desktop.

    What we should be thinking of is how we simplify the integration of applications into both KDE and Gnome desktops.

    --
    The surest sign of intelligent life in the universe is that none of it has tried to contact us. -- Calvin & Hobbes
  8. Funny excerpt... by CoolVibe · · Score: 2, Interesting
    From the article:

    9. Despite the advancements of RPM handling, apt-get from Debian and Gentoo's Portage, users are still not comfortable downloading applications and easily installing them. Either dependancy hell (RPM) when downloading apps from the web, bad interfaces for apt-get (Synaptic is not what I would call "niiice") while Gentoo itself is a nightmare to install for new users, makes the installation of... random Linux applications pretty impossible for new users.

    And how is that a bad thing? No more shareware syndrome. Panic installing of random software is a sure fire way to hose your system. Experts know this, lusers don't.

    Joe-sixpack windows (and mac) users are very prone to the shareware syndrome, _because_ it's do frigging easy to install random software. Although the uninstallation step on the newest Mac OS is a breeze (drag app into the garbage), under windows, the uninstallation can leave a lot of cruft behind.

    Oh well, I'm just ranting. It's just something that caught my eye and couldn't help noticing.

    1. Re:Funny excerpt... by rocky28 · · Score: 2, Interesting

      You're kidding right?

      Linux is better than Windows and Mac OS because it's harder to install software?

      Take the blinkers off, sunshine.

    2. Re:Funny excerpt... by dvdeug · · Score: 2, Interesting

      And how is that a bad thing? No more shareware syndrome. Panic installing of random software is a sure fire way to hose your system. Experts know this, lusers don't.

      And how exactly do you take 8 different programs to do the same thing and find the one that's best for you? The advantage of Debian for me is that I do it all the time, and it doesn't hose my system (which I understand most Linux and BSD distributions have also got down pat.)

      Joe-sixpack windows (and mac) users are very prone to the shareware syndrome, _because_ it's do frigging easy to install random software.

      Again, that's not a bad thing. When I hear jokes about "I'm going to make Windows stable by reinstalling Windows and only installing a few programs." and the other character stares while he installs ICQ, Winamp and a couple dozen other programs, it makes me shake my head. I can install all the programs I like in Linux without worrying about stability.

  9. I noticed that they even didn't touch WinXP by Anonymous Coward · · Score: 2, Interesting

    Believe it or not, these three "experts" have never seriously touched XP.
    As a UI designer, you should learn from all good/bad aspects of other UIs. Simply rejecting idea from Microsoft is never the wisest approach.

    I don't mean Microsoft is any better, but it is foolish to act blind.

  10. Re:Interoperability is king by sploxx · · Score: 2, Interesting

    I dont want to troll or take the GNOME side, but I think here is a general problem of KDE:
    All it's libraries are very tightly integrated, this leads to something like a monolithic block.

    Just think of a console program using container classes from qt - it has to be linked to the libqt, containing all the qt stuff (GUI etc.). Because the ld.so doesn't load the whole stuff, this doesn't mean that this is harmless. C++ container classes just don't have anything to do with GUI classes.

    In other areas, this scheme is true as well. I think GNOME could learn much from KDE about a unified interface but KDE could learn the "build it from small, *independent* components" from GNOME.
    There are many interesting libraries originally developed for the GNOME project but usable in other contexts, but I can't think of any library in KDE that makes sense alone.

  11. Re:Common object model by IamTheRealMike · · Score: 1, Interesting
    You make a lot of good points. Let me try to address them.

    Well, it's still not possible for me to access those distributed objects from the command line.

    Well, in fact you can query them, but in general if you're poking objects from the command line this is more a case of scripting IPC than objects.

    Talking with a few GNOME developers, it seems that something this simple, this useful, is still not possible in GNOME (Please, correct me if it is! I hate being misinformed).

    If the media player exposed a CORBA/Bonobo object (i believe rhythmbox does), and if there was a bash "poke me" CORBA client (i don't think there is), then there'd be nothing really stopping you. But CORBA isn't so hot for DCOP style simple scripting - the recent threads on desktop-devel-list contain more about that.

    As far as the 'distributed' nature of CORBA: Can you show me how to take advantage of this?

    By distributed, I don't necessarily mean distributed between different physical computers. If you look at DCOM on Windows, it's most often used to marshal calls between different processes or threading contexts. It's rarely, if ever, used for network transparency. But as the technologies are practically identical.....

    The language-neutrality I'll give you, but in response to that: How many useful Bonobo parts are being implemented in Python? How about ruby? Or Perl? Or maybe Smalltalk, or Java? No? Why are they all in C, if the language doesn't matter? (Again, correct me if I'm wrong - but I've yet to see a Bonobo part implemented in C++, let alone any scripting language.)

    Most stuff in GNOME is C, because C is easy and that's what the developers know and like (just like, why is the media play in KDE in c++, when really that kind of thing is better off in python imo).

    There aren't any Bonobo objects defined in Python (although there are some used) as far as I'm aware, simply because the GNOME CORBA efforts are seriously starved of manpower. It's a technology with much potential, after all, look at DCOM/ActiveX on Windows, which is very similar in ideas, but little usage. Partly that's due to it being complex, and due to lack of good working documentation. I only "got" CORBA after reading an (old) Bonobo/Python tutorial. I realised how easy it was to load and use objects, without having to care what they were written in. It was COM, but for Linux, and better! Unfortunately, the hill it has to climb for general acceptance is too steep. Eventually I'll let go, and realise that politically we probably have to start again with a neutral solution. We'd end up reimplementing CORBA under a different name, and it wouldn't be standards-based, but maybe it'd be better as well.

    I'd note that a bigger problem is lack of good dependancy management. I'm firmly of the opinion that most desktop apps should be written in Python/Ruby/C# - not C++ nor C. The main problem is that for instance, Straw, an RSS reader using the GNOME/GTK python bindings, has a list of dependancies that is positively scary. The GNOME parts aren't so bad, but it needs bindings for all kinds of wierd database libraries and so on that have to be built separately. So, many people don't use it, cos they can't install it. That's one thing I'm trying to work on. Objects would have the same problem.

    In short, I find that the KDE technology gives us flexibility that we don't see in GNOME, and it works plenty fast enough for our uses, while also being easily accessible to new developers.

    Partly that's because KDE is C++ only. I think these C vs C++ arguments are pretty silly, neither of them are all that great for desktop apps, even games! Try frozen-bubble. It's written in Perl/SDL. Easy peasy.

    How long do you suppose it takes a new GNOME developer to get up-to-speed on using ORBit?

    Much longer, but it's apples and oranges. You can use CORBA to do DCOP style scripting, and also distributed (ie process/network-transparent) objects. You can't really use DCOP for such objects, not without huge, enormous pain. The whole DBUS vs CORBA thread in gnome is about that distinction.

  12. Re:Sigh.. by larien · · Score: 2, Interesting
    Well, I guess there's two arguments:

    1. Gnome should never have started because it took developers away from KDE.
    2. Competition from Gnome has pushed KDE to strive for better

    Which is true? *shrug* just playing Devil's advocate, again.

  13. KDE .vs. Gnome Flamewar is Asymmetric by ishmalius · · Score: 2, Interesting
    I use both KDE and GNOME, each for its own benefits, so I would like to think that I am an objective third party observer. I'd like to think that KDE and GNOME are merely two planes of the desktop universe, orthogonal to each other. Saying one is better than the other, in my opinion, would be uninformed.

    Each has a clear design quality that the other could use.

    • KDE: Elegant API
    • GNOME: Good component model
    Each has a design flaw that still needs to be overcome.
    • KDE: Still very tough to link externally-built C++ objects.
    • GNOME: The GTK and GLib libs still need to be ANSI-ized

    So, when it comes to flamewars, why is it always the KDE guys who do most of the bitching? Why are there so many articles about why GNOME sucks? Why do KDE guys tend to shout? ;-) Why do the KDE guys seem like Bolsheviks, and the GNOME guys seem like Mensheviks?

    My poor theory, which is almost certainly off the mark, is that since GNOME has garnered some corporate attention, there is no longer a single face (besides Miguel de Icaza) on the project; it has become very much an amorphous enterprise. The KDE project, having been spared this attention, still has an individual character, and still takes things very personally.

  14. menus and apps by zogger · · Score: 2, Interesting

    --I only got one serious beef with the various distros I've tried. I want ALL the apps installed on the machine to show up in the GUI menu system. I don't care if it's a little dragon or a little fat guys foot, when I click on that thing down in the corner I want the menu to be complete. I got stuff on here I don't even know what I got. No idea where it even is. That was my first impression of Linux, I KNEW I had a lot more apps then what showed up.

    The only other useability beef is dialout, I had dismal luck at first getting a normal over the old fashioned telephone wires internet connection, MAN that was annoying. I have yet to get kppp on mandrake to work,but I did get redhats dialer and front end to work in the 7 series, and not even gonna attempt to do it with "tweaking files" ever, ME tweaking files is an invitation to mass FUBAR, this is just *so true* it ain't funny. I love that that option is there, sometimes I fool with it, but NOT with my inet connection, that's the primary reason I own a computer.

    Besides that, it's a pretty nifty system, if the developers can integrate, more power to them! I'd love to see it. The concepts for GUI are fairly easy, you have to be able to look at what's there, and it should make sense and do what it's told. If it can't, then it won't get used or people will get frustrated. GUI it appears can be made more complex, but then you have to ask "why do that?"

  15. Re:Interoperability is king by vidarh · · Score: 2, Interesting
    You sort of have clearly defined languagle-level constructs and rules about what happens when you use new. The only thing you know for sure is that you either get an exception or a pointer to a memory area that's supposed to be large enough to hold a QPushButton.

    The language doesn't specify what kind of memory it is. It might be allocated directly in a file using mmap, it might be doing fancy stuff with memory maps to do all kinds of weird and wonderful things whenever you write to it (or not allow you to write to it at all), or a zillion other things only limited by the fantasies of some of the most imaginative people around :) Remember, you can provide your own new handler.

    As for the state of the object, you have no idea without knowing what the QPushButton() constructor does. It could be left completely uninitialized because initialization is costly and it's left to the user to call an init() method, the user may be expected to set various properties, or everything might just have been zero'ed out.

    In other words: You are relying on convention to say what operator new does, and on your assumptions about what a class with the name QPushButton() should do, or specific knowledge about this particular class to tell you what you expect the constructor to do.

    Which is, suprise, surprise, the exact same starting point you have with a function called gtk_button_new_with_label(), except that in my opinion the latter name give you a better clue to what the argument is. In the first case it is not clear without going to documentation whether the argument to the constructor is the text on the button, keyboard accelerators, and internal id used in callbacks (why am I supposed to assume that QPushButton has a text label?), or something else entirely.

    And your comment about having to write a x_button_new_with_specific_property function is also more about syntax than semantics - a constructor is a function too, the only difference between the two is that in the first case you have explicit control over how memory is allocated, whereas in the latter to you take what's coming. The first case allows a lot of flexibility to the class implementor that isn't available when using the operator new syntax in C++, hence patterns related to object construction often require the user to use a different syntax even when the user has no need to know.

    As for the number of _new functions with permutations of _with_, you have the exact same problem with C++ constructors: You need to remember the syntax (the order and type of the arguments) of the constructors. With GTK's naming scheme on the other hand, you're a hell of a lot less likely to call the wrong constructor because you remember wrong, pushing more errors from runtime to compile time, which in my book is good.

    If you need more than 2-3 constructors tops, you should be looking at way to more clearly syntactically differentiate them even if you use C++. Eiffel for instance allow differently named constructors for the same class, and that might have been useful for C++ too. Another alternative is of course to use static class member functions, but then we're back to the different syntax for object construction issue that I mentioned above.

    I like C++, and personally don't do much GTK programming, but from your message it is not at all clear to me that you've demonstrated any superiority in C++ object oriented programming with your message (I'm not saying there aren't any, just that you'll have to try harder :-) except for "it looks prettier" and that you think C++ guarantee you more than it does.

  16. Re:Sigh.. by unixbob · · Score: 2, Interesting

    I think the problem with the RedHat 8.0 implementation of KDE is that it actually breaks KDE and makes it incompatible with standard KDE.

    I remember reading an interview with the guy who runs The Kompany and he basically said that with RedHat 8 you are effectively supporting a thrid platform (KDE, GNOME and then RedHat 8). I believe it's something along the lines of RedHat had to make significant changes to some key KDE stuff to get not just the look of the apps to be the same, but to get them to behave as if they were written under the same toolkit.

    Which is probably (amongst other reasons) why you can't download RedHat RPMS from www.kde.org.

    --
    The Romans didn't find algebra very challenging, because X was always 10
  17. Re:Interoperability is king by nitehorse · · Score: 3, Interesting

    If that's true, then PLEASE, point me to a single Bonobo object implemented in Python.

    Or Ruby.

    Or Java.

    Or SmallTalk. Or OCaml, LISP, Scheme, or Perl. Any one of them.

    Where are they? Where is the "Implementing a Bonobo object in Python" tutorial? Where's the documentation? Where are the examples, the real-life apps using them?

    That's my point. They don't exist, so pointing at KDE/KParts and saying "You have to use C++ for KParts!" is silly, because you have to use C for Bonobo (to implement, anyway. Unless I'm wrong - which, if I am, please do tell me. :)

  18. Re:Interoperability is king by nosferatu-man · · Score: 2, Interesting

    Bzzzzt.

    "The very first Smalltalk system was a thousand lines Basic program, which successfully computed 3+4 in October 1972."

    From http://www.cosc.canterbury.ac.nz/~wolfgang/cosc205 /smalltalk1.html

    'jfb

    --
    To spur "enterprise Linux," Big Bang, the distributed two-phase commit.