We need to kill GNOME.

September 14, 2007 at 5:23 am (Uncategorized)

Remember “1999 will be the year of Linux on the desktop”? The same thing has been said every year in the last decade. Yet not only has it failed to happen, Mac OS X is doing now what Linux was supposed to do (I mean allowing regular users to use a personal computer outside of the Windows platform lock-in).

Technically, there’s nothing that Mac OS X can do that Linux can’t (or Windows, for that effect), and the fact that Linux is free (in both of the two senses) should be more than enough to compensate over the coolness factor of Mac OS X. At the moment of this writing Mac OS has 6.15% market share, while Linux has 0.77%.

So why is Mac OS X able to provide an alternative and Linux isn’t?

The answer is proprietary software. And by proprietary I mean software (free or commercial) that is distributed only in binary form. Obligatory example: Photoshop.

Take a look at the top 100 software bestsellers in Amazon.

In that list (words in bold added because folks at Ubuntu forums were quoting this sentence out of context) there’re a lot of applications for Windows and Mac but there’s only one Linux product: Ubuntu, which is in fact a Linux distribution and not an application. Although Ubuntu comes with a lot of (open source) applications, this should prove my point that hardly anyone is writing competitive proprietary software for the Linux platform, while they are doing it for the Mac platform, and that people is willing to pay more money for those proprietary applications, which means they are demanded.

There are three overused arguments to deny this is an issue:

  1. Some people think that proprietary software is not the future and that eventually all of these applications should be replaced by open source alternatives, but even if you are one of these you’ll have to admit that this isn’t going to happen anytime soon, so it would be better to have that software available in Linux at the moment, so that we can have a good market share in the future.
  2. Some people think there’s not interest in using this kind of software in Linux, but just take a look at the Wine project (a piece of software that lets you run some windows applications under Linux) and all the people using it.
  3. The third option is that you are one of those positive thinkers that really consider The Gimp to be equal or better than Photoshop, in that case can you at least admit that some people like professional users will need proprietary software? You know, even if you go out of the way to use free software professionally, sometimes you receive files in proprietary format and you can’t allow yourself the luxury of telling your clients to convert the files for you. There are also other features that you might not need but other people do.

Traditionally, Linux users have assumed that it’s hard for Windows users to switch because they are used to a particular kind of system or there are concepts involved that are difficult to grasp such as “operating system”. But people aren’t as stupid! They are perfectly capable of understanding that they have a particular kind of computer and that they need to look for software packages with the Apple logo or the Windows logo, in the same way they do with the fuel of their cars. They are also capable of understanding that their “kind of computer” may have some pros and some cons, they may even be willing to sacrifice some functionality in exchange for other things, and the growth of Mac OS X is showing all this.

So, the main problem here is that you don’t see proprietary software packages with a penguin logo in the box or in the promo website. And why isn’t this happening?

I’m a dual Linux and Windows user and I’m currently developing a proprietary piece of software for Windows and like every sane developer, I’d also like to do a Linux version, after all, the more systems supported, the more users I’ll have; but Linux currently makes it very hard to do so!

You see, there’s such thing as a Windows application. I can easily make a program that will run on any Windows version, that will have a standard installation procedure (Double click, Next, Next, Run), that requires no dependencies whatsoever, and that will have the same look and feel than other Windows applications, plus, the global settings of the user will take effect in my application (Colours, font size) and the shortcuts he can use (To cycle through child windows for example) are the same than every other windows application. I can easily achieve all of this because there is one set of functions available to developers that is shared by all of the Windows versions. Microsoft even writes a set of guidelines that all developers should follow to make applications consistent in its behaviour.

In Mac OS X there is exactly the same thing, point by point.

In Linux there is not such thing. Is it because Linux developers are less skilled? No, in fact some things in the Linux desktop are beautifully designed, unlike Windows which has to carry the burden of including legacy support for ancient library versions. It is because in Linux we have (I won’t consider niche desktops) two identical sets of functions that you can use when you make a program, these are those in the GTK and QT toolkits (GTK is used by GNOME, QT is used by KDE).

As a result, there’s no way I can make a Linux desktop application that complies with the following requisites:

  • It will always install in the system without the user needing to install any dependency previously, as in Windows and Mac OS X.
  • It will always have the look, feel, common dialogs and behaviour of other applications.

You can achieve the Windows and Mac level of integration if you specifically target GNOME or KDE desktops but then you are targeting half of the users, plus you are deceiving users that expect something as easy to use as a windows package, but in Linux.

In conclusion, as a developer, if you want to make a proprietary piece of software for Linux, you will have to face a support nightmare and in the end, for half of your users, the interface will be unfamiliar.

There are attempted workarounds to get GTK and QT programs to look the same, and some conventions and collaboration, but this isn’t anywhere near a solution, because the selected toolkit will always impact the installation procedure and the behaviour of the program, so it doesn’t fulfil any of the requisites to consider a platform ready for commercial deployment of software.

Having two desktops is also horrible for adoption by businesses and software companies. There are Windows developers as there are Mac developers, and you can expect them to share the same knowledge about the platform, so that they can work in a team. But when it comes to Linux developers you have to choose between KDE developers, GNOME developers, pure X developers, etc. In the end Linux professionals have less experience in the desired field of expertise than their windows counterparts.

There’s a double standard in the FOSS community in regards to this question. Everybody agrees that having two standards (sic) for the same thing is bad, but when it comes to Linux the mantra changes to choice is good. This is naive and dangerous. There’s no way Windows could be where it is today if they had made two completely different sets of the API. Yet we happily allow this burden to be placed on Linux. The argument that we need two desktops so there is competence between them is also bogus, any desktop already has enough (and stronger) competence from Windows and Mac.

So, why do we have two desktops?

KDE was started in 1996 by Matthias Ettrich, but at the start it had one licensing issue: the free version of the QT library (on which KDE is based) didn’t allow commercial usage. So you could only do free applications with it. This was OK at the moment and KDE got some traction but obviously it was not the most desirable kind of license.

So in August of the next year Miguel de Icaza started GNOME to do exactly what KDE did but without any licensing restrictions, which sounded fair, so GNOME got a lot of attention.

In September 2000, KDE finally started being released under the GPL, removing the restrictions, so now its usage was OK for any kind of Linux software.

Technically, KDE was always superior to GNOME (And by technically I mean “if you are not a coder you don’t know what I’m talking about” so don’t feel insulted please, in fact I find GNOME somehow more visually attractive in the user end but it’s a mess inside!), so it would seem that people should have stopped using GNOME after that, but they didn’t. Most of the important Linux distributions also continued to feature GNOME as the default desktop. If you think about it it’s logical, it’s hard for people to abandon something that has been developed to a functional state and has a user base. Normally, two versions of something so complex as a desktop environment wouldn’t have coexisted in Linux for much time (because one of them always tends to reach a functional state first so it gets all the developers), but the Licensing issues that existed for 4 years in KDE contributed to this equilibrium.

  • On one hand KDE is technically superior, and it was maintained and used by people who appreciated that so there was no way in hell that KDE developers and users were going to stop supporting it.
  • On the other hand GNOME was free to use under any circumstance, and it was backed by the kind of people who cared about that, so there was no way in hell they were going to stop supporting it. When KDE fixed its licensing issues GNOME was already functional so, why drop it? Plus, some people hated KDE even after they solved the licensing issues.

In 2005 Linus Torvalds himself (The creator of Linux, in case you are new here) complained that people were still supporting GNOME and asked developers to just recommend KDE:

