``Not on the desktop. Not on the PC. Not on anything that resembles what you call the desktop. Windows has won. Face it. The market is not driven by a technically superior kernel, or an OS that avoids its crashes a few times a day. Users don't (mostly) care. They just reboot and get on with it. They want apps. If the apps they want and like aren't there, it's a lose-lose. Windows has the apps. Linux does not. Its life on the desktop is limited to nice areas (video production, though Mac is very strong and with a UNIX core now will probably end up ruling the roost). The only place you are likely to see Linux is the embedded space. Purpose-built devices to do a few things well. There is no encumbent app space to catch up with as a lot of the apps are custom written. It's still a mostly level playing field. This is where the strengths of Linux can help make it shine.''
I did use Microsoft before I had a viable UNIX system, but those were the days before Microsoft's ``Windows'' had taken over. From time to time, in the course of my job, I need to run ``Windows''. I really hate it, and I have great difficulty understanding how people who understand computers can stand using it. Of course, a large number of people disagree with me, but that's what I can't understand.
That's not to say that a Microsoft install gives you much documentation. But it doesn't need to: it does install a complete desktop, for some definition of ``complete''.
Don't confuse ``complete'' installation with ease of installation. While writing this article, I installed a copy of Microsoft 98 on a spare 8 GB IDE disk. It was painful. If you're interested, it's in my diary for 29 July. I discovered that the installation wasn't even ``complete'': it didn't recognize my Ethernet card, and it didn't recognize the monitor or display card correctly.
We have a number of options here. We can be like Rasterman and capitulate. Microsoft has over 90% of the world's desktops. But that still leaves a large number that don't run Microsoft. You can be pretty sure that the people who use them are, on average, more experienced users of computers than Microsoft users. A number of things are happening at the moment:
We continually see people who try out BSD or Linux, but far too frequently they go back to Microsoft. Some are people who are just unable to come to terms with computers at all. They come to UNIX because they can't understand Microsoft. They go again because they can't understand UNIX either. We shouldn't worry too much about losing these people: in a community where people help each other, they're just a drain on resources, and occasionally they become frustrated enough to cause a flame war.
Others, though, find they have difficulty understanding how to use the software. In many cases, you can't blame them. For the past few months I've been writing another column in Dæmon News, Trawling the Ports Collection, intended to show some of the highlights of the software available for BSD. In the course of investigating the products, though, I came across something surprising: I had great difficulty finding out how the products worked, in finding documentation for them, or in using them. If I can't use the programs, how do newcomers handle them? It's not surprising, under those circumstances, that people tend to go back to Microsoft.
Clearly we can learn from these differences. The installation process doesn't go far enough. It helps to identify four levels of installation:
It's this last step where we slip up. The BSD projects neatly differentiate between the operating system and the desktop, which is a good idea in principle. It's nice to be able to replace desktop components at will. But one of the results is that installing any kind of desktop becomes a problem.
For my book ``The Complete FreeBSD'' I have come up with a meta-port called instant-workstation, which installs a lot of other ports and does some minimal configuration. It's not going to cause Microsoft to go broke overnight, but it does install a lot of software. It still needs a lot of work, though.
But let's get back to why I hate Microsoft. No, it has nothing to do with their commercial background, not even with their unreliability or insecurity. In fact, I haven't had many reliability problems with Microsoft.
The real issue is that I think their whole paradigm is wrong. It goes back to what I was talking about in my very first Daemon's Advocate article nearly four years ago: the whole approach is illiterate. I never learnt to use ``Windows'' properly, so it seems clumsy and inadequate.
Another problem is that when migrating from one operating system to another, you need to relearn everything. This is even the case within relatively closely related systems, such as BSD. Occasionally I make a fool of myself by assuming that a particular feature in NetBSD or OpenBSD works in the same way as in FreeBSD. In the past couple of years I have done a lot of work with Linux, but I still find it extremely hard to adapt to. Microsoft drives me crazy.
People who come to BSD from Microsoft have the opposite problem: BSD drives them crazy. Many complain simply because it's different, of course. But others complain about things that we should have done something about. One of the problems goes back to earlier articles, of course: it's the developers who determine the direction of the projects. marketeers. While this has some advantages, it's also self-limiting. We need product managers who understand what less technical people need (but not necessarily what they think they want).
Part of BSD advocacy should be to teach better ways to do things. It should be a strength of BSD that you can introduce beginners to it using Microsoft-like tools and then allow them to migrate to more powerful tools. Unfortunately, things aren't quite that simple: many of the powerful tools don't exist. That doesn't mean we don't know how to make them, just that nobody has gone to the trouble.
What should these better tools be like? They should be easy for beginners to use, for the obvious reason that they won't use them otherwise. On the other hand, they should not restrict experienced users the way the current crop of GUI software does.
What the desktop world needs is a couple of people of the calibre of Ken Thompson and Dennis Ritchie who will come up with a simple, clean, elegant and (in retrospect) obvious solution for the desktop. I don't expect it to happen soon, but in ten years' time something will have had to change. It's my bet that the current trend to integrate everything in one monolithic package, lucrative as it is for the vendors, will gradually go away and be replaced by smaller, interchangeable software packages. And isn't that exactly what BSD has been doing all along?