Sunday, August 20, 2006

More is less and less is more

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.


Hannes Pasqualini said...

well... you've got a point. too much resource wasting, but this is no desktop-specific problem, it's a general problem in OSS. the main problems why desktop linux is not taking over are others, like no proper driver model, often poor multimedia support, lack of applications for certain tasks, a general fear towards the new... Have you ever installed a distro like ubuntu? It installs just what you need, the developers made a good work in selecting the apps that work best for every task they immagine you could want to do with the OS... the problem is not as much that there are too many apps... the problem is that there are far too many distros. 400 or more... that's just too much... and moreover there's too many fighting for the lead... linux needs some standards, something to give people the feeling of stability.
but who knows... maybe the world needs a geek-only os... is it so bad? don't they have a right to have their own OS? Mac for the creatives, Linux for the technically savy, and windows... well... for those who just want to browse the web...

Richard said...

I probably should have made it clearer that I was trying to discuss open source software in general, as opposed to just GNU/Linux. A range of widely adopted open source 'killer apps', ported to all popular OS's is what we need for it to take off. Give us that, and we'll have some quality product to run on Linux.

The geeks can have their Linux desktops, but it would be nice if there were an open source equivalent to most mainstream Windows apps to boost open source beyond it's current profile.

segedunum said...

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.

You haven't looked far enough. It's called Kolab, Kontact in KDE provides a good client and there is a plug-in that can be purchased that will allow Outlook to talk to it.

The problem with many people is they sit back in their Windows world expecting things to just come on a plate. Granted, the open source world has to do better but the open source world needs to stop going down blind alleys, such as that of Exchange compatibility.

Nada said...

Well, we're sort of covering a number of things here, but in general, whenever I try to do something new in Linux, I'm faced with the problem of trying to figure out which tool does it, and then, trying each of the 26 beta-quality tools available (each based on a different toolkit, of course). Sometimes, I search online, and realize I already have some of the apps installed ("so that's what those do!"). After I've tried them all, I try to determine which has the best features/reliability, and uninstall the others. To this end more-meaningful app names, better help files, and a rating system, like that found on, would be good.

So, yes, it would be nice if developers chose to work together, instead of creating zillions of versions of the same thing, but it would also be nice if it were easier for the user what tool is best for the job.

Hannes Pasqualini said...

by saying let the geeks have their own platform I was not so serious... I use linux for a lot of things and I must say I'm pretty happy it exists, since Windows is not a good solution for most tasks and the Mac worls is just too hip and stylish for a hip-design-hater like me.
anyway I think you're pretty right! the OSS world need to focus on less but better solutions.
I think the distro-chaos is a good example. 400 distros are not needed, I think 30 would be probably enough. apart from the server distros, we need a mainstream desktop solution for the enterprises (like novell), one for the multimedia oriented home user (like ubuntu... but with some codecs and ipod support out of the box), and then maybe some specialized ones like a distro for making music (like studio to go) one for graphic arts, one for programming and so on... distros that come with all the tools you will need already there, ready to use... and of course a distro for old comps like DSL or Puppy... once we have a distro for every task that's it... people should focus on those and not start a new project every time they think they know better...
the same for applications. of course ther should not be just one apllication for every task, it's always good to have a full blown and a light-and-fast solution... but in fact if Banshee, Rithmbox and Quod Libet joined together we'd finally have a Gnome media player that can rival itunes.

Richard said...

Kolab runs on Linux, as do it's clients. To replace Outlook, it needs to run on Windows. I could never understand why the world was so obsessed with Outlook, and why a calendard app had to basically be it before being considered as an alternative. Sadly, that's the path the masses have chosen so we have to provide for it, or sit back and watch Outlook continue to dominate.

The only hope I found for Windows users was an extension for Thunderbird that talks to Kolab. Currently, it's at version 0.20 and still very immature.

Olexandr Melnyk said...

Well, as hannes pasqualini said, you've got a point.

I think, that freedom of choice is good and we should try to keep it present, as there are different ways of accomplishing the same tasks - some people prefer one way, and some prefer the other.

The confusion appears when there are a lot of applications, that have the same goals behind them, the same target audience and the same design concepts. In such cases concentration on a single application would accelerate the development process and make the product better.

One of the reasons behind many tools doing the same task in the open source world is that many projects were started as research, or educational ones, when the developer wanted to become more familiar with a certain technology, or technique. And when the developer feels, that (s)he have learnt, what (s)he wanted to learn, project development is often stopped.

I do not think that reinveting the wheel is bad, in case a person decides to start a project for academical reasons; but when project is being developed for some wider audience, the developer should first have a look at the available solutions (if any).

Richard said...

You know, it's so good to hear from all of you in such a civilised manner. I set this blog up because my last hang-out on the internet turned nasty. It's so refreshing to come home from work and read comments that make sense and are written politely.


Gideon de Swardt said...

I agree 100%. I blogged about this last year May. Here is a link to the blog

Max Howell said...

Open Source is like capitalism. You can argue capitalism isn't that great; nobody cares about the environment, workers are there to be exploited, the top 5% are very rich while everyone else is relatively poor.

But capitalism is the dominant economic method in this world because it works.

Open Source gives you a lot of fragmented efforts, many of which don't succeed, many of which seem like wasted resources. But it's successful because it works, you can't change it.