On the State of Linux GUI Development

Posted on the Ubuntu-Devel-Discuss mailing list on 4-7-2012 (just a few minutes ago).  I don’t yet know how this will go over, or even if those on the list will have the patience to read it all; but I can hope.  In any case, I’m increasing the potential audience of this essay/letter, since I find the subject important and oft-neglected.

I’m not keen on getting involved in a debate, but since this issue affects my ability to be productive on Ubuntu, as well, I find it appropriate to inform the developers of it.

I’m aware that there have been numerous complaint threads on this mailing list and others about some people finding Unity (and Gnome 3) basically unusable for their purposes.  I’m in the same boat, and while I realize that “+1” on this issue is basically pointless, the continued postings on the subject raise an important issue that’s only being obliquely touched upon, for the most part:

Ubuntu has decreased in usability for many people due to the all-out “war on the old GUI.”  At this point is where someone says, “use Gnome classic!”  This, however, proved rather problematic for me, and continues to be so for many others; also, it’s both condescending and counterproductive to insist that users with genuine problems with the direction of development simply “deal with the new GUI” or switch back to a somewhat broken Gnome 2 that lacks significant pieces that made Gnome usable before these changes started.  I’ll mention a couple of examples, just to cursorily illustrate that I’m not simply “blowing smoke,” but ultimately it’s something you have to use and have problems with to fully understand.

1) No system menu; everything is shoved into Applications > Other.  Having 30+ items here is utterly impractical, and I found that not everything even made it into a menu after System was removed.  I often had to search the web for the program’s actual name so that I could then open a terminal and type the command to let me do some basic administrative or customization task.  This is greatly compounded when much of the menu is full of things that were designed for Unity or Gnome 3, and therefore do nothing useful for Gnome classic–or just as often break things.

2) Even if you can find everything in Gnome classic that you used to use in Gnome 2, half the stuff on a recent Ubuntu installation is stuff that breaks Gnome 2, or is only usable with Unity (and therefore Compiz), or Gnome 3.  Furthermore, if you reset as much as you can to “default” for Gnome classic (delete config files in ~, etc.), you’ll end up with programs that require working Unity/Gnome 3 components, but since you’re no longer configured for those desktop environments, they’ll be unpredictable and crash frequently.  This is especially bad because Compiz breaks Unity (and its components) when not properly configured.  I experienced crashing window manager, freezing, and even segfaults about every hour while using a stock install of Unity with just a few minor Compiz customizations.  These crashes also carried over into Gnome classic, once I stopped using Unity.  (Yes, I disabled Unity support and enabled Gnome support in Compiz.)

Ultimately, I’ve been forced to switch to KDE on Linux Mint–neither of which I’m particularly fond of.  The thing is, though, they work *for me* 10 times better than Ubuntu has since it dropped Gnome 2, so it’s the best of several undesirable options.  I’d love to go back to stock Ubuntu, but as long as the GUI is busy being re-invented (not just in Ubuntu, notably), I’m finding myself stuck dealing with Windows a lot more, and Linux–which I generally like much better–a lot less.  I used to boot into Windows only to play games, but now I find that staying in Linux means spending lots of time arguing with unnecessary GUI problems.  (I’m personally quite fed-up with it all, but I’m trying to be civil and rational so as to be productive, rather than a problem, in and of myself.)

…But all the above is only marginally relevant; the real problem, as I see it, is the development trend being espoused.  I understand that it’s great to invent new, exciting software, and I don’t begrudge anybody of it.  In fact, the mere fact that you bother to write for a free OS is admirable, and I commend you for it (for whatever that’s worth).  Unfortunately, it’s been a consistent-but-growing trend in Linux development, generally, and Ubuntu, specifically, to make a piece of software *pretty* good, then whimsically decide that instead of making it *really* good, it’s more fun/better/whatever to invent a completely new thing, based on better principles, technology, and so forth.  Unfortunately, these good ideas rarely get fully realized before yet another set of good ideas emerges and causes working systems to be abandoned in favor of alpha-stage projects.  This is a problem endemic to Linux as a whole, but it’s been especially disappointing to see it infest the otherwise amazing Ubuntu.  For an example, I note that Red Hat 7.2 had a rather good built-in, cross-environment menu editor.  Then, the underlying software changed, and it was about 5 years until Gnome had a menu editor again (which Ubuntu’s developers helped to create, as I understand it).  Similarly, KDE3 had a good menu editor, but now that KDE4 is out, it’s all but impossible to simply organize items by alphabetical order.  So, while the underlying technology got better, the useful, basic features that we all expect to “just work” (as they do in Windows and Mac OS X, which are the main competition to Ubuntu and Linux) have *repeatedly* gone by the wayside because it’s somehow more appealing to re-write things than to polish them.  I encourage those who still don’t believe me to look for other examples, themselves, rather than fixating upon the ones I’ve given; productive conversation would suffer from arguments over inane details like these.

