Why Linux isn't ready for desktops

One industry observer shares his views on Linux at the desktop.

perspective After reading Massimo Sandal's recent article, The Firefox Target And The TuxMini, I knew I was going to be in trouble because I just had to blog my contrary position.

This isn't a point by point reply to Sandal's article, but rather a more general disagreement based on my experiences with Linux, Mozilla and Firefox.

It's probably worth pointing out that I'm not a "Linux person." I've only been using Linux for about six years. I've been using Windows for about twice that long, and I've been using Macintosh for about 20 years. I'm not really loyal to any one OS; I've used what my employer or school offered or required and when that wasn't a consideration I've used what I thought was most convenient.

OK. So what's wrong with Linux that makes it not ready for the desktop?

I've tried KDE and Gnome desktops but my latest is FC4 so my criticism is focused on that (and Gnome) but I think KDE distributions suffer just as bad if not worse. The issues fall into four basic categories: migration, stability, simplicity, and comfort. These issues each cover both technical capability shortcomings as well as usability failings.

The first issue, migration, is pretty serious.

For "regular people" to adopt Linux (which usually means leaving Windows), it is going to need a serious migration plan. The OS will need to install on machines next to Windows, leaving that completely intact and easy to return to, and carry over all or nearly all of the user's data and settings.

These users may be willing to take a look at Linux, but as long as all of their data and settings still 'lives' in Windows, they're not going to stay very long no matter how appealing it might be. We learned this lesson in the Mozilla world. It wasn't until we implemented a very capable migration system in Firefox, which carried over the user's IE favourites, cookies, history, passwords, etc, that regular people started moving over in serious numbers -- and staying (and bringing others over). Linux needs to do the same.

It's clearly a much bigger task for an entire OS and all of its major applications to accomplish, but it simply has to be done.

When normal users fire up the Linux desktop for the first time, the browser, office suite, e-mail client, instant messenger client, file manager ... each need to carry over as much as possible -- from the Windows application settings to all or very nearly all of the user data. Without this, the hill is just too steep to climb and these users will not make the climb.

The second problem that blocks massive Linux desktop growth is stability.

I don't mean the "not crashing" kind of stability. I'm talking about a stable API that doesn't require the user jump through hoops when they want to download a new application from Download.com.

A user should be able to install Fedora Core 4 and go grab the latest Firefox release from Download.com and have it work without the need for finding and installing compat-libstdc++ or whatever.

Developers may think it's cool to reuse as much code as possible but the user doesn't care whether it was Linux that failed to include the necessary compatibility components or Mozilla that failed to make the build work for that particular dot release of libstdc++.

Regular users expect to be able to download software, install it, and have it just work. Asking them to figure out complex system library and kernel compatibility issues is a one way ticket off of their desktop.

The third issue is a lack of simplicity.

Just because you can include a feature doesn't mean that you should. Just because you can provide a user preference doesn't mean you should.

I don't want to start a desktop war but I really gotta say to the distros, pick a desktop and be happy. Normal users shouldn't have to (guess or learn enough to) choose between Gnome and KDE when they're installing your product. They don't need 15 to 20 mediocre games in a highly visible Games menu at the top of the Applications list.

And what is a user to think when confronted with a choice between Helix Player, CD Player, and Music Player? Does the Music Player not understand CDs? What's "Helix" mean? Gedit has about 30 user preferences spread across 5 tabs in a preferences window; Notepad has about three.

You and I know that the difference between Settings and Preferences is that one is system wide and one is per-user but regular users don't know that and shouldn't need to know that. If they don't have access to it because it's a system wide setting, then why put that entire menu of options in front of him? If normal users have equal access to both, then why are they split? It's just a confusing mess.

The final major issue is comfort.

Linux must feel comfortable to Windows users. Most people using computers today have been at it for a while now and they've been at it on Windows. Don't mess with their basic understanding of how things work. Regular people do not know what it means to "mount a drive" and they shouldn't have to.

They don't want their OK and Cancel buttons reversed -- tossing out years of finely-tuned muscle memory. They shouldn't have to learn what /home means or how it differs from My Documents. They don't want two clipboards that seem to constantly overwrite each other.

Linux UI fundamentals need a reworking to match the habits that Windows users have been building over the last decade. Get the users first, then try to teach them a better way (if you've have one). Putting things in the "right" place for Windows users will go a long way. You can never do too much to ease the transition.

I think of Linux today the way I think of Mozilla 1.0 from just a few years ago: a very capable product with a very limited audience. If Linux makes major inroads on the desktop, it will probably be as a result of the same kind of focus that put Firefox on tens of millions of desktops, a focus on migration, stability, simplicity, and comfort.

Asa Dotzler is a Mozilla Foundation staff member.