I personally just encourage people to switch to KDE. This ‘users are idiots, and are confused by functionality’ mentality of Gnome is a disease. If you think your users are idiots, only idiots will use it. I don’t use Gnome, because in striving to be simple, it has long since reached the point where it simply doesn’t do what I need it to do. Please, just tell people to use KDE.” – Linus Torvalds

This caused a lot of controversy (Again, for the newcomers KDE vs. GNOME is something as religious as Apple vs. PC) but the truth is that vision is shared by a lot of knowledgeable people.

By now I should have hopefully convinced you that the duplicity of desktops is slowing Linux adoption. But there’s something weird about the GNOME relation with Microsoft that you should also consider if you care about this stuff, because much is at stake in the open source world, and this is where it gets funny. Remember I said GNOME was founded by a guy named Miguel de Icaza? Here’s a short bio on Icaza.

1997, summer. Miguel (previously know for creating the console file manager Midnight Commander) is interviewed by Microsoft for a job in the IExplorer for Unix team. He fulfilled the requisites but lacked qualification to obtain a work visa (he’s Mexican), so he couldn’t be hired.

1997, summer. Right after the interview (only one month max could have passed), he starts the GNOME project.

1999. Miguel associates with Nat Friedman (who worked for Microsoft) to found Helix Code, a GNOME free software company.

2001. Helix Code is renamed to Ximian and announces the Mono project, whose goal is to implement Microsoft’s .NET platform in Linux. This is sharply criticized by the Linux community, who feels that it will give developers a reason to adopt a proprietary windows platform for development, thus damaging Linux adoption. The reason here is that developers would do more projects in .Net thinking that if needed, they could be ported to Linux with Mono in the future. In practice, it’s very difficult to recreate a proprietary API so you end up locking yourself in a Microsoft environment. Nowadays Microsoft’s .Net has a large following and it’s impossible to quantify to how much of that success Ximian’s Mono has contributed.

2003 Ximian is acquired by Novell, which in 2006 announces a joint patent agreement with Microsoft to mutually cover their patent infringement. Wikipedia:

“The deal involves upfront payment of $348 million from Microsoft to Novell for patent cooperation and SLES subscription. Novell will pay around $40 million to Microsoft over 5 years. Initial reaction from members of the FOSS community over the patent protection was mostly critical, with expressions of concern that Novell had “sold out” and of doubt that the GPL would allow distribution of code, including the Linux kernel, under this exclusive agreement.”

Novell was the first company to have this kind of deal with Microsoft. This was very damaging because it was the first instance of a Linux company implying that Linux does in fact violates Microsoft’s Intellectual Property as Microsoft suggest. Microsoft has never proven this fact so there was no reason for Novell to indulge in this. This was a sad day and many people have stopped supporting the Linux products of Novell (SUSE) after this.

2007 Miguel de Icaza announces a port of Silverlight (Microsoft’s Flash alternative) to Linux developed with the collaboration of Microsoft. Icaza insinuates this will be protected under the Novell deal with Microsoft if downloaded from Novell, which again, is sharply criticized as it sets a dangerous precedent.

2007 Miguel de Icaza surprises everybody calling Microsof’s OOXML “a superb standard”. (OOXML is Microsoft’s office document standard which competes with the already existing and open standard ODF, used by OpenOffice and KOffice, see here for some in-dept technical explanation of why this is a ridiculous and damaging statement). This was sharply… well, you get the idea.

Personally, I’m convinced that there’s something funny going on between Icaza and Microsoft since the moment he started GNOME. He was even accepted for the job, but he couldn’t be hired, so why not commission him for a little side job? Plus he started GNOME right after the interview! If you think corporations don’t get involved in stuff like that you need to read about industrial espionage.

Every notable thing Icaza has done after that interview has been favourable to Microsoft. Even if you don’t think it goes that far, and you prefer to think that Icaza is just a frustrated Microsoftie, you have to realize that we have allowed a pro-microsoft guy to segment our desktop ecosystem, this in itself is reason enough to stop supporting GNOME.

As an extra reading, see how Linus complains about GNOME oddly removing features under a stupid pretext. In the past I thought this crippling of the interface was simply a case of incompetence or excessive zeal, but now we have reasons to think that this can be intentional. It’s time for GNOME developers to revise what they have been allowing to happen all these years and act in consequence. It’s also time for distribution makers to realize they are damaging Linux adoption by acting egoistically, get together and select one desktop.

If they really like GNOME then fine, let’s all use GNOME, we should be able to fix it as soon as we cleanse it from undesirable elements. But ideally KDE should be selected since it offers a development environment that is more mature than that of GNOME in an order of magnitude.

Also ideally, for this to happen faster, Linus should just “select” KDE and issue a trademarked logo (it has to be him since he owns the Linux trademark, which is very convenient for us in this case) featuring Tux and the caption Linux Desktop, indicating that the application runs given as requisite certain version of the KDE API and any other library we want to throw in.

Software makers would be able to develop under KDE and use the Linux Desktop logo in the software box and promo website, which would reassure users. Distributions could also feature the logo indicating they can run Linux Desktop applications without adding any extra dependencies by just featuring KDE.

As a user, you should grow up and learn to be suspicious of distribution makers and developers. Unfortunately Open Source encourages players to take the work of others, segment it and make a profit of it at the expense of everybody. Consider that maybe if a particular distribution used the same desktop than all the other distributions they could lose money because then it would be easier for users to change to another distribution, so they won’t be willing to do what is better for Linux, just forget about it. Major distributions are profit driven companies, and not small companies by the way, Ubuntu’s maker, Canonical, has more than 100 employees. So don’t just settle with whatever your distribution maker decides, they may be already selling us out while acting as saviours.

My proposal for users is: stop supporting GNOME. Even if you are a GNOME fanboy right now I’m sure you understand the concept of sacrifice. How cool would it be to act as an adult and say “I’m a GNOME fanboy but I’m gonna switch to KDE for the Linux future”.

And it’s not that hard, you don’t have to change your distro:

  • You all appear to like Ubuntu, in that case just switch to Kubuntu if you haven’t yet and tell others to do so.
  • Redhat and Fedora feature KDE as a second option in the installation.
  • Xandros, Linspire, Mandriva and Knoppix already use KDE by default.
  • I don’t know what the default in OpenSUSE is right now but it also has both, like Redhat.
  • I use Gentoo and there’s no such thing as a default desktop but last time I checked the installation guide seemed to favour KDE over GNOME, but don’t take my word for it, it’s not important in any case since Gentoo is a niche distribution.

If we abandon GNOME en mass, distribution makers will take notice, but we should expect Redhat, Canonical and Novell to push GNOME to the end, since they are doing money in the current segmented scenario. Consider that those companies sell consulting so they benefit from distribution lock-in. Also consider that Canonical (Ubuntu maker) sells proprietary (yes, you read well) tools for developing under and managing Ubuntu. How useful would those proprietary tools be if we all switched to KDE and suddenly developing in Linux was as easy as developing in Windows?

I think I’ve backed all my points with enough reasoning and facts. I’m not affiliated with KDE or any distribution, I’ve never been a fanboy of any kind of technology, and I’m not a troll, I just sincerely believe that we need a free operating system to be ubiquitous, and for this to happen we really, really need to kill GNOME, the sooner we do it, the sooner will be the year of the Linux Desktop.

Note: The author is not a native English speaker and will appreciate corrections.

Update

