Open Source vs Closed Source. The debate has raged for many years now, and perhaps one of the biggest ongoing questions on everyone's lips is "will open source ever run the desktop?". It's been ongoing for so long that it is almost rhetorical nowadays. Everyone has their own take on this question, so I will share mine.
Will open source ever run the desktop?
In a word, no. In more words, not without some big philosophical changes to the open source desktop model. The only reason I say "no" is that I can't see this happening any time soon.
The Unix and GNU philosophy has always been to develop a large selection of tools with a narrow but specific purpose. List a directory using ls, pipe that output to grep, pipe that to more, and pipe that to tar, then onto gzip. Five different tools were used for one task. This is and has always been the GNU way of life. You don't like it, then GNU (GNU's Not for U). Of course, there's more than one tool which is capable of performing any given task. So the 'Nix administrator not only has a large number of tools available for any given job, they also have the choice of several for any given job. This is a good thing.
What works for Unix doesn't work on the desktop
Where excessive choice is not a good thing is, I believe, on the desktop. Let me clarify. Let's imagine that Microsoft Word was just a page view where you write words. To access fonts, you load in an external font manager which categorises them however you see fit. To browse for your files, you bring up your choice of file manager. Want to insert clip-art? Then you have a wide range of clip-art managers to choose from. That might sound like a great scenario for a capable user, but remember where the bulk of desktop use occurs - the professional workplace.
Work is a place where people who aren't necessarily capable computer users are forced to use computers. They want things to be simple and, more importantly, straightforward. Imagine how complicated it would be for support, in-house documentation, training, and usability if Microsoft Word were only part of the word processor it is today. Imagine if the previously-dicussed model of "lot's of tools with specific purposes" applied to desktop software. Life at work would be unbearable for those in technical support.
Picture receiving a support phone call from a user and trying to establish what font manager, file manager, and clip-art manager they used, and then fix their Word problem for them. I'm sure there are people who can come up with a thousand reasons for how such a model could work, and even why it's better. The reality is, users just won't cope with it. That's why Microsoft Word is as popular as it is today. It does everything it needs to and doesn't require add-ons to achive this. Many well-meaning sysadmins have probably tried to push out segregated component-based open source solutions into the workplace because it's better for the common good. All power to them for trying, but it's all just too segmented.
There's too much
Having established that desktop software requires a different philosophy to Unix, we need to look at the current model of software development, and why it's not working. The open source model has evolved out of sheer frustration. If you don't like the current choice of mail apps out there, you start your own. You might cite a number of reasons for not liking existing apps: Licensing restrictions, patent problems, missing functionality to name a few. So you attract developers, graphic artists, and testers, and you call it a project. One has to admire people for feeling strongly enough about the state of software in a given area to get off their backside and write their own app. So many complain whilst doing nothing about it, at least these people do something about it. The problem with this example is that before long, the already cluttered family of unfinished open source mail clients just got bigger by one.
The very area I believe is open source software's weakness, others would argue is it's biggest strength: Choice. On the desktop, too much choice is bad. I work in an organisation who provide network solutions for clients. We're not an open source shop, nor are we an all-Microsoft shop, and I like to think my views aren't strongly tainted either way. We believe in the right tool for the right job. We use Windows for desktops and file servers, and GNU/Linux for mail and proxy servers. One of the most common requests we receive is for a professional-quality shared calendaring application with similar functionality to MS Outlook plus MS Exchange. Using open source software, it can't be done. I have scoured the internet looking for Exchange replacements for many years, and nothing free comes even close. There are a myriad of open source groupware packages that do everything except talk to Outlook for free, but without a stable calendar app to hang on the other end of the connection, what good is it? I'm not going to go into the details of which packages I have tried, but they are simply not as straightforward to an average user as Outlook. If they are, they are too young. The rest were web-based, clunky, or lacked two-way, permission-based synchronisation with iCalendar files. All lacked the polish necessary for widespread adoption at desktop level.
Years ago, people were saying "Just wait. A really good calendar app called xyz has been started and it should be really good when it's developed. It should take away the need to use Outlook AND Exchange" all the time. Today, they're still saying the same thing. There's a lot of starting going on but not much finishing. A quick search on Freshmeat will turn up loads of calendar apps still in beta, a few projects which got past .0 but haven't been updated for a few years, and a few others that have been all but abandoned. I'd hate to think how much expertise and time has gone into writing this array of abandoned calendaring platforms. Just think what could have happened if all that energy had been channeled into a single app.
Mozilla Firefox is the first browser to give Internet Explorer a run for it's money. It did so because, among other things, the developer team were all striving for the same thing. There were a couple of other gecko-based browsers that popped up over time, but Mozilla have stuck at it and stayed around to make the browser we know as Firefox. Now we're at the point where, as a rule, Closed Source Browser = IE; Open Source Browser= Firefox. It's this kind of simplicity we need more of.
OpenOffice is perhaps another example of efforts being concentrated into one product. So much energy is wasted when people segregate and start their own projects. They think they're doing it to help the open source community by extending choice, but in reality, I believe they are slowly killing it, or at least stinting it's growth. There's a huge audience out there using open source desktops, but if a third of them are using KDE, a third using GNOME, and a third using other window managers, it makes open source appear less popular compared to Windows. Imagine if the Firefox user base were divided among three different open source browsers. At present, the 10-15% worldwide usage makes a blip on the browser radar, but a third of that is nothing special.
If we want open source software to take off on the desktop, we need to reduce the amount of choice and concentrate our efforts into a single app for each purpose. Choice is one of the drawcards of open source software, but if it is ever to receive adoption at any recognisable level on the desktop, there needs to be less of it. More is less and less is more.