Lets take a very cold hard look at the reality of the first 24 hours when setting Windows vs. Linux. The purpose of this post is not to regurgitate a recollection of my first install, but to expose the most serious issues blocking mainstream adoption of Linux. And you thought this was going to mention Jack Bauer you silly fool. Don’t worry – this will be plenty brutal…
Let me start by saying that the prognosis is grim. I don’t know if we live in a society that is giving enough to ever back a program that isn’t driven by a corporation. It seems like today people look for the words “Professional”, and “Enterprise” and “Premium” while frowning at words like “unstable”, “experimental”, and “beta”. Even the capitalization is different. Solid applications are critical in today’s workplace.
As a disclaimer, my test machine is based on the Santa Rosa chipset, which is pretty new (so support is scare in the Linux distributions for such exotic hardware right now).
Hands down, Ubuntu wins. Talking about this subject is beating a dead horse. Lets move on to some more painful points.
Customizing the base Installation:
First thing anyone does is check when reformatting is make sure all the hardware is working properly. I have some cool stuff on this machine like a fingerprint reader, and an ambient light sensor. These are things I want working. Sure, Linux comes with 90% of the drivers installed and working by default, whereas running Windows means running to the notebook manufacturer’s website and drilling through an arbitrary (and often horrible) site layout. The difference? Windows within an hour has 100% hardware compatibility. No exceptions. No excuses. Why?
Well, Microsoft doesn’t create all of these drivers for all of this exotic hardware. They provided an API that developers and hardware manufacturers call in their code. Microsoft’s job ends with ensuring that when the API is used correctly, it performs as advertised. In the Linux world, drivers are often written and maintained by the community. Video cards and wireless hardware seem to be the nastiest when it comes to getting properly working drivers. nVidia, ATI and Intel try, but without that rock solid promised API, everything becomes a best effort. Whats worse, is because there are dozens of packaging standards, the drivers you use are most likely packaged and tested by the distribution’s community, not the manufacturers. Software is devious and after any change (especially repackaging) it needs to be extensively tested on a wide range of hardware configurations. In the Windows world, faulty drivers means very bad PR for a company, but no so with Linux. Something can work most of the time, and be perfectly acceptable. This mentality has to change.
I am pretty set in the list of software that I load on every machine I use. Coming from an open source background, I am fortunate that most of the programs that I love are programs that I discovered because they were available on multiple platforms. Even so, I want solid applications. My dream list reads like this: Firefox, Thunderbird, Google Desktop, GAIM, Winamp, Daemon Tools, Nero, Picasa, and all the latest games. You were nodding yes to this list until I said games huh? This point exposes a big problem – almost no companies make commercial software for Linux. A community effort is admirable, but it isn’t a replacement for companies that pay people good money to work 40 hours a week with hundreds of other people collaborating on specific programs. gnuCash vs Quicken; OpenOffice vs. Microsoft Office; GIMP vs. Photoshop; MonoDevelop vs Visual Studio. In todays world 3% of the world’s programmers working in their spare time cannot keep pace with the entire remaining technology industry. Linux users need ISVs, but without a solid API, and unified packaging, it is not likely to happen.
Linux never crashes. Unfortunately, this bold statement doesn’t extend much beyond the kernel. Who cares if the kernel is stable if the application you are using just suddenly closes itself? Applications are what people use, and they define the user experience; the kernel is transparent. Without solid applications, Linux is an empty sandbox. The success of Windows doesn’t lie in the Operating System itself, but in the wonderful applications available exclusively for it. Same with Apple, and Sony, and Nintendo.
I am afraid to use my Linux box in a critical situation, such as a presentation, or demonstration. The reason is because I know something is going to have a quirk, and fixing such things is very distracting and embarrassing. I need to feel a higher level of confidence in the technology I am using, so I can focus on the presentation, and not whether my equipment is working.
This is probably the biggest complaint that I have. Everything is experimental, or beta, and few developers want to step up and say that something is production ready. Usually, these half completed projects float away and are never heard of again. However with Linux, this level of software is everywhere because it is the only application that does feature x,y, or z. This is why we need companies – customers demand guarantees. I installed Ubuntu 7.04 on my machine, and the live CD couldn’t mount the SATA hard drive. After about an hour of searching I found a parameter I can pass that resolves the mounting issues. A few minutes later, I am looking at a crashed X session. I cant update the kernel version (which included support for the new chipset) because the live CD is temporary, and I would have to reboot to use the newer kernel. Since the installation was GUI driven, I was out of ideas. This should have been a common scenario that was taken into account. Graceful degradation isn’t a new concept.
This is a laptop, so this is a crucial area of concern. I can’t just leave the machine on for hours and hours. It needs to reliably suspend and hibernate. Not 1 in 10 times, not 99 in 100 times, but every time. This feature is so critical, it can be analogous to a car turning off then starting again later. I am skeptical that I will see the desktop again when I close the lid, or click a power saving mode. Windows handles these operations very reliably – even without the proper set of drivers. So what is the excuse?
I listen to podcasts on my way to and from work on my laptop. No, I do not have an iPod or MP3 stereo. I want a hassle free podcast management application (that even deletes my files after I listen to them). I need a notebook that can suspend and resume quickly, and efficiently use power. Most of all, I want to enjoy my trip, and not fight with my laptop with one hand on the steering wheel, and the other typing.
I love open source, and I love Linux. That is why I am being so hard on these issues. I want to see these obstacles overcome, and see success in average people making the switch. These long standing issues create a stigma about the quality of a product that is very hard to reverse.