22 May 2013

Posted by JoErlendSchinstad on January 02, 2012

I wanted to write about some of the confusion I perceive in the GNU/Linux community in general these days. I will explain what I believe to be the causes, what the effects are, and how we can remove it. In order not to create further confusion, I'll try to back up my statements with facts. I know this may be confusing, and I try very hard to avoid it, but the point is that the situation I'm describing, is confusing.

Let's begin with Gnome. Gnome 3 currently has two official desktops that are installed by default. These are completely different software packages that are not related at all. One is called Gnome Shell, which is new and has received lots of attention. The other is the classic Gnome desktop and is called Gnome Panel. Even though these are completely different applications, people are referring to them as 'the Gnome 3 desktop'.

Some people think I'm nitpicking when I insist on referring to these applications by name instead of by organization. But consider this; Gnome 3 also has two different music players; Banshee and Rhytmbox. Now, if I told you that there was a problem with 'the Gnome 3 music player', how would you react? We know that these are two completely different programs, so how should you know which one I was talking about? It is obvious that I'm talking about one specific music player, but it is not possible to know which.

Gnome itself has contributed greatly to this. They refer to their desktop as Gnome 3. I believe they are talking about the Gnome Desktop Environment. That is different from referring to the shell in isolation, but it can be difficult to separate the two. Indeed, it can sometimes be very difficult to separate the shell from the window manager. But even that is important. And of course, Gnome 3 currently has two different window managers too. These are related, but still different. The new one is called Mutter and is used by Gnome Shell. The other one is Metacity which is has been used in distros when Compiz has not been available. So, if someone says "the Gnome 3 window manager runs slowly on my computer", which are they referring to? We simply cannot know without asking. Then, there is the rather new expression of "desktop shells", or simply shells. That used to refer mostly to terminals, but now suddenly it means something else. It isn't wrong, but it is new. That means there is potential for variable meaning of the word. I know that some people refer to the shell as the panels and the window manager, for instance. I do not. For instance, I consider Unity and Compiz to be separate things, even if Unity is a Compiz plugin. KDE doesn't help at all. They've suddenly chosen to refer to it as "workspaces", which traditionally has a completely different meaning. I'm not entirely sure it's the exact same thing. Indeed, I'm not entirely sure what it is at all.

It is not strange that people can be confused by this. But it doesn't end there. One of the differences between Gnome 2 and Gnome 3 is the toolkit that's used to create new applications. That's GTK2 and GTK3. From a developers perspective, GTK3 is a huge improvement. A casual user, on the other hand, will not be able to spot the difference, except for theming and some new features, such as flippable widgets and greatly improved themeability. If these new features aren't specifically added to the application, there is no noticeable difference. Now, Gnome Panel needed to be upgraded to GTK3. From both users and developers perspectives, this is a pure upgrade. Nothing is lost, but you get more flexibility, such as flipping labels to make panels look better when they're set in a vertical orientation. However, because of the way the panel is designed, that also means that all panel applets must be upgraded to GTK3. It's usually a very simple job and in many cases it can be automated. Still, it has to be done and since there is no central authority, it's difficult to make it happen all at once. So it is likely that some applets have not been ported. Other than that, there is no difference between Gnome Panel 2 and Gnome Panel 3 in relation to Gnome 3. However, the Gnome Panel developers didn't only port it to GTK3, DConf, etc. They also made some changes to the panel itself. This is to fix a very long lasting bug (many years) in Gnome Panel that noone has been able to fix. For reference, you can find it here.

As you can see, it was reported in May 2006. It was fixed in the end of 2011. The solution was to not allow applets to move freely, but instead group them, so you have left, center and right. Unfortunately, distros didn't immediately backport that change to Gnome Panel 2, though that is the intention. So now we have an actual difference between Gnome Panel 2 and Gnome Panel 3, though the fix should be applied to both. Another thing that was fixed is something that's annoyed me for many years; that you have to right-click and unlock applets before you can move them, and then locking them again afterwards. Instead, the developers added an automatic lock. You unlock the applets by pressing alt and then middle-click and drag to move. No more lock/unlock insanity. This is a good change and I think most Gnome Panel lovers will agree with that. You also have to press alt when right-clicking to access the menus to customize the panel. I have no idea why they did that. Additionally, the new panel looks slightly different because of theming.

So now we have two Gnome Panels that look and feel different, though they're mostly identical under the hood. Add to this, that Gnome Panel gets installed when you install the Gnome Shell package, and a lot of people will think that Gnome Fallback (which is yet another way of not referring to its name) is a simplified version of Gnome Shell. Nobody can blame them for thinking that, but it is wrong.

MATE & Cinnamon
Then we have MATE and Cinnamon. Things are really starting to get fun now. MATE claims to be a fork of "GNOME 2". It is my impression that most users who refer to it, are talking about the desktop itself; Gnome Panel. However, that is not what MATE means. They are referring to everything from music players, text editors, web browsers, email clients... I have difficulty believing that's why MATE gets so much hype and attention, even if there's hardly any real changes at all at this stage. Now, if they said they wanted to fork Gnome Panel in order to get the exact same desktop feel as in earlier versions, I would've probably applauded it. I think Gnome Panel deserves attention. I probably think the first choice should be to contribute to upstream, but that's up to the developers. So, when users are referring to the "MATE/Gnome 2 desktop", what exactly is it they're referring to? Is it GEdit or Rhythmbox, or is it only the panels and window manager? Cinnamon, of course, is a Gnome Shell fork that aims at recreating something similar to the Gnome Panel experience, but of course they don't phrase it like that. No, they compare it to Gnome 2.

It is only natural to become confused. The effects of these confusions is that it is much more difficult for new users to learn and become part of our community. If nobody can agree on what things are called, then it is really difficult to seek out precise information about what you're looking for. Another effect is that Windows and OS X fanboys can point to us and say "look at those people, they don't even know what their own desktops are called! This free software stuff is just a load of crap". So, first we confuse ourselves and limit our own ability to communicate. Secondly, we make it more difficult to attract more users to GNU/Linux. Third, we give the opponents ammunition to use when they argue against us.

I hope the problem is easily understood. The solution is also simple. Don't use vague hype and buzzwords. Use product names. Refer to things as "Gnome Panel 2", "Banshee", "Rhythmbox", "MATE Panel", etc. That way, we can communicate much more efficiently, issues can be identified and problems can be solved. If the MATE project succeeds, this will become even more important, since we'll have three versions of the exact same software. None of you can possibly know what I mean when I say that "The Gnome 3 music player is better than the Gnome 2 music player". Keep this in mind when you're discussing on websites, mailinglists and blogs. Clarity is important.