Another repost. I have intimated on this site before my thoughts on Linux, and have always wanted to write a monster post that details them more thoroughly, but the time doesn't come. Here is a slightly-edited-for-readability post from elsewhere on non-computer-savvy people's ability to set up and use Ubuntu Linux:
I build my own PCs. I think that's falling-off-a-log easy. But try to get a noob friend of yours into it. No really, try. They'll come up with the goofiest, craziest, hardest questions you've ever heard. I understand on a conceptual, top-down level what is going on when I'm putting a system together and getting drivers, etc. I've been doing it long enough that when I build a new one, it's a simple matter of just learning the changes since last time I did it. Usually I already know about them because I'm a geek and keep up on such things for fun. But, for example, the change from 20-pin to 24-pin ATX connectors caught me completely by surprise and required another trip to the store to get an adapter. It still happens. I know to look up beep codes. I know what to do if it doesn't start up. When all is said and done, I forget these little problems because they are not memorable--they are not salient events because I calmly and quickly solved them. This is not the case to a person who doesn't have that comparatively vast storehouse of latent knowledge.
For someone just starting out, though, that "24-pin ATX connector" confusion happens with every single step of the process. What seems simple to us only seems that way because we've got a massive backlog of understanding that we just take for granted. We only need to make adjustments to it.
This is the same phenomenon when you're talking to a Linux person. They often have sysadmin experience or training, or a CS degree that required them to do a lot of work in UNIX, or just got into *nix systems for fun and had that level of intrinsic motivation to learn where learning itself was the end, not the means to an end. They take that experience for granted.
So when I set up a Linux system, even though I have a pretty good top-down understanding of what's going on, every little problem is like that 24-pin adapter. Except there's no store to go to. And the fix I find on the internet might not actually fix it. It might actually screw something else up. I don't know enough about *nix system structure to intelligently solve the problem, and I end up with many hours of frustration, no one to help me, and at the end a system that may not actually work right that doesn't run any of the software I need to do for my job.
And that's the problem with Linux. It's a lot of work to get a system that does virtually nothing (GIMP, OO.o, etc. are cheap, crummy knockoffs of Photoshop, MS Office, etc.--only viable replacements if you don't actually use them that much or don't use them for anything serious). Yeah, you can plug your camera into an Ubuntu box. Big whoop. It has mass storage drivers. Yeah, it detects your hardware and gives you minimal support for its features, as opposed to Windows asking you to put in a CD so you have all of them. This is setting the bar ridiculously low for Linux.
I've recently switched to the Mac, actually. It's like Linux in that it's tough and solid and robust, but it's like Windows in that it runs MS Office, iTunes--and VMware Fusion for the rest only cost me $40. Oh, and I have never had to edit a .conf file just to get something to run.
I've said it many times before. Linux on the desktop is a hobby. A political statement. A worldview. It is not, however, a viable operating system for the masses. The masses have jobs that don't involve reading core dumps.