QUOTE(kryogenix @ Jul 12 2005, 8:23 AM)
I had a friend who's hard drive failed, so I gave him a Knoppix disc to use while he was waiting for a new drive. He was able to use it for what he needed without needing any new software (this was even while school was in session!). Everything he needed was supplied by KDE and the distro.
Perhaps if you are doing basic word processing and basic Internet stuff (IM, email, web) you can do it without any additional applications, but if you used a Linux computer full-time, you'd eventually grow beyond that (I hope). I mean, you've added programs to your PC, haven't you? It's highly unlikely a distro would have
all the programs to suit your needs included. If it does, you're probably not doing a whole lot with your computer, and in that case,
any computer would suit your needs.
The problem in Linux arises in getting more software. Sure, it's easy to find, but often it's packaged as source, requiring a compile (which can take a lot of time for large programs). Even compiling can be a pain in the neck, especially if you encounter errors due to a lack of certain libraries. Some package-management solutions in some distros have alleviated most of those problems, but it's still not as easy as downloading and installing software on Windows or the Macintosh.
QUOTE(kryogenix @ Jul 12 2005, 8:23 AM)
What you see as a weakness, I see as a strength. The beauty of multiple distros is the range of choices. Don't like gnome? Pick a distro with KDE, or vice versa.
The availability of options in Linux is one of its strengths, but paradoxically, it's also one of its flaws. The problem is that I can get a program for "Linux" and install it on my Linux box, and it may not work. Why not? Well, what if its written for KDE and uses, say, kdelib or the Qt widget set. I don't have KDE on my computer, so I can't use that program--
even though it runs in Linux. Similarly, a program designed for GNOME uses the GNOME libraries and the Gtk widget set, which won't work properly if you don't have GNOME installed.
So in the end you have a system with a number of different API's, which gets annoying to write software for, because who knows what API's the end-user will have. It gets annoying to get software for the system, too, because then you try to compile it and end up with a bunch of dependency failures because you don't have the right libraries.
Alternatively, on Windows or OS X, a developer
knows exactly what his end-user will have in terms of libraries and API's. A Windows developer knows that a program written in the Win32 API will run under Windows. An OS X developer has more leeway--his end-user will have four API's: Cocoa, Carbon, BSD, and Java. Any application written in those API's will run under OS X.
A Linux developer...he has no idea what the configuration of the end-user's machine will be. So in the end, that which is a great strength of Linux--its customizability, is in turn its greatest downfall. Hardcore computer users love customizability, yes, but the average consumer? He just wants a box that will work. He'll be happy with what he gets, as long as it does the job. Unfortunately, Linux doesn't always do the job, or at least not easily.
I also don't look at the open-source model as a great strength for Linux
in terms of getting it onto the desktop. It's a great idea, but the average user doesn't care about that--the average user isn't going to fiddle with code. Honestly, kryo, how often have you taken apart KDE, or Firefox, or any other program, and changed the code around to fix something? I'm making an assumption here, which is dangerous, but I am willing to bet it hasn't been that often, if ever. Many users tout the advantages of the open-source model on Linux, but they don't do a good job selling it--because the average computer user doesn't care about being able to take apart and modify his software. As a programmer, I like the open-source model--but hey, a large percentage of OS X's software is open source (including the entire kernel and many other components of the OS) so I get to play around with source code on OS X, anyway.