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.
hingo Wed, 2006-08-30 19:21


Not so many months after the English translation of Open Life was published, Sun finally announced that their next version of Java will be released with the GPL license. (The same license that Richard Stallman wrote and that is used for Linux among others.) This event definitively was a major milestone in the history of Open Source, comparable to the freeing of Netscape in 1998. Java had become the "most wanted" technology there was still left to free, possibly the only thing that could compete in importance to this would be the Open Sourcing of Microsoft Windows itself :-)

Sun had already previously released its operating system Sun Solaris under an Open Source license. But since the Open Source community already has Linux, that was only met with lukewarm appraisal. It was like Sun did the right thing, but Solaris was not that significant to the Open Source community after all. Not so with Java, there is a large stack of Open Source software written in Java, and now it doesn't have to depend on a proprietary foundation anymore.

Remembering that Sun also acquired and open sourced OpenOffice (presented later in the book) and their past contributions to projects like the X Window System now makes Sun the most generous contributor to the pool of Open Source software. Not a bad title to hold. (Calling them the "most important Open Source company" still doesn't feel right, but who knows, maybe they will compete for that title in the near future too?) Actually Sun has been claiming that title for some years already, but holding back Java always eclipsed all previous donations.

To top it all, Sun is also talking about opening up their hardware, including specs for the SPARC processors. Sun is definitely a hot company to follow at the moment. has coverage and links of this remarkable day.

I'm watching as I write: a video of Richard Stallman commending Sun, saying they are showing leadership by choosing the GPL, and that he hopes others will follow their lead. At this point, as he points out, Sun is now the leader in donating software code to the community. Truly, the world seems to be turning upside down.

I'd really like to know how Stallman himself feels now. After all, Sun is one of the old Unix companies, the very ones against which Stallman launched his GNU project. Now Sun has joined his side and Open Sourced all of their essential software: Unix Operating System, Java, Open Office. In a way, you could say that Stallman has more or less accomplished what he set out to do in 1984. It must be a great feeling.

Also Jon Corbet of Linux Weekly News reported on the event in the warm and entertaining style only he is capable of.