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”.

Permalink 54 Comments