IDG Answers is a community of experts who are passionate about technology. Ask a question or answer one below.
I use Linux in a variety of ways. I use it on my Android phone, Android is very mainstream. Android uses Linux. GNU Linux has too many restrictions to make working with GNU Linux distributions easy. Even if you only support Ubuntu, it is a hassle to get around the licensing. Not to mention getting any sort of applications you want to sell to make a living off of, in any usable repository is impossible. Let alone getting people who are used to everything being free to let go of their dollar bill.
I use Linux on my media machine for my TV. With XBMC it is nice enough. If all you want to do is listen to music, watch tv, use facebook, play older games via steam's very limited abysmal Linux library. All of it's potential gets squashed when the FOSS guys come screaming their heads off at you for being closed source, how dare I ask for money for my creation and hard work!
Next thing to consider is efficiancy. How efficiant is it to actually run and support even a secondary computer? Even without applications, Linux is still a pain to maintain. it has broken over the years, quite often for me, dropping me to terminal or crashing sound, or completely wiping my xorg.conf file, or messing up drivers, all with some little update. Regressions and loss of capabilities in the name of simplicity.Foss minded people seem to think less functionality == easier to use.
The simple answer is that Linux isn't simple to use. Sure, you can do most common things through easy to use point&click actions, like installing new applications and browsing the web. Unfortunately there are too many things which require you to use the terminal to get things up and running, like installing certain drivers and applications. Alot of this is caused by the fragmentation of the linux desktop. All the different distros do things a little bit different, like the fact that there isn't one standard package type. There are several, and any one of them can not always be used easily on a certain distro. Some distros use DEB packages, but if you find a package that uses RPM it isn't that easy to install, usually requiring you to do some work in the terminal with obscure commands and scripts to get it to work. A casual non-techie user isn't going to stand for that, it's just too complicated. Even a tech person who is using their desktop for production work won't stand for that. It takes too much time away from what you really was supposed to be doing. This is the main reason why Linux isn't doing that great on the desktop market. You can argue about the pre-installs all you want, very few manufacturers will pre-install an OS that isn't user friendly. All this is caused by fragmentation, which on the other hand also is the reason why linux is so versatile. Versatility is good when you want to setup your computer to run exactly as you need it to, but it takes alot of work to get it perfect. This is why linux is successful as servers, because the admins can have the server run exactly the way they want.
In conclusion, for Linux to ever be mainstream succesful (comparable to windows/osx) on the desktop you would have to get rid of fragmentation and agree on some standards, so that all applications and drivers can be installed on every distro without the use of the terminal. You should never have to use the terminal for anything unless you want to do something REALLY specific, or you just like it. As a side note: Android (which is based on linux) is successful, in a large part, because there is no fragmentation, no terminal, and it's easy to use. (Not overlooking the Google backing)
I always wondered why someone "in charge" of linux didn't make a standards board or something and layed down some basic standards for different things that would ensure that all distros(which followed the standards) was 100% compatible. They could have like a Linux Validation Seal or something and if you followed the standards you could display the Seal on your product/website. This would ensure that you would never have to fiddle with terminals and scripts, since everything would work exactly the same behind the scenes. Every distro could still use whatever front-end(window manager) they wanted as long as the behind the scenes stuff followed the standards, like using the same package types and being compatible with the same drivers, etc... Now who could possibly create such a standards board? (Poke -> Linux Foundation) ;)
Now this is just the conclusion that I have come to as I really want to use Linux, but I can't because there are too many distractions and it's not streamlined enough, so it's not viable as a production quality desktop for me. I have better things to than fiddle with the terminal. Also I like games, which is another area that Linux suffers in (I could explain the reason here too, but I've ranted long enough). Let's hope SteamOS works out. ;)
Fantastic response. I agree with you that fragmentation is a big issue. It’s much like Android (which is of course Linux based). It’s great for people who are interested enough to learn how to take advantage of the flexability, but fragmentation makes development harder than it could be, and consumers just want something that works out of the box, not something that they have to make work.
Linux desktop,specially Ubuntu , is ready for the enterprise right now.
It is intuitive and bug free(A as many as windows at least),comes with several easy to install aplications,
like LibreOffice,Inkscape,GImp and many others.
LInux Servers are fast and easy to maintain ,we have replace our WIndows Servers for Suse ones,theyŕe fast and more reliable even when working this windows 7 desktop stations.
Thre real pain starts when you have to install no trivial applications,nothing is NNF(NEXT NEXT FINISH) in the Linux world,I dont mean really typying nnf withou reading the screen,but youǘe to follow a tutorial for every single instalation in Linux,it take five minutes to install POstgreSql in WIndows and a week in LInux,at least for me.
Linux IS mainstream. Mainstream isn't defined by how many "casual users" choose to install it. Those casual users don't INSTALL any OS, they use what comes on their PC, and that's Windows or OSX. They will start using Linux when it's preinstalled. I've met people who didn't even know they weren't using Windows when using a borrowed computer running Ubuntu; Ubuntu is that intuitive. You don't see Linuxes preinstalled because few distros worry about selling the OS to OEMs for preinstall. With some notable exceptions (Red Hat and Canonical come to mind), no one profits financially from pushing Linux so it's got better penetration in areas where it's flexibility and rock solid stability are most important, like the server market.
The one thing that must happen is for it to be preinstalled by desktop manufacturers, and until then it will remain something of a niche "product". To be honest, I suspect that many existing Linux users don't want to see it go truly mainstream, as it is something of a techie badge of honor to run a Linux OS. Let's face the facts, it just isn't as simple as an off the shelf OS from Apple or Microsoft for the average consumer, and if you don't know the right questions to ask on forums, good luck finding a solution to problems you might have. If it ever gets to the point where a consumer can just walk in to Best Buy and pick up a machine with the choice of either Windows or Linux pre-installed, and with significant cost savings for the Linux machine accompanied by OEM tech support, I think that will be the day Linux has truly reached the mainstream.