Some people that isn’t bothering to read the full article is having problems understanding what I mean by killing software. What I’m talking about is deprecating. I’m not saying we should remove all the copies of GNOME from the face of the earth, that would be a waste. What I’m saying is that we should stop featuring GNOME by default, recommending it to new users, and above all, tell developers to use QT instead of GTK. That’s the only way we can have a default API that the industry could adopt, and if people still wants to use GNOME, it’s ok, just as it’s ok that people uses WindowMaker, because end usage has little to do with deprecation. I use deprecated software daily, but I wouldn’t develop software using deprecated components, also I wouldn’t tell other people to learn how to use deprecated software. Obviously we’d need some kind of transition period, and for the first years we should continue bundling GTK (not by default) until everybody has moved to QT. What is important is to allow third parties to deploy new software easily. Then if you don’t care about software produced that way, it’s ok! But at least we will have that kind of software to choose from, otherwise we won’t.

To sum up… read “kill GNOME” as “make KDE the standard”.

54 Comments

  1. The Slut said,

    Right now Gnome looks better and works better than KDE so why the hell would I want to see it killed?

    The reason people are using KDE is because they believe it gives them the best appearance and options that best resemble moving from Windows XP and because they believe it is fully customisable. Gnome is very customisable. It just doesn’t have a program to do it for you.

    Gnome works, it is stable, it crashes less and looks very nice. KDE looks good on the surface but it is a pig. Using it’s applications feels like you are playing with chunky lego bricks.

    We need both desktops to thrive so that the end user can continue having a choice.

    Linus has his opinions on Gnome and that’s fine but that doesn’t make his opinion right just because he is in charge the kernel project!

  2. hopachai said,

    Slut, I heard a lot of people saying the same about KDE 🙂
    And anyway I’m not interested in the religious aspect of the flame war. I even agree with you that KDE needs a visual redesign, but having a rational discussion at the end user level about this stuff is impossible. I will be glad to address any documented technical objection to my article though.

    And yes, Linus has his opinions and that doesn’t mean anything, but I’m just using his words as an example, not as proof of anything.

    Oh and BTW, I’ve made an update at the end that may clarify the “killing” thing. I used that word to reflect the urgency of the matter and because when I say deprecate some people doesn’t get it and I wanted to make this very easy to understand (thats why the lame explanations).

  3. Kranthi said,

    Nicely put. I am convinced with your argument.

    //Gnome user for about 6 months now

  4. Meow said,

    I’ve used Gnome from versions 1.x to 2.2 (2.3?) and I agree with you and Linus regarding that gnome has been dumbed down with each new version. Now I use Xfce and GTK+ both for development and regular use, because I like the simplicity of them; what will happen to GTK+ and the user base who wants a minimalistic user environment (Xfce, *box, Windowmaker) if you get your wish fullfilled and GTK+ gets deprecated?

    And focusing on the gui toolkits; do you think that QT is technically superiour compared to GTK+, and can you elaborate on that?

  5. egalflame said,

    i have been using GNOME for about a year because at the time it was just better than KDE in all aspects as far as i am concerned but, KDE 4 is looking good and when it becomes final i will probably switch…but right now i think the article is a bit ahead of its time, wait i donno say 5 or 6 months and when KDE 4 is out i’ll back you 😀 but right now i do not agree with it as GNOME is just fine and i can’t see why KDE is better

  6. machoo02 said,

    One of the greatest things about Linux/FOSS is choice: to choose you preferred programs, desktop environments, etc. Unfortunately, some of that choice can lead to problems (i.e., which DE to develop for, Qt or GTK). However, instead of trying to reduce peoples choice by eliminating GNOME, I think it would be better to support efforts to better integration and cooperation *across* systems. For example, have you considered using wxWindows as your GUI toolkit for development? That way, you could code your interface once, and it would work on all platforms that have a port as wxWindows uses the OS’s/Desktop Environment’s native widgets to draw the interface.

  7. hopachai said,

    In reply to Meow

    1) Deprecating something for mass usage doesn’t mean removing it from anywhere. Distributions will continue to bundle just anything they want and people will be free to develop using anything, that’s what open source is about. We are talking about securing a safe subset of functions so that developers can deploy in Linux without headeaches. If such a “voluntary certification” isn’t interesting to some distributions is not a problem. In fact, I’m sure some distributions such as Gentoo would stay just the same. And if somebody wants to use any of those toolkits for developing then its obvious they don’t care about ease of deployment or seamless integration so they are gonna be ok because nothing will change for them.

  8. hopachai said,

    (Continuation, wordpress didn’t let me write code)

    2) That is a complex topic and one for another article but I’ll just give you an example.

    This is how you do a simple application in both toolkits, a button that says Hello world and when pressed, the app exits, in both cases following closely the official documentation of both of the toolkits:

    Hello world in QT:


    #include <QApplication>
    #include <QFont>
    #include <QPushButton>

    int main(int argc, char *argv[]) {
    QApplication app(argc, argv);
    QPushButton quit("Hello world");
    QObject::connect(&quit, SIGNAL(clicked()), &app, SLOT(quit()));
    quit.show();
    return app.exec();
    }

    Hello world in GTK+:

    #include <gtk/gtk.h>

    static gboolean delete_event( GtkWidget *widget, GdkEvent *event, gpointer data ) {
    return TRUE;
    }

    static void destroy( GtkWidget *widget, gpointer data ) {
    gtk_main_quit ();
    }

    int main( int argc, char *argv[] ) {
    GtkWidget *window;
    GtkWidget *button;
    gtk_init (&argc, &argv);
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    g_signal_connect (G_OBJECT (window), "delete_event",
    G_CALLBACK (delete_event), NULL);
    g_signal_connect (G_OBJECT (window), "destroy",
    G_CALLBACK (destroy), NULL);
    gtk_container_set_border_width (GTK_CONTAINER (window), 10);
    button = gtk_button_new_with_label ("Hello World");
    g_signal_connect_swapped (G_OBJECT (button), "clicked",
    G_CALLBACK (gtk_widget_destroy),
    G_OBJECT (window));
    gtk_container_add (GTK_CONTAINER (window), button);
    gtk_widget_show (button);
    gtk_widget_show (window);
    gtk_main ();
    return 0;
    }

    Usually your QT application will be 50% more compact, and since QT is c++, its more easy to read, and a little harder to introduce bugs. And this is without getting into the toolkit itself.

  9. Neg said,

    You make some good points. But… Attacking Miguel seems pointless and very unprofessional and yes you were attacking him, no backing out of that. The beans have been spilled so the best you can do is retract it or an apology. Hope you get my point here…it was baseless. Not a good way to start off a new blog. I’m not going to pick apart every little piece cause you do state on the header “rants” and I respect that, everyone needs to vent from time to time but some things are better left in your mind.

    Just to play the devils advocate here, you know if it wasn’t for Microsoft, most wouldn’t know what Linux is. Also to go even further you think KDE would be in the state it is now if it wasn’t for GNOME? To sum it all up competition can be a good thing. Giving the upper hand to one or the other by pushing one to the side can be very damaging. Tech is about a fast paced environment and should never be stagnant.

    It’s about choice and with Linux you have so much of it. If someone installs and finds they like using a certain distro with a certain DE, they will soon find its about choice and as easy as a emerge kde, apt-get install kde, yum -y groupinstall KDE, smart install kde or whatever you use, it’s not that hard, give new users to Linux some credit they know what they want whether it be KDE or GNOME

  10. hopachai said,


    One of the greatest things about Linux/FOSS is choice: to choose you preferred programs, desktop environments, etc. Unfortunately, some of that choice can lead to problems (i.e., which DE to develop for, Qt or GTK). However, instead of trying to reduce peoples choice by eliminating GNOME, I think it would be better to support efforts to better integration and cooperation *across* systems. For example, have you considered using wxWindows as your GUI toolkit for development? That way, you could code your interface once, and it would work on all platforms that have a port as wxWindows uses the OS’s/Desktop Environment’s native widgets to draw the interface.

    A tale about portability: Pixel Image Editor, incredible program made by a single guy as an alternative to Photoshop. He made a wx-like toolkit and ported his application to almost every platform, even QNX was in there. This took him 3 years. Last thing I read about him he was redoing the windows version from scratch against the win32 api, apparently it was the most demanded feature. Lesson of the story, the importance of tying your applications closely to your system is overlooked. Pixel in windows has a lot of great features but it fails right now because it doesn’t feel native and has poor GUI performance.

    That aside, WX does a great job on not overloading too much, but just because of that it sometimes gets in the way. I find embedding low level stuff in WX to be a pain, and customizing some things like the appereance of some widgets is very hard. Although I agree that WX is the best solution right now for portability across Windows and Linux, great applications are always closely tied to the system.

  11. Meow said,

    Have you ever tried gtkmm? 🙂

    #include
    using sigc::mem_fun;

    int main(int argc, char **argv)
    {
    Gtk::Main kit(argc, argv);
    Gtk::Window window;
    Gtk::Button button(“Hello world!”);

    window.add(button);
    window.set_border_width(20);
    button.signal_clicked().connect(mem_fun(window, &Gtk::Window::hide));
    button.show();

    Gtk::Main::run(window);
    return 0;
    }

  12. hopachai said,

    In reply to Neg.

    I’m not backing out or asking an apology unless somebody shows me that I’m doing something illegal. I’m intentionally placing my limits up there because the damage inflicted may have been very large, so politeness is out of the question. I have backed means, motive and opportunity with facts, and I have issued a personal opinion above all that and submitted it for public consideration. I don’t see so much from journalists many times.

    On your second point, yes, it’s good that people freely gets to decide what they want, and this works fine, except when there are players artificially altering that process. That’s why we have anti-monopoly laws even in a free market. What is broken artificially, needs to be repaired artificially. What I’m saying could be sumed up as just “think as one”. It wouldn’t hurt us, really, heard about divide et impera?

  13. hopachai said,

    Meow:
    That’s a little better but it’s still uglier. The real problem with gtkmm is that it needs a full set of new tools like glademm instead of glade, which duplicates efforts so they are always more buggy than their C counterparts, also it’s only an interface to GTK+ so you are adding overhead, which can be fine for a couple of projects but not the best if you are gonna select it for generic development (like the win32 api).
    Btw, you are just hiding the window, you should destroy it 😛

  14. Meow said,

    It seems that my last comment went to null when I tried to send it, so to summarize:

    Hopachai:
    Now you’re just being picky, If your definition of beauty is compact code, then just remove some empty lines from my code and you’ll find it’s identical to your QT code 😉

    I agree with the overhead part.

    When I’m hiding the window, Gtk::Main::run quits and all the stuff are implicitly destroyed at the end of scope.

  15. hopachai said,

    No, no problem with your code, just saying it’s a little uglier. There are traces of legacy design in gtkmm, for example in your minimal app, the OO design for:
    Gtk::Main::run(window);
    Would be:
    window.run();

    But as I said thats not a real problem, the overhead and second class tool support is, and unfortunately GTK+ tools aren’t that good to start with.

  16. savetheWorld said,

    Neg- the blog makes no personal attack on Miguel. It simply shows that there may be a correlation between his relationship with microsoft and the growing list of defects in Gnome. He then postulates a reasonable conclusion. He hasn’t called Miguel any names. He has made an accusation, but only after examining the facts and explaining his reasoning. Guess what? This is not only reasonable its how the world works. People see things, they attempt to find a pattern in the behaivor and they try to find the reasons for the behaivor. I’m not saying the blog is correct, but the path of the logic, as seen so far is reasonable.

    However that doesn’t mean its correct. Nothing has been proven. Yet. It does look like Miguel may not be working for the best interests of the F/OSS community.

    Time will tell.

  17. Meow said,

    Hopachai: This is the fourth time my comment don’t get through, does wordpress filter certain words and drop the post?

  18. Meow said,

    Anyway, here’s my comment: http://pastebin.com/f325b5534

  19. hopachai said,

    I had the same problem a while ago, are you pasting code?

  20. Meow said,

    only parts of it, see the pastebin

  21. Guar said,

    Ive been reading the whole article, and even if I kinda understand the view, I do not agree even the slightest. Although it should be mentioned that I’m not a developer myself, Ive been reading some articles and text about both the QT and the GTK toolkits, and Ive used both GNOME and KDE through the years (I know you say its about the code, but bear with me here).

    KDE is now rewritten, and when you rewrite something, I cant believe its more “mature” than a DE thats been i in development for 5yrs (correct me if im wrong). Second, GNOME could be cleaned up, and I like to believe that since most major distros has chosen GNOME as default, it probably is something behind it.
    Third is the fact that I believe that there really shouldnt be a standard GUI toolkit as you suggest, but rather a standard API for making GUI’s shared across the different GUI toolkits. Think wxWidgets, just better. This would make it easy to implement new toolkits if someone wish to make something that is different.

    Although I can see the problem with the way it is done now, every application duplicated, community splitting up and fighting with itself over something as trivial as a graphical interface that shares more than it wish to admit.

    and as a footnote, isnt it possible to statically link most libraries, even if this probably isnt the best solution? and wanting to kill free software to make way for proprietary software does sound a little… weird?

    best wishes, and bear hugs

  22. hopachai said,

    Dear Meow:

    As I told you I don’t consider that subjective detail I mentioned a problem so I don’t know why you are insisting that I’m biased or something. Heck, I’ve coded more stuff in GTK that I’ve done in QT. Did you miss the part where I said “if you *really* like gnome let’s use gnome?”. Does that seem biased to you? I am clearly stating that one of them is technically superior but that is not shocking, is it? It seems to me you are rather pulling a strawman here on a totally unimportant issue, but I’ll correct you anyway.

    You are wrong, you cannot compare QObject::connect() to Gtk::Main::run(). You are right that it doesn’t make sense to implement run in Window, I suggested window.run(), when I should have suggested kit.run(window), didn’t pay attention to the types. But the ugliness of that design I was mentioning is that run it’s a static method. QT design doesn’t seem to need so, you can do:

    return app.exec();

    Which makes sense, first you get to manage the return code in a straight way, second its all dinamic. Main::Run is static and void! Which is clearly worse, but it’s probably just a limitation due to the fact they are just interfacing C that’s why I’m not criticizing this. Given the limitations it’s pretty good, but why interface when you can just have the api in a modern language?

  23. Meow said,

    No need to get angry because of the “biased” part, I was only kidding. 🙂
    We all have our preferences…
    I agree that GTK+ should have a pure C++ API, and maybe it will some day.

  24. hopachai said,

    KDE is now rewritten, and when you rewrite something, I cant believe its more “mature” than a DE thats been i in development for 5yrs (correct me if im wrong).

    Sure I’ll correct you, the maturity of a software depends on the maturity of the developers, it doesn’t matter if you rewrite it in a 3 month span, that 5 year experience is what matters. Consider that coding is not about number of lines written, otherwise KDE would be comprised of tens of millions of code by now (uh I got lost in the analogy but it’s ok, I’m in a hurry and you get it). It is all about design, and that isn’t lost in a rewrite. In general coders love to rewrite everything every once in a while, and their managers hate it.

    Second, GNOME could be cleaned up, and I like to believe that since most major distros has chosen GNOME as default, it probably is something behind it.

    Sure, in fact, if I was given the opportunity to make GNOME an standard, but only GNOME, I would make it without blinking. If the things keep going this way we will always have this duplicity so I’d happily settle for GNOME. I’ve used GTK in the past and I actually had fun.

    Also you raise a very important point, why the heck would they choose it. There are two reasons that a distro may choose gnome in my opinion. One is that they usually hire guys from the FOSS community and some of these guys happen to work in Gnome. Second, obscure reasons such as distribution vendor lock-in. For example, Canonical, the Ubuntu maker, sells tools to develop in GTK, so they wouldn’t have anything to sell if they had chosen QT because Trolltech is already selling them (and remember that is my personal interpretation).

    Third is the fact that I believe that there really shouldnt be a standard GUI toolkit as you suggest, but rather a standard API for making GUI’s shared across the different GUI toolkits. Think wxWidgets, just better. This would make it easy to implement new toolkits if someone wish to make something that is different.

    I think you got it right, the only important thing is that the program runs fine. The user should be able to choose the implementation of the GUI as you imply, taking the Windows situation a step further thanks to open source. However, it is very naive to think that you can make a GUI like that without having a default implementation for at least 5 years (number pulled right out of my ass). The reason being that there’s much more to using an API that people doesn’t seem to realize. There’s always hidden behaviour to document (Example: “Does the unfocus event get called for a button if the dialog is about to get closed by the window manager?”) so it would be a terrible idea to give developers an API without giving them a stable, default implementation for a long time.

    and as a footnote, isnt it possible to statically link most libraries, even if this probably isnt the best solution?

    Yep. Opera used to have a statically linked qt version for linux (maybe they already have it). But as you said that isn’t optimal. Even if you link against QT, if the user has GNOME, things will look out of place and behaviour would be different. Also by linking statically you are preventing your user to update the version of QT used by your application. It may be a good way to do it when you are desperate, but you aren’t gonna attract a lot of developers when you have to resort doing things that way. The current situation of Linux is a little frustrating, because it could be 10X more amazing than Windows as a developing environment if we just sorted out this thing. All the work has been done already, we just need a minimum amount of coordination.

    and wanting to kill free software to make way for proprietary software does sound a little… weird?

    As I explained in the update, by kill I’m just saying “make one of them the standard”, In fact, the one we don’t select would still be used by enthusiasts and businesses for appliances, mobile phones, etc, so you can’t kill any of the two, and that is good. And about the proprietary thing, well, you can see it as pragmatism. Wouldn’t you kill GNOME to see 20% market share? And btw, this would also help free software enormously, the same advantages apply, it’s just that for proprietary software the current limitations are more critical.

  25. linuxplease said,

    Fuck you your a stupid pieace of shit linux is the best os you have no idea dick head.

  26. Mathew said,

    I’ve never really cared about all my applications sharing the same API, i don’t honestly believe this helps in windows where many applications act very differently. If they look different at least you can tell which application you are using quickly. In fact the windows environment still isn’t homogeneous. Macintosh is homogeneous but probably they have nice carrots and large sticks for anyone prepared to develop there?!

    I have no difficulty in using any of the applications available to me in Linux or windows, however ugly they are, even if they are written in tcl or using the Java-api.

    Also why no mention of debian in your list of applications, you list at least 3 distributions which are based on debian – does it have a default desktop, I know it supports both KDE and Gnome.

    Also surely these 2D desktops are just handy while we wait for something better to come along and kill them? 🙂

    Thanks for your article I read it till the end.

  27. hopachai said,

    Nothing against Debian I just forgot 😦 And I think it has both and the default desktop is GNOME.

    About what you suggest, well, maybe you don’t value Windows having a unified API but developers surely do, and they do so much that Microsoft expends millions to keep it the same. I mean, win3.1 binaries still run in Windows XP. That’s 15 years of legacy support to maintain backwards compatibility. Isn’t it curious that we are so uninterested in something that Microsoft values so much? Maybe that is the reason the market share is so different?

    And for example, you don’t usually see windows applications with non standard “Open file” dialogs (In fact there are two versions of the “open file” dialog right now but both are pretty consistent), or “Select folder dialog”. But you are probably familiar with the pain that is understanding the “Open file” dialog of The Gimp, specially when you haven’t used the program for months. What I’m saying is that integration really matters to the end user. We also have a bad habit of not considering all the possible scenarios. Example: some support lines won’t help you if you have linux because it’s impossible to write a diagram for the support session. How do you translate to Linux the following?
    Click the start button -> Click control panel -> Click network connections -> Select TCP and click properties -> Check obtain DNS automatically.
    That would be a huge ass chart if it has to account for all the combinations of desktop/distributions. It is possible in Windows, it is possible with Macs, yet it is impossible in Linux and we are the ones bragging about non defective design? I thought open source forte was simplicity, in fact it is, but it won’t show if everybody is trying to secure a steady supply of consulting money instead of getting in a room to sort things out.
    This is only an example that all this stuff may not matter to you but it’s important if we want grannies to use this thing. And btw, if we were to have 3D components I’d say they would be built on top of GTK or QT 😛

  28. Penguin said,

    One of the biggest issues with Gnome is Nautilus. I mean, how long has Gnome been around, and we STILL cant restore an item from the trash. Thats not even to discuss opening a folder with thousands of pictures, and the freezing joke that happens thereafter. I hate how Nautilus looks, acts, and apparantly how complicated and messed up the code is.

    Im not a programmer YET, but I plan to start, and it will be using QT. Before the author thinks im here on his side, I might mention im running the Ubuntu kernel. I started on Ubuntu, and im still using its kernel, albeit im using KDE core on top.

    My beef with Gnome is the same as Linus’- why must they hide functions?

    KDE isnt perfect either.. I know for a fact when I started on Linux, KDE CONFUSED THE HELL OUT OF ME. I didnt know what any program did and I couldnt tell by the name. There are so many GUIs for config, and sometimes a key option is buried 6 windows deep in the last place you expect it. Gnome OWNS KDE here.

    I had fortitude. I was willing to stick around because I was curious, interested, and determined to see what the KDE hype was about. Im glad I did too, but an AVERAGE JOE FROM WINDOWS INC ISNT GOING TO BE SO PATIENT. Gnome gave me an entrance into a world Im now comfortable with.

    Gnome may “need to be more concise with its code,” but I feel that KDE needs to be more concise in the locations of its options. Thats not to say remove any, but maybe establish an easy and advanced users mode that runs across the board on KDE.

    Why do you think business’ choose Gnome in the VAST MAJORITY of situations? Its easy to understand, and it gets the job done. If anything, Gnome is the only reason Linux continues to flourish in the business world.

    Both have issues, and I honestly feel that KDEs will be far easier to resolve. That said, Gnome is necessary to keep Linux alive right now; KDE cant do it alone, until it can be as friendly to a new user, and support the call of business.

  29. papa_rod said,

    To Gnome or not to Gnome? I have used both Gnome and KDE. Both have their advantages and disadvantages. For me it boils down to personal preference. If I’m an artist I want to play with Gnome, when I am a scientist I want to utilize KDE. I believe what we need to look at is a form of standardization that crosses the many platforms of Linux. In the meantime…vive la Difference!

  30. David F. Santos said,

    We need kill the Kde. Because the Kde is a copy of interface the Windows. And Kde is very bugged, give very crashs with a Windows

  31. David F. Santos said,

    The Linux not need domine the Desktops. And we can use ambient Desktop. The Flubox, Openbox, Fvwm, Xfce, etc.. have a various ambient Desktop, what need kill just Gnome?

  32. There Can Be Only One? | Way of the Geek said,

    […] seems there’s a lengthy blog post that’s been making the rounds of the Linux community at large today, in which the author […]

  33. Arielle said,

    This is a very interesting topic.

    First of all, let me say that I am an end user. I know next to nothing about how you guys create the applications that people like myself are to use ultimately in a production environment. But based on experience, I find that Gnome applications are much more stable than KDE applications. To site an example, Krita. I can never use it in a professional capacity since it crashes (more often than not) when I try to open my client’s PSD files in it– these files will usuall have around 20 layers, in RGB. I’ve always been able to open the same files with the GIMP though. For some reason too, I can’t seem to properly use Konqueror for web browsing (also crashes occasionally), but Epiphany and Firefox don’t give me as much trouble. Even the text editors Kate and Gedit can be compared in the same way– I’ve experience crashes with Kate too.

    The problem may be with the distribution that I’m using, which is Ubuntu. Or it maybe about my computer specs. I honestly couldn’t care less. What I care about is being able to do the stuff I need to do to make a living, and right now it is with the theoretically technically inferior (if I’ve read the whole topic correctly) Gnome applications that I can do my work in. I’m not saying that KDE is practically inferior though. It’s just that it doesn’t work for me and I appreciate having a choice between using its applications and using something else.

    Just to nitpick: I thought there were multiple desktop environments and Gnome and KDE are but two of them? I developers were to deprecate/kill/what-have-you one to eliminate competition within Linux and provide for better integration, etc. Wouldn’t the other DE’s eventually rise and compete with what’s left? XFCE for instance, or is there really nothing besides those two?

    “I can easily make a program that will run on any Windows version, that will have a standard installation procedure…” I take it that having multiple desktop environments for Linux is making things extra difficult for you and having just one (KDE?) will make things as easily as with programming in Windows. I may not be a programmer like you but believe me when I say that I can relate. It’s extremely difficult to make one’s work functional in every platform out there– in my case: web browsers, connection speeds, scripting support, screen readers, plug-ins…–, but I guess that’s why they call us professionals. People pay us good money because what we do isn’t easy.

    Cheers! =)

  34. dreadknight666 said,

    It’s like saying we should all use wordpress and not other blogs like blogger…

    I mostly agree with your post, but i would prefer GNOME over KDE because:

    1. KDE tends to have the stupid/riculous use of K for the native/default applications (it drives me fucKin nutts)
    2. KDE is blueish and the default desktop setup (theme/customization) tends to look like an upgraded windows thing.
    3. KDE is not that appealing and tends to be very bloated, even the default applications (have stupid menu bars with lots of ugly icons)
    4. i find GNOME very nice looking and i love EVERYTHING about it.

    But yeah, maybe it should compete more with Windows/Mac and leave stuff like this for the future, when most people will run linux (ubuntu)… or maybe not… maybe options are the key… competition.
    Now I’m feeling kinda guilty recommending Ubuntu which uses GNOME by default 😛

    Man, I’ve seen the preview of KDE 4 alpha or whatever and they looked ugly as hell…. just my 2 cents, you are mostly right in the article from my point of view…

  35. hopachai said,

    Ok. Thanks for the comments so far, I’m seeing a lot of instances of what appears to be specific problems of Kubuntu (?) or the fact that you find KDE uglier (I do too but thats just a matter of changing a theme and it speaks volumes that that’s the only aspect you consider important) and the fact that KDE fanboys are not posting because all the visits are coming from Ubuntu forums, which is good for the discussion. Not to call you fanboys, I’ve only seen reasonable comments so far and I’m not keeping anything in moderation (Except the dickhead thing, it was kind of cute but I thought I should keep it clean).

    People also say KDE software is of lesser quality? Heard about KHTML? KHTML is the HTML rendering engine made by the KDE guys and it’s used by Konqueror and Safari in Mac and Windows. It was the first engine to pass the Acid test, it’s faster, has low memory footprint and it’s considered state-of-the-art. Firefox on the other hand leaks memory and it’s very slow, its stable version hasn’t passed yet the Acid test, and years have passed! And BTW, firefox is not a GNOME browser, GNOME couldn’t produce a HTML rendering engine, they simply don’t have the capacity (thinking about it makes me chuckle, and hey I have nothing against them but let’s call a spade a spade, this is important). Firefox just happens to use GTK when in Linux. QT is industial quality, GTK is nowhere near that. Heck, KDE code is better than Apple code (for the interested, you can see both in Webkit).

    There’s a guy that says that businesses appear to be choosing Ubuntu and that must be for a reason. That’s not true, business also choose QT for its own usage. Big proprietary software players (Adobe, Google, Skype…) use QT. Commercial distributions like Xandros, Linspire and Mandriva also use KDE by default. Opera was ported using QT. It’s only a bunch of other linux companies that use GNOME by default and in no case it’s because of technical reasons.
    – Redhat has traditionally employed GNOME hackers like Allan Cox.
    – Ubuntu wouldn’t make money featuring KDE since trolltech is already offering first class consulting services and tools for QT, so its merely a business decision (Again, I can’t say 100% sure because I’m not at their meetings but I find it pretty obvious, I can’t see their business models working under KDE).
    – Suse = Novell = Icaza = Founder of GNOME

    So, GNOME is being used not for technical merits. Whatever you think about this, even if you think that we should go with GNOME (which is better than going with both), it’s very important we realize that distribution makers are profit driven companies and they don’t care about Linux as a whole, no matter what they say. This is important because if we ever get to organize a kind of committee to take important decisions such us standardizing on something (too good to be true so won’t happen), we should exclude Linux companies from the process. There can’t be more than one company taking decisions in such a committee because the ”negative correlation” (negative correlation: when you sell both ice-cream and umbrellas, you can’t be selling much of both at the same time) is very large in the case of Linux.

    Example:

    A bunch of TV set makers can get together and standardize on a kind of socket, that doesn’t damage them because a socket standard will cause everybody to buy more TV sets, regardless of the brand they are buying. So that could happen.

    But a bunch of Linux companies won’t get together and standardize because they sell consulting, the harder it is to use and develop under Linux, the better for them. Also if developing tools are scarcer they will sell more of their own tools, you can say they won’t standardize on KDE because it’s too complete. They won’t also standardize on GNOME because they are afraid that everybody is in the same conditions to do consulting. GNOME tools are not incredible but are ready to be used, and if we standardized on that they would get improved very quickly so that would be the end for canonical business model. Ubuntu as a standard = good for canonical. Linux as a standard = bad for canonical.

    Think of Microsoft, every time Microsoft does something to simplify development, consulting companies lose money. We are not different, *there’s a negative correlation between simplicity and profit for the Linux companies*. Yes, at some point there’s a positive correlation, when you need people to start adopting something, but we may have long passed that point, the fact that Canonical is making money suggest me so.

    And well, Kubuntu appears to be broken, conspiracy theory at eleven 🙂 But seriously though, I build my own desktops in gentoo and I’ve always found KDE more stable. And I’ve always seen that in reviews of several distros the KDE distros are found to be more stable. In fact I know for a fact that GNOME sucks at regression testing and I’ve suffered it so dunno, I can’t address your crashes cause you aren’t providing any detail, the only thing I can tell is that they can be easily fixed (probably a problem of the distribution), design problems in GTK cannot. Maybe I should remove Kubuntu from the article. If anybody has more insight on this (I don’t try a lot of distros) I’d love to hear it.

  36. engtech said,

    FYI, there tons of proprietary software for linux in the EDA industry where you’re paying around $35,000 a year for one user license. I’m sure other industries with ridiculous software costs are the same way. It was a big move when EDA software moved to Linux from SunOS because it made things cheaper for customers.

    This is also a classic open source problem — everyone forks, no one merges, and most people keep reinventing the same wheels.

    Also, I haven’t used it, but might WxWidgets be useful for this problem?

    http://www.wxwidgets.org/

  37. Robert Jones said,

    The QT toolkit is released under the GPL. Proprietary software cannot be made with it, unless you get a different licensing deal with Trolltech. That is how they make money.

  38. hessiess said,

    we need to kill kde!
    i HATE kde, it looks like a dump!
    i MUTCH profur win xp to kde, and at lest xp dusent have such a kiddy naming scheme

  39. Top Posts « WordPress.com said,

    […] We need to kill GNOME. Remember “1999 will be the year of Linux on the desktop”? The same thing has been said every year in the last […] […]

  40. DarkDancer said,

    I’m really a Gnome guym but I like a lot of KDE apps. I’ve tried the KDE desktop and from what I remember, it crashed a lot. However, when KDE 4 comes out, I will give it a try, it might convert me.

  41. Neg said,

    I’m probably the odd man out here being I don’t use what is considered a major distro. So I do not share hopachai’s sentiments, in that “that distribution makers are profit driven”. Linux isn’t that for me either and as for the distros I’ve used they don’t take there que from them either. These are community driven projects.

    I’m not so blind to think that they will not try and make a profit if they get large enough (btw: is there right and legal) but lets get something straight, for most that work on or with Linux it is something they do in there free time. The 100 or so employees that Cononical has doesn’t constitute the make up of Linux as a whole and will never make up Linux, it will always be a community effort.

    You could take Ubuntu and all it’s cheap knock offs and Linux would still be around, if you don’t think Ubuntu it self is a knock off….OM I just opened up a can of worms 🙂 But for real if you are still using Ubuntu after lets say 2 years you really aren’t flexing the muscle that matters so I could careless if they choose GNOME over KDE. BTW I use KDE and not cause it looks ugly 😉 What is that about? all default DE’s look ugly, you think programmers have a sense of taste 🙂 But this is about the code not the look IMO well the look of the code.

    There’s a niche for for Gnome and KDE you will have people that like one over the other…there is no stopping that. But is this about Gnome or KDE or is it about GTK and QT? So it’s going to be pretty hard to stop this even the larger distros that can shell out the coin, depending on if they go that route. but bow are you going to do this ? Having major distros stop using Gnome for sure won’t . So whats the plan?

  42. Srinivas Murthy said,

    I think most of the respondents are confusing the ‘appearance’ of the desktop environment with what is really being discussed – ease and quality of programming! (GTK versus QT). It is a very interesting discussion and not really for end users – it will be more useful if more programmers participate. Discussing about colors and icons is of no use.

  43. vegetable said,

    Stick to windows development. kthx.
    We like our GTK/Qt/Xt/Motif madness.

  44. mpompas said,

    I haven’t read the whole entry,nor the comments, I just stopped when it was implied that gtk apps won’t work in the kde environment, and vice versa… or I’m just stupid and understood what I wanted

  45. Tom Servo said,

    Wow, yet another text about ePenis measuring in the open source world. The biggest of your arguments is discussed away by saying “You don’t understand anyway”, which leads me to believe you’re full of shit.

  46. Some1Random said,

    Nice post, Hopachi.

    If there were some sort of standards for Linux (whether it be Gnome, KDE, etc), people wouldn’t have to install 200mb of dependencies for something such as a 2mb checksum generator (assuming they used the standard desktop environment, and libraries).

    Gnome is so easy that it is hard. In the long run, KDE is easier for new users, because they have a GUI to configure what they require instead of messing around with the terminal to achieve something that should be part of the interface.

    Gnome should be advanced by default, with a “Beginner/Easy Interface” option to hide advanced features (just an opinion).

    As for you point with industry standards software: If companies such as Macromedia started creating Linux releases, people who would otherwise use the Windows releases would use the Linux releases, so the company would make relatively the same profit yet have to provide more support and development time (which is not in their interest).

    Just my 2.2 cents. (We have a GST tax here in Australia, hence the .2 cents extra… lol)

  47. James said,

    You miss one important difference between GNOME and KDE – GTK+ is LGPL, and QT is GPL/proprietory. So you can link your proprietory application (which is the point of this rant) to GTK+, but for QT you have to buy a QT licence *and* ship your own copy of QT, because you can’t link against the GPL copy that comes with KDE.

  48. Dylan McCall said,

    You have an interesting opinion here, definitely!

    How would killing GNOME help proprietary software? Last I checked, KDE is completely against anything that is not open, given that the Qt toolkit, around which it is formed, is licensed under the viral GPL. I think Windows has taught us that “technical superiority” is not all that matters.

    I guess my bias comes from how a lot of KDE’s programs act in a way that is a pet peeve of mine. It is very extensible, but this is done by programs offering their own interfaces for a very broad range of extensibility. It would be more efficient, more tidy and more forward thinking to not have the extensibility powered by behemoth applications, but to have those extra services delivered at the top level, managed as they should be by the window manager – rather than acting as top-level applications but being controlled by something else.
    What is better? Every program doing tabs in its own way, or a system that encourages consistency, where a window essentially means ‘a single file being edited’, and the desktop itself takes care of tabs (eg: Fluxbox).

    I think MacOS was on the right track before the tabs craze came along, just because of how windows are arranged. Windows are treated as independent from programs, where closing the window does not necessarily mean quitting the program. Kind of cool, combined with the menu bar at the top always having a bold menu header for the program being used, which contains Quit and Preferences. Because of that simple victory, MacOS is the only system I have seen with sensibly arranged menus. Everywhere else, we have Quit under the File menu, and program options over in Tools or Edit. WTF?!
    My point is that, with individual windows detached from the program menu, and with quitting being consistently not clicking the X at the corner, programs tend to have a more tidy, coherent multi-windowed interface. The division between “the program” and “the document” is a lot more clear, both to the user and to the window manager.

    As for GTK and performance, people have to look beyond that. GTK has a very strict, but also very smooth, way of arranging interfaces. That is, there are next to no applications in GNOME (or any GTK-based environment) using static positioning for anything. Not only does this ensure that programs look better (with everything lined up and well spaced), but it also means completely smoothly adjustable fonts and the ability to resize any window. For that reason, I always recommend GNOME for accessibility, because it has perfect translation support (“perfect” meaning that translators need not pay any attention to the GUI), and being able to read text with old eyes does not require a half-assed workaround such as MacOS’s zoom function.
    Think of this in a portable device. The iPhone, for example. In that system, it is possible to rotate the screen between portrait and landscape. One thing I have noticed, however, is that this often causes drastic changes to the UI. OpenMoko uses GTK, on the other hand, and it also has the ability to run in both Portrait and Landscape mode. (Note that applications all consume the full size of the screen). In its case, however, there are no actual changes to the UI; it just works, fitting with the orientation. That is very, very nice.

    Yes, Qt does containers and has a way of setting widgets to be positioned dynamically by the toolkit (and most Qt applications do so), but the difference there is that the default – the first thing seen – is old fashioned, static positioning. That, in my opinion, does not cut it; one cannot assume whether a Qt interface will have relative or static positioning.

    In September 2000, KDE finally started being released under the GPL, removing the restrictions, so now its usage was OK for any kind of Linux software.
    That did not help anything. With the GPL, if you link to it, you must adopt it. The end. If KDE drops Qt, I will pay attention.
    As it is, you cannot develop proprietary software for KDE without paying up to Trolltech.
    …And I, for one, could not possibly keep a straight face paying up to a company that refers to itself as a “troll”. It doesn’t inspire much confidence, especially when they are acting just like trolls; blocking bridges, preventing freedom of developers to do what they want in KDE.

    Actually, I don’t really blame Trolltech, or hold anything against them as friendly commercial developers. Qt is cool. It’s a portable toolkit built for cross-platform development, and it has licenses based on individual usages. They were even kind enough to have a GPLed version for people to use. Really, they aren’t trolls; they have just been posed as trolls.
    See anything fishy here? I do! KDE is using a toolkit designed for individual applications that want to exist on multiple desktop environments. Qt clearly is not for desktop environments, but for independent applications. That is why Google Earth uses it; not to fit in KDE, but to fit in both Windows and MacOS, really easily.

    This plays an interesting rhyme to the tune of that Microsoft connection you discuss. Trolltech actually has a much bigger finger on KDE than Microsoft has on GNOME. If KDE somehow takes over the world, Trolltech gets stinking rich; they become the unquestioned, unnoticed “benefactors” who earn from it all. I’m making it sound almost nice, but that would not be good: That would be just like developing a desktop environment in Windows. Microsoft still gets their money, their market share; using (or developing for) the environment means going through them. Trolltech isn’t an evil corporation, but that doesn’t make it sane, efficient or comfortable that they would have their individual influence so deeply nested in Desktop Linux.
    The goal here that is very consistently pursued is a distributed model of software, where no one company is on top. That usually happens with Linux, because we have all these different components being built by different groups, and many different distros to assemble them, and it is all very portable.

    If everything to do with user interface eventually bubbles down to one single central corporation (Trolltech), it is a dangerous, tight situation no matter how peaceful they are. The recent worry around Google shows us quite clearly: Good intentions or not, if there is a 500 pound boar sitting on top of you, it is going to hurt.

    Don’t get me wrong, I have nothing against KDE or Qt — I really don’t. KDE 4 has a fantastic implementation of desklets, which really quite impresses me, and a lot of its power does come from its UI toolkit. The KDE project has resulted in a lot of really great stuff, such as WebKit.
    However, the fact remains that GNOME was created for a reasonable purpose, it continues to serve that purpose, and it does a much better job of serving that purpose than KDE. GNOME, unlike KDE, uses a non-viral license.

    KDE apps may look out of place in GNOME, but it could be worse: Commercial KDE apps could look out of place in KDE, because they would take horrific workarounds (“cross-platform”, out of place user interfaces that fit nowhere and ‘work’ everywhere) to avoid paying for a commercial Qt license.

    KDE is not meant to be the defacto Linux desktop standard. I think the number of Ks involved, as well as the use of the free version of a commercial cross-platform toolkit (I think it’s clear why this is) and the strange to learn interface, brings that point home: KDE’s developer community mostly accepts it being a really good niche, and don’t seem to take matters too seriously. KDE is a really neat place to go for a 99.9% open source desktop. That is what it caters to, and that is what it always should cater to. I do not want that part of KDE to ever die, and I think if it were to “kill GNOME”, that part of it would die very quicky.

    KDE succeeds at being unfriendly to proprietary / commercial software, and that is a powerful thing.
    For a niche.

  49. Tricon said,

    I must admit, many years ago I preferred KDE over Gnome. But while I now prefer Gnome’s interface over KDE, you have sold me completely. As a developer, I completely agree, and right now I am in the process of moving back to KDE.

  50. Tricon said,

    I still have a soft spot for Gentoo, as it used to be my primary distro. Have you noticed any speed increases with it in comparison to package based distros in the past year or so? I’ve heard that compiling from source and recompiling the kernel against your system doesn’t make much difference these days.

  51. Siraj Razick said,

    Hi.
    Why should they port Photoshop to Linux ? as u say Linux market share is 0.77. by porting Photoshop they will only gain 0.77% more (but they can’t be certain that 0.77 will buy photoshop since these are people who like free software)? , I have no idea bout economics correct me if I’m wrong 🙂

    Do u know how to convert people to linux ? it’s bloody simple . Contact all the hardware vendors and tell them to make hardware and drivers that support linux and tell them to remove the banner ( We recommend Windows Crapta).. then People like Dell /HP / uname it should also ship/ support linux. simply that’s it try to make that happen and we win.

    Then we have lot of people using linux and statistics will improve then companies like Adobe are forced to port products to Linux .

    Bye

  52. Jocelyn said,

    Couldn’t agree more with your article. GNOME is a waste of time/developers.

    In the end, I think KDE4 / Qt4 might just kill ‘naturally’ GNOME / GTK, thanks to both the superiority of Qt and the fact that GNOME v3 doesn’t exist.

  53. Julian Coccia said,

    Thanks for such a great article. I have written recently two short articles related to this (in Spanish):

    http://blog.julian.coccia.com/2007/11/primer-virus-para-ubuntu-el-mono.html

    http://blog.julian.coccia.com/2007/11/ingenieria-social-anti-software-libre.html

    I’m now writing an article on how to switch from GNOME to KDE. I’ve been using Linux in all my computers since the year 2000, and I’ve been using GNOME with Ubuntu since 2005. Still, it was not easy for me to switch over. Once you get KDE customized to satisfy your needs, you will surely love it, which is the reason why I’m putting my experience in writing now.

    Cheers,
    Julian

  54. dreadknight666 said,

    Heh… I’m back…

    My point of view changed. I now find Gnome silly… and KDE supreme. It all happened after my hdd crashed a few weeks ago and i used ubuntu live cd 7.04.. then the cd got scratched (I’m an ubuntu distributor in my region btw) and since it was the last one i had, i’ve used an Kubuntu 7.04 instead. So i started to embrace it bit by bit for a week until i purchased a new hdd… on which i’ve installed Kubuntu 😉

    Now i’m waiting for KDE4 (it has a nice concept with the plasma thingy… it’s like a mouth of freesh cool air, scalable and resolution independent (so you can have kubuntu on all sorts of devices; the gnome project is doing things the wrong way as far as i can figure out… by making a gnome for the mobile devices; anyway… i really hate desktop icons and plasma will bring some neat functionality to my desktop space which won’t just get burried behind all of my open windows). Anyway, lots of things to say about KDE… it’s more consistent overall, has nice applications that integrate well togheter and i love the look.. and the “Krap” (applications containing or starting with K) doesn’t bother me anymore, i actually like the naming convention… well… in short: a strong competitor for Mac OS X, windoze vista and eXPired.

Leave a reply to dreadknight666 Cancel reply