Since the release of Warty Warthog in the early 2000s, the Ubuntu developers turned the quirky-and-barely-functional Gnome desktop into a darned good system for getting things done.  With a couple years more polish, it could have been truly competitive with GUIs by Apple and Microsoft.  But as soon as it had really come into its own–and before it became “really good”–folks decided to completely redesign a working system, producing the magnets-for-complaints we call Gnome 3 and Unity.  (When you get rid of something that works, in favor of anything at all that’s different, you WILL have complaints–some for good reason.)  I don’t at all doubt that those systems will one day be at least a little better than Gnome 2 ever was, but since in the meantime we have nothing but half-baked new systems and gutted old systems (i.e. Gnome classic and its oddly-more-faithful fork, MATE), the state of the Linux GUI has brought adoption back to a matter of just how much time a competent computer user wants to waste on learning something new, rather than sticking with a system that already works for him.  For a lot of people, the question isn’t even reasonable.  Until this trend of “fixing” things that aren’t broken (from the end user’s perspective) by inventing “shiny-yet-incomplete” things ceases to hold sway, Linux will truly never garner a solid place in the desktop market.

So, here’s the “thrust” of my dissertation: Please, developers, stick with something that works until it’s become something truly great; then when public demand requires it (or your foresee that requirement) make something new and better–but under no circumstances take away what we already use and love!!  It feels like a betrayal of the user base (those who don’t like the new system, at least–and you know there are plenty, if you read these mailing lists), and it puts users in the very awkward and problematic position of deciding to limp along with a broken system or just revert to a commercial offering.  I personally have a somewhat fanatical love for Linux, but for me, anyway, no amount of fanaticism can compete with a gross lack of usability (for my purposes, of course).  I beg you, the developers of this otherwise great OS and superior Linux distribution, to consider the awkward place you’ve put your (existing/potential) user base in, and allow us to install and use the FULLY-FUNCTIONAL version of what’s previously worked for those of us who don’t want the new system just yet.

I know that I’ve been wordy and dissertated at length, so if you’ve read all the above, you have my sincere gratitude.


–Dane Mutters


UPDATE (4-18-12): As it so happens, somebody’s actually found a term for a big part of the problem with the new GUIs: The Principle of Least Astonishment.  Now, if we can only get the Gnome and Unity devs to take a look…

4 thoughts on “On the State of Linux GUI Development

  1. Update (4-7-12): I’ve posted an invitation on the Ubuntu-Devel-Discuss list to continue the conversation here. I hope to hereby reduce “noise” on the mailing list, and also be able to curtail the number of comments that are much more inflammatory than thoughtful.

    I invite all people with an interest in Ubuntu or Linux to post their polite, thought-out opinions, for the digestion of any who care to engage this issue. Thanks, to any who do so.


  2. After long discussion on the devel-discuss list, I learned that these bad GUI decisions are coming from “upstream”–Gnome 3 from its developers, and Unity from Canonical–specifically, Mark Shuttleworth, who has unilaterally decided that the future of Ubuntu is Unity. As a result, I’ve decided to forget about using Ubuntu for the next couple of years, until they make it decent again.

    In the meantime, I’m going to install Mageia, which (in my VirtualBox tests) seems to be pretty good. (They have a good KDE implementation–better than Mint, which I’m currently using.) Ubuntu and its derivatives seem to all have cross-library badness going on between the various GUIs that can technically be installed, but which don’t work right, so for now, a distro that isn’t trying to re-invent so much sounds pretty good to me.

    As an added bonus, Mageia seems like one of the only distros that can coax Canon’s crappy Linux drivers into working decently well (for printing, if not scanning). Being able to use my new printer is certainly a plus. 😉

What are your thoughts on this?

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s