update: Please post your comments here (this page is getting too long and slow.)
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 post 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 6 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 distros 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) Linux is going to need a serious migration plan. It will need to install on machines next to Window, leaving that completely intact and easy to return to, and carry over all or nearly all of the user's data and settings. Regular People 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 favorites, 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 Regular People fire up the Linux desktop for the first time, the browser, office suite, email client, IM client, file manager, etc, each need to carry over as much as possible of the Windows application settings and all or very nearly all of the user data. Without this, the hill is just too steep to climb and Regular People 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 People 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. Regular People shouldn't have to (guess or learn enough to) choose between Gnome and KDE when they're installing your product. Regular People don't need 15-20 mediocre games in a highly visible Games menu at the top of the Applications list. And what is a Regular Person 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 People don't know that and shouldn't need to know that. If the Regular Person doesn'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 the Regular Person has 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. Regular People don't want their OK and Cancel buttons reversed -- tossing out years of finely tuned muscle memory. Regular People shouldn't have to learn what /home means or how it differs from My Documents. Regular People 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 got 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.
update: I just ran acros Kim Bauters' article which hits on some other great points.
update: Please put your comments here (this page is getting too long and slow.)