Friday, April 17, 2009

Why we will never have the year of the Linux desktop

The is a misconception Linux enthusiasts have that no one makes drivers for Linux because of the chicken-and-egg problem: Since everyone uses Windows, hardware makers only make drivers for Windows.

However, one fact Linux zealots ignore is that Linux is not a friendly place for people to make third party drivers.

The problem is that some Linux developers do not respect a company's desire to have trade secrets, and have an anti-corporate attitude that poisons Linux. I call this the "GPL religion", where some zealots believe that people who make money selling software are somehow evil.

Linux needs to let third parties make binary-only drivers for Linux for Linux to succeed on the desktop.

Here is an example of a kernel developer who is religiously opposed to binary drivers. From the linked article:

You think you want a stable kernel interface, but you really do not, and you don't even know it. What you want is a stable running driver, and you get that only if your driver is in the main kernel tree.

In the real world, I have three choices: I can use a stable Linux kernel without support for all of my hardware (CentOS 5), I can have an unstable Linux kernel with support for all of my hardware (Ubuntu), or I can use Microsoft Windows, which gives me both a stable kernel (Windows XP) and support for all of my hardware (since Windows is a friendly place for people to make third-party drivers).

Linux [is] such a strong, stable, and mature operating system which is the reason you are using it in the first place.

No, it's not. I am using Windows XP right now because Linux is not a usable desktop operating system.

Linux kernel development is continuous and at a rapid pace, never stopping to slow down. As such, the kernel developers find bugs in current interfaces, or figure out a better way to do things. If they do that, they then fix the current interfaces to work better.

This idiocy is what happens when engineers, not managers, drive development. Linux is about tweaking things and constantly breaking perfectly working software. If you want to use your computer to get work done, however, Linux is a horrible choice for a desktop OS.

Having an unstable interface is OK if the only drivers you have to worry about are the disk controller and NIC drivers (Linux in the server back room). It's a horrible choice if you want to have a sound card driver, a video card driver, a mouse driver, and all the other happy stuff that a desktop OS needs.