So, let's try a little experiment.
Let's all agree to step back, forget what we know, and pretend we're seeing Linux for the first time. Let's pretend we don't know too much about anything besides Windows 98. Let's visit a world where the computer is an intimidating machine that requires a highly skilled technician for basic tweaking. You with me? Okay, here we go...
We just booted up for the first time and logged in, so far so good. The desktop is pretty comfortable; a standard Windows user will be able, in virtually every distribution that configures X and defaults to it on login, to comprehend what they are seeing. Some of the recent changes, for the better, I'd add, have stripped the confusing names, like xSane, Toaster, Evolution, Mozilla and terms like Halt from their default menus and replaced them with much more logical and self-explanatory names like "Scanner", "Burn CDs," "E-mail," and "Browse the Internet." In fact, a very basic user, who is likely using Hotmail or Yahoo Mail or some other web-based e-mail could probably navigate around and get almost all of their day to day work done just fine.
Let's take our user a little further. Let's say she becomes comfortable and gets used to everyday apps like OpenOffice.org, grip, and XMMS. Then one day, our fairly standard user decides she needs a new application, maybe Mr Project, which we'll just agree didn't come with the distribution she has installed. Let's even assume she talks to her buddy who tells her that the app is probably on freshmeat.net, a great repository for Linux apps. She finds it there easily enough and downloads it, and now she has an RPM in her home directory. She associates her home directory to her "My Documents" folder, maybe she knows it's more like Windows 2000 than 98 in a sense. She double clicks it and nothing happens. A minute later, it asks her with what app she would like to open this mysterious RPM. A google search, or maybe, if she's particularly smart, a newsgroup search, later and she has her answer. In this case, she must visit the terminal and type "rpm -Uvh packagename-1.0.i386.rpm". She does it. It fails. She doesn't have rights. After some more research, she finds out she must type "su" at the command line first, enter the root password, and then repeat the command. Once again, it fails, she's missing some dependencies. She finds a similar package on sourceforge.net and downloads it (from her local mirror, of course). Now she has a compressed archive file, a "tarball," she's told it's called, in her home directory. But even after she figures out how to uncompress it and untar it, she doesn't know how to install it. Thank God someone had the forethought to tell the user in the README file to visit the command line, su to root, and run ./configure with the necessary flags. "Where should I install this?" she wonders? The README says, "for SuSE, here, for Red Hat, here, for Mandrake, here...." Frustrated, our persistent user spends some time looking for a solution. Since she's not ready to download Debian just for the .deb files she's told resolve dependencies, she uncovers the solution: URPMI...or APT4RPM ...or GnoRPM. Let's hope she doesn't find out that one of them is deprecated, since she has no idea what that means. But wait! Now she's found information about IRIS, Click n' Run, Red Hat Network, and Red Carpet. "What am I supposed to do?" she asks herself. Her solution, despite her noble effort, is to boot back into Windows 98 where nice, comfortable .exe files are waiting and the answers are any old help desk away.
People don't hate Linux, but the community's arrogance when it comes to addressing legitimate user concerns are continually self-defeating. The acronym "RTFM" is a great example. Why do people even know what that means? Is it really that common that we tell someone to "Read the F*cking Manual!" that we need to abbreviate it?! It's not that Linux users are bad people, it's that there is that much about Linux that is not fairly obvious to a new user. Most flavors are getting a lot better at addressing these concerns. Most people are too. I understand there is a learning curve when learning a new Operating System, but shouldn't we ask ourselves if we, as a community, are doing things the best way anyway?
There IS interest in Linux, but the simple things kill it quickly. Linux's biggest weak spot, in my opinion, is software installation. Although there are numerous solutions, here are my thoughts, from scratch - on the ideal way to install software. Installing software over the internet cannot work all the time - it relies on your sources having the software as soon as you want it, often NOT the case. Therefore, I could propose something like the following:
First off, the definitions must come from a centralized committee, perhaps the LSB. A new format is declared, perhaps *.lif, for Linux Installation File. It needs to have an extension to indicate, fairly obnoxiously, "I AM THE INSTALL FILE FOR THIS APPLICATION." The file, when double clicked, or run from the shell with the scary ./ prefix, invoke a menu that says "You have chosen to install new software. This must be done as the "Root" user with administrative permissions. Please enter the password in the box below" or something like that.
Next comes the fun part: we must either agree that all software is installed in the same place in each distribution, or else, we invoke a second menu, this one unique to your distribution, which recommends a place to install the software. Perhaps it says "You are trying to install a new program. Distribution X recommends new software be placed in the '/opt' directory." Of course, you could install it anywhere, but the menu should tell you where it thinks it should go. The system files would go where they should, just as a Windows application puts files in C:\Windows, but most of the software would be in one place.
Incidentally, acknowledging that some people prefer to compile their applications from source, this would most definitely be possible, these suggestions are purely supplementary.
Uninstalling software must be easy as well. Perhaps an option in the Gnome or KDE launch menu that says "Uninstall software." Here, a list of all software is kept and the necessary way to uninstall it is tracked. I'm not the most technical person out there, but I would think GConf, a registry-like control for Gnome, would be a benefit to this. A user must have the option to uninstall, sometimes simply because they don't like the clutter of too many applications, which, ironically, is another problem (too many apps by default - too many that do the same thing.)
Lastly, continuing in my "I'm not really qualified to make these sweeping suggestions but do anyway" piece, there must be an easy way to make shortcuts to these new apps. I understand the complexity in saying that I should be able to drag an item to the desktop holding Shift or Alt or Ctrl and get a shortcut, but...well...I should. If Microsoft can pull it off in Windows, why can't we? Many people are vocal about the limitations of X Windows. I had the honor of exchanging some e-mails with a prominent player in the Linux world a week or two ago, and he explained that the non-multi-threadedness of X Windows was a killer that continued to plague Linux. With due respect, our desktop user, trying to make the switch doesn't care, and frankly, the term multi-threaded just confirmed her doubt. Worse, she'll probably tell someone she tried Linux and came back, and they'll think, "Jeez...and she's much more technical than I am! I guess I'd never be able to figure it out."
APT and RPM, for those of you still with me, are not competing technologies, they're not even in the same category. But at their basest level, they can partially manage packages, and when distributions ship with either their own proprietary update agent or in a format that is confusing and, for lack of a better term, "non-clickable," it's time to sit down and decide if we should cut our losses and go back to the drawing board.
At the beginning of this piece, I should have explained that everything I'm saying is predicated on the fact that we want new, less technical users in the Linux community and that we want Linux on the desktop - even if it's just the corporate desktop. I believe that with numbers come commercial vendors, more commercial applications, and in time, a better, more complete community. And in the end, isn't that what we all want?
About the Author
Adam Scheinberg is a Network Administrator for the Naval Sea Systems Command (NAVSEA). He uses NetWare 5.1 and Windows NT/2000 at work and is currently running Red Hat Limbo II, Windows 2000, and Windows .net Server RC1 at home.