Don't be too greedy (Java, Ghostscript)Don't be too greedy (Java, Ghostscript)
One of the lessons learned from Corel's Linux adventure was that the Linux community shunned CorelDraw and WordPerfect because they were closed programs. Linux users had understood and through their own experience seen the benefits of Open Source, and were no longer interested in closed software, whether or not there was a Linux version available. Why go back to the bad old ways when you've just freed yourself of them?
Open Source has posed a new challenge for companies - still the vast majority - that still make and sell closed programs. It is always only a matter of time before a popular closed program will have to compete with an open program. And since closed programs usually can't compete, at least not in price, with any corresponding Open Source software, the advent of an equally good Open Source alternative usually heralds serious discomfort for the makers of the closed program. For instance, the spread of OpenOffice has already set off the beginning of the end for the overly long dominance of Microsoft Office. It's only a matter of time before the computer giants Oracle, IBM and Microsoft will really have to fight to keep their software in corporate server rooms, rather than the evolving MySQL and PostgreSQL - the Open Source databases which already store most of the Internet's web pages. There are also instances where there was never a race to begin with. For example, from day one, the open Apache web server has had more than 50 per cent of the web server market - the closed web servers were never more than a curiosity.
All this begs the question of how long a manufacturer of closed software can expect to be able to sell his product before the creation of a similar Open Source program comes along. Some rules of thumb can be applied to finding the answer.
Obviously, the simpler a program is, the easier it is to create a competitor - either closed or open. In his essay "The Cathedral and the Bazaar' Eric Raymond offers another seemingly self-evident rule: the more popular a program, the more likely it is that there will be an Open Source version of it. And that seems a reasonable principle to go by. The number of users, or clients, traditionally increases competition and brings down prices. This should also hold true when it comes to the creative processes of Open Source software. The more users, the greater the benefit from an Open Source program and the easier it is to find the motivation to write (or have someone else write) the necessary code.
Another interesting rule might be: too much greed quickly turns on itself. For instance, the existence of OpenOffice partly accords with Eric Raymond's rule - after all, there is a vast user base for office programs. But the development of OpenOffice has also been speeded up by the fact that Microsoft, with its virtual monopoly on the market, has hiked the price of its Office package so high that it's becoming unreasonable for private individuals and even small companies to pay so much for basic word processing. This created a crying need for an alternative office program.
Java, the programming language born in the Sun laboratory in the early nineties, has a history which again exemplifies the greed theory. Its strength was considered to be the platform independent "virtual machine model', which allowed the same Java program to run on Windows, on Unix, or on any other operating system that supports Java. This feature came just as it was needed, around 1995, when use of the Internet and the World Wide Web began growing exponentially. Just as html pages could be read by any computer, Java applets (very small applications) could be used on any computer.
Although the use of applets fizzled out after the first flurry of excitement, Java slowly gained ground and is now the most popular programming language in the world.1 Its platform independence must have played a part in that, but it was largely due to the clarity of the language's object programming interface, its simplicity and a certain academic beauty, that Java is used in all universities today.
Naturally, the Java language has also been used to realize a number of Open Source programs. In particular, the Apache Foundation has done well with several applications in the Java world, and they are also used by commercial Java companies. Even so, Java itself - the Java compiler which turns written source code into a computer program and the Java virtual machine that is needed to run the program - does not yet exist in a respectable Open Source version.
In the early days of Java, an Open Source project called Kaffe tried to come up with some competition for Java. Kaffe was always running a little behind Sun's official Java, but often enough was workable. Today, however, Kaffe is lagging far behind the rest of the Java world. In many instances, it's still usable, but it doesn't yet support the Java 2 standard, published five years ago.
Kaffe is just a virtual machine, not a compiler. IBM, on the other hand, has a fairly good Open Source Java compiler called Jikes. Unlike Kaffe, Jikes has kept up with the development of Java quite well. But again, Jikes is only a compiler - it can't run programs. IBM is also working on a Jikes virtual machine but as yet it doesn't quite meet all the requirements, although it can already run some isolated Java 2 applications.
In latter years, the Free Software Foundation has also stuck its spoon in the Java soup, working to create Java support for its venerable GCC (GNU Compiler Collection) compiler, which already supports nearly all other programming languages. This GCJ (GNU Compiler for Java) project is pretty much on the same level as the Jikes virtual machine - nearly, but as yet not quite in working order.
With Java, too, it's only a matter of time before Open Source alternatives replace Sun's official Java. Java may face the same fate as programming languages C- and C++, whereas the Free Software Foundation's GCC has long been the standard to which the closed alternatives of commercial players are compared.
However, Sun has managed to buck this trend for nearly ten years. Considering how popular a language Java is among the Open Source crowd, that's no mean feat. You'd have thought the hackers would have created an alternative that fits their ideology far sooner.
In part, the long time span has been due to the difficulty of the task. Writing a programming language compiler is among the most challenging jobs in the field, comparable for instance with writing the Linux kernel or the GCC (which is in fact a compiler). I read somewhere that a professor at the Helsinki University of Technology said that less than one per cent of all the programmers in the world could even attempt such a task at that level. Another problem with replacing Sun's Java is that the compiler also needs to be a virtual machine, and that's another job that is at least as demanding.
Another factor which is bound to have slowed down the creation of an Open Source alternative is that during all these years, Sun has distributed its own Java for free. Java has never been Open Source, but it has always been available for anybody to use for nothing.
This fact reveals an interesting side to the hacker community. Among the hackers there are idealists like Richard Stallman, people who absolutely refuse to use any closed software, but it seems not all hackers are so wholly idealistic. Most of them seem to feel its OK to use some closed software provided a program is cheap enough - or preferably free.
Sun's Java strategy has been aptly criticized for combining the bad sides of both closed and open software. On the one hand, Java develops slowly and suffers from quality problems due to the closed model of development; on the other hand, spreading Java for free hardly benefits Sun financially. Nonetheless, Sun's strategy has also, by chance, been very successful. If Sun had taken Java down the Microsoft route and milked it for huge profits, almost overnight they would have had competition - both closed and open. Instead, Sun has managed to maintain a reasonable balance between openness and greed, which is why it has enjoyed such a long period of popularity. Even so, it won't be long before Jikes or GCJ catch up with it. By the time you're reading this, it may already have happened.
Artifex Software uses a similar strategy to Sun, but whereas Sun's tactics were probably born out of a series of coincidences, Artifex uses them very consciously in the distribution of its popular software Ghostscript. This program is used to view, create, handle and print out PostScript and PDF files, and is particularly popular in the Unix world and Open Source community. Ghostscript has long been the only strong competition for Adobe's PS and PDF products.2
The two versions of Ghostscript first saw the light of day at the University of Wisconsin: the almost open AFPL Ghostscript and the completely free GPL Ghostscript. AFPL Ghostscript can be downloaded free from the Web, but cannot then be sold on commercially. For commercial purposes, Artifex sells licensed versions of Ghostscript separately and gives the printer and copier maker Xerox as its reference customer. Although AFPL Ghostscript is free, Artifex also distributes a separate GPL version of Ghostscript, which fulfills even the strictest Open Source terms. Each GPL Ghostscript always corresponds to the previous, roughly one-year-old AFPL Ghostscript, which means clients who have paid for the commercial licence always get a bit more than they would get using the older GPL version. By distributing Ghostscript for free and making the older version 100 per cent Open Source, Artifex ensures that not even the toughest Free Software ideologue will be motivated to challenge Ghostscript.
Verdict: In this section we've looked at how various companies selling closed software handle the pressure from Open Source programs. Summing it up, companies clearly operate at various degrees of mean-spiritedness. Most supporters of the Open Source community are willing to accept a fair compromise and will use closed software if it's easily available and cheap - at least, it seems nobody is driven to challenge such software. However, it's evident that too much mean-spirited business practice can be self-defeating. So, don't be too greedy!
- 1Most popular, that is, when a project begins from scratch and the programmer is completely free to choose the language.
- 2Adobe has created both the PostScript and PDF standards. Both technologies can be used for electronic distribution of text documents, etc., although PS is actually a printer control language, whereas PDF has become the standard for distribution of paper files in electronic form - for instance, on the Internet.