I’m probably asking for abuse by saying this, but in my experience, and for my purposes, Linux is simply not a viable alternative to Windows for a PC’s primary operating system. Plain and simple. But don’t get me wrong, I absolutely adore the concept of Linux. I think it’s great that a dedicated community has put so much time and effort into developing a FREE operating system which aims to give everyone’s favourite multi billion dollar corporation a run for their money. But as promising as the last ten years’ worth of progress have been, Linux still has a long way to go before I’d consider switching over.
One of the main points is hardware compatibility. Most recent distributions of Linux have a pretty decent range of drivers available for most integrated/peripheral hardware devices, but it’s far from comprehensive. Of course, this isn’t necessarily the distributor’s fault, as the device manufacturers themselves often neglect (or delay) providing Linux-compatible drivers for their hardware (prioritising the larger MS-based market instead, as they should). Now, having to download some of your drivers isn’t really a problem – or at least it wouldn’t be, if installing them afterwards was as straight-forward as it ought to be. It took me the better part of two full days to configure Linux on my computer at home, and while that may be in part due to my lack of understanding of the Unix environment, I still have to credit Windows here for simplicity of installation, and recognisability of modern hardware devices. I wasn’t particularly impressed when Mandrake 9 asked me what kind of mouse I had, and my only option that included a scroll-wheel was “Logitech 3-button”. On a side note, I gave up trying to get my mouse wheel to work in Linux (or more specifically, the X display system). It just lacks any sense of intuition, which made the experience frustrating to say the least.
Next, I quickly discovered what a nightmare it is to install new software under most distributions of Linux. The process is relatively simple in theory, but it almost never works first time. You download a tarball containing the application source, extract it into a folder somewhere, and follow the instructions to compile it on your system. Or so the theory goes – but it never works! “Error, can’t find package: xxx”. (Where “xxx” is a cryptic combination of seemingly random letters, numbers and dots). Ah, dependencies. Possibly the largest of all the daggers in the back of the inexperienced Linux user. Don’t even think about installing anything unless you have the time to gallop around the internet searching for various dependencies that, as a user, you should never be made aware of in the first place.
I’ve said it before, and I’ll say it again: Shared system libraries are an evil, evil thing. Every program should come with every single resource that it requires to run. Sure, downloads will be a little larger, but that’s a small price to pay. The internet is getting faster, and hard drives are getting larger. I’m fully aware that it was Microsoft who first developed the idea of shared and dynamically linked libraries (and subsequently, the global headache commonly referred to as “DLL Hell”), but I don’t see why Linux had to stumble blindly into the very same pit. I’m also aware that certain distributions of Linux (namely Debian) provide useful tools designed to take the pain out of installing new applications by searching for and downloading all required dependencies behind the scenes automatically, but the exception doesn’t change the rule. As soon as the majority of software vendors decide to start distributing pre-compiled binaries which include current versions of all required dependencies (in a single package), I’ll give it another shot.
The X-Windows system itself, I’ve found, is less stable, and less functional than the current version of MS Windows. The latest version of KDE sure looks impressive, and boasts a huge number of amazing features, but it still feels a little unresponsive to use. Often I’d attempt to run a program, and for a moment it wouldn’t give me any indication that something was happening. Finally the taskbar icon would appear, or the mouse cursor would change, but by that stage I’d already tried to run it again, just in case I missed the button or double-clicked too slowly. It just seems a little clumsy. But this is probably the least of all my concerns. I really do like the X interface, and I think it has a lot of advantages over Windows, but it’s just too damn hard to setup in the first place. Having to run a command-line utility and answer a bunch of questions about your computer isn’t something the average PC user wants to do when they install a new OS. And as Windows demonstrates, it’s not something they need to do. I guess Linux just needs to get with the times, and make a few more assumptions about the user. It needs to stop pretending that anyone might have a CPU that isn’t x86, and it needs to stop pretending anyone owns a monitor that can’t display standard SVGA.
Anyway, the final (and most significant) problem I have with Linux is software compatibility. Unfortunately it’s not something the Linux community can really do anything about, because it’s up to the developers themselves which platform they design their software for. Any commercial business knows that about 80% of the PC market run Windows, so it’s financially beneficial to target your application for that environment. It doesn’t really matter how much we (commercial developers) hate MS as a company, the fact is, we have to eat, and your product simply won’t sell as effectively if you don’t build it for the majority of users.
I won’t go into detail with the various other problems I encountered while configuring a popular distribution of Linux on what I’d consider to be a very standard computer in terms of hardware, but some of the “highlights” were as follows: No sound, despite my “Live!” card being reportedly found and configured without error. Major dramas involving internet connectivity. For such a simplified and efficient setup dialog, it’s amazing how difficult it can be to tell the system, “Look, I have a router at this IP, please use it!” Again, there’s way too much info here that the common PC user doesn’t want/need to see. When I select “LAN” as my internet connection, I want to only see three things: A list of network adapters in my machine, a list of IPs that have been assigned to said network adapters, and a little box labelled “Gateway”. Everything else, which absolutely nobody needs to see, should be hidden away under an “advanced” section somewhere. I hate to say it so bluntly, but I guess what I’m getting at is that Linux should (in a lot of ways) be more like Windows.
There’s a lot I don’t like about Windows, but my adventures with Linux make me appreciate just how great it is to use a system that actually works without a great deal of manual configuration. Fancy features like built-in links to dictionary.com and little eyes that follow the mouse around the screen don’t make up for a lack of functionality, or many wasted hours of painful setting up.
That’s just the impression I got from my experience, though. Each time I feel confident about going back and giving it another shot, I walk away disappointed. Maybe in another few months I’ll try again.