In the summer of 2003, someone wrote to the Open Source website Advogato to say he thought the market of Open Source software was too splintered and confusing. Counting only the text editors, it included over 100. Being someone who had just switched to Linux, this made him feel lost. It would have been easier, if people could have agreed on which editor to use, developed it to its peak, and taught everyone how to use it.
This suggestion wasn't particularly well received. Most responses to it just said that the writer must not yet be very well acquainted with Open Source. The 100 editors are a sign of the wealth in the Open Source world. Naturally, it is true that most of them may be somehow deficient and were born as an assignment for some computer science student. But why is that a problem? It's great that he too published his work for open use, even though I don't happen to use that particular editor.
And also, as simple a thing as editing clean text files may actually require very different tools. For instance, the vi editor was created in the seventies and must be one of the simplest and most clumsy tools ever seen in the computing world. Despite this, or actually precisely because of it, it is part of the Unix standard and will be found in all the Unix machines in the world, including all Linux computers. So, if you learn to use vi, you can rely on getting the job done. It works on all platforms, regardless of whether you use it over a remote connection on a "terminal' or in the graphical user interface (GUI) of a standard desktop PC. But in the latter case, you may want to use a more versatile editing tool, designed for a GUI environment. So you choose one of those. In fact, many of us choose the software we use based on personal likes and dislikes - such as colour. So, although it is an appealing idea to get rid of overlapping work by developing only one text editor, or a couple of editors at most, the problem would soon arise of how to choose which one should have the honour. Who gets to judge what taste other users should have?
This kind of splintering is also evident in another area. That is, the Linux universe currently has two windowing environments: KDE and GNOME.1 This occasionally gives rise to concern among Linux users. Even though the programs made for GNOME work in KDE and vice versa, they may look different and follow slightly different principles. In all fairness, this can seem very confusing for a novice. One could also ask whether it makes efficient use of the available resources. Could there be a better way of employing programmers than by spreading their effort over two competing projects?
However, despite all the problems I've mentioned, the Open Source community is unanimous in feeling that the diversity available in Linux - even though it is sometimes inefficient - is valuable. We must always return to the guiding principles of Open Source, as discussed earlier in this book. Programmers do whatever they like to do - what excites them. If someone wants to make GNOME software, who's to stop them? And who loses if someone makes GNOME programs, even when everyone else wants to use KDE programs? These principles inevitably lead to diversity, because the Open Source community is not Soviet Russia, where everybody must follow whatever five-year plan is currently in force.
There are also benefits to be gained when different projects compete with one another. The making of graphical user interfaces is a relatively young science, and nobody really knows which is the one and only right way of getting things done.2 Competing projects may come up with different solutions to the same problem, and not until later does it become clear which of them provided the wiser and smoother solution. Thus, the existence of two separate projects lessens the risk of the GUI world of Linux ending up in a technological cul-de-sac.
Competing projects are also genuinely useful to each other. Even though from the outset KDE has been more technically advanced, GNOME was originally considered a very artistic environment. By using different themes users could make their own environment look very different to that of their neighbours, in effect customizing the look of their computer to suit their own individual taste. Surprisingly, many people particularly like to have this feature in their computer. What wallpaper you use and the colour of your program can sometimes seem a lot more important than what is actually done on the computer. So, the KDE programmers have put a lot of effort into developing these features in their own project and today KDE is at least as colourful and artistic as GNOME. Similarly, in order to catch up with KDE, the GNOME developers have worked hard to improve the stability and technical qualities of their environment.
So, competition obviously benefits both parties. Luckily, the developers of KDE and GNOME understand this. Even though there's a lot of debate on the Internet about the various merits of KDE versus GNOME - and sometimes, in the spirit of the Advogato writer, someone suggests that one of the projects ought to be shut down in the name of simplicity - the people who engage in such debates are never the programmers involved in developing either KDE or GNOME. Firstly, they don't have the time to engage in futile Web debates, because they have better things to do. But more essentially, they don't see each other as rivals. Instead, they recognize competition as a form of collaboration, despite the rest of the world not always seeing it that way.
This leads us to a final question. How does the rest of the world view it?
Even though by definition the Western market economy requires free competition, in reality companies don't always see it as a good thing because competition tends to mean less money in their particular till. Therefore, it seems the smart thing to do is to get rid of the competition, by whatever means. Microsoft is a prime example of how financially rewarding this strategy can be - when it works, it is very lucrative. This leads to Western companies - who one would expect to believe in a free market economy, and who probably genuinely think they believe in that - in practice, doing all they can to prevent competition. If one believes in the validity of the Open Source way of working, then companies that try to crush competition are actually digging their own graves.
- 1A windowing environment is the part of a computer program that creates a so-called graphical user interface on the screen. Other programs are used within this environment, and are activated by pointing at them with one's mouse, etc. Its opposite is a terminal or command line interface, usually operated via a keyboard, where the letters on the screen are a light colour against a dark background, and only one program at a time is used.
- 2Even though Apple and Microsoft have made graphical user interfaces for more than a decade, this is a relatively short time and theirs are only two views on how to do it. Even the Windows user interface has developed and keeps developing - XP has recently moved to a new look and Microsoft has announced that it works with a project called Longhorn, which again will lead to new technologies and practices. In addition, the X windowing architecture used in a Unix-type OS that is different to that of Windows or Apple, so the Unix world cannot take everything from Windows, but in any case the developers of KDE and GNOME have to do a lot of genuine pioneering work.