I just finished reading the news about Haiku's event at LUGRadio last weekend and the question asked of Koki got me to thinking. Some Linux fans out there may be wondering, "Yeah, why not?" I can think of quite a few reasons why not. Be warned, my skin has been infused with asbestos. Not as good as adamantium, but I don't have problems at airports. ;)
Linux is Intended for Servers
To use a quote from Michael Phipps at the first WalterCon, "You can put a pig in a dress, but it's still a server." Linux's kernel is primarily intended as a server operating system. Yeah, yeah, there are tweaks that have been made to the sources to help with responsiveness on the desktop, but they have not been made official part of the kernel. X Windows is not going away any time soon, and despite the efforts of the XOrg team, it's still got problems, primarily the complexity of configuration but also other things like multiple monitor support. Yes, most configuration is hidden away from the user, but it still manages to rear its ugly, textfile-based head now and then. Xinerama helps, too, but it's too difficult to setup and has limitations in its flexibility. This one area that Windows beats Linux on, hands down. These issues stem from the UNIX origins that Linux is based on.
Linux is not Commercial-Friendly
Have you noticed that while there are a few companies out there that are gung-ho about Linux development and open source software in general, most won't touch it? A lot of corporations are not about to develop for an operating system that forces them to give away the family jewels, free or not. nVidia has a bad reputation among the GPL zealots because it won't do this. Making wireless networking under Linux is a crapshoot with the odds stacked against you, for example. Most of it is because of the GPL.
Linux Desktop Usability has a Long Way to Go
I am writing this from within Firefox 3.0 Beta 5 on a laptop that only runs Xubuntu Hardy Heron. I am not afraid to use Linux and am relatively comfortable using it on the desktop. Simply put, desktop Linux is too much work. I use it because I don't have to reinstall it every 6 months to a year to keep it from bogging down, unlike Windows, and because I am more productive using it for day-to-day tasks and office work. It takes a lot of tweaking -- regardless of the desktop environment -- to get productive. I would not dare ask my wife to try to install any Linux distro, nor would I try to get her to learn all the things I've had to learn about Linux.
Need some examples of places where Linux usability is ridiculously bad? Here are a few: a user should never have to edit config files. Ever. Regular users do not care about the GPL. At all. Not in a million years. A user should not have to ever compile a kernel (or anything else) for any reason. Go beyond the basics and nice, sweet, Ubuntuland becomes a wilderness of BASH, text files, tweaking, and forum searching. I could go on and on here.
Linux has no Cohesiveness
I've said this before: if I sit down at a Windows desktop, I have a reasonable expectation of the experience to come, for bad or worse. If I sit down at a Linux (or UNIX, for that matter) desktop, I have no idea what to expect: Xfce, GNOME, KDE, GNUStep, WindowMaker, or something else, particularly if the maintainer of the machine is a bigger geek than I am. The parts don't all work together, visually, functionally, or otherwise. Try copying some text to the clipboard, closing the app, and then pasting the text into another app. It doesn't work. Motif doesn't look like GNOME or KDE. Same with Java. The lack of a unifying vision and direction for the OS results in chaos in general, and this shows in using Linux.
Haiku is Easier for Developers
While it has been a while since I did any development for BeOS, I have been experimenting with APIs from other toolkits and OSes. BeOS is still easier than any other I've seen. The only one that comes reasonably close is Qt, and even it has its difficulties. It is easier for a developer to write a responsive, multithreaded (and, thus, multicore-friendly) application under BeOS than any other toolkit. SMP support doesn't have to be compiled into the kernel because it's already there. The filesystem automatically has support for extended attributes.
Linux is Slow on the Desktop
There are so many reasons why Linux is slow for the desktop. The network transparency that X has doesn't have much use in one- or even two-computer homes. The Linux kernel, by default, does not include low-latency code, so home audio work takes more work than it needs to. Programs are single-threaded, so there are countless instances of waiting for a window to redraw itself because it's off doing something else. Boot time is on par with Windows XP or Vista and shutdown time isn't much different. I have not seen any mainstream OS -- or any seriously developed hobby OS -- that shuts down faster than Haiku does, bar none.
This may sound like I'm bashing Linux. In some places, yes I am, but not because I hate it or anything. Many of the problems that go with Linux have to do with either using a tool for a purpose other than what it was intended (server on the desktop), development decisions that have an impact on relations with corporations, or because of the geek culture that Linux is best suited to. The desktop market is primarily regular, non-technical people. Linux is a culture of geeks. The two don't really mix very well. Red Hat was smart in saying that a desktop distro is hard, because it is. Why not help Linux, because Joe User is a person, too.