Two weeks ago, Tim O'Reilly asked me whether I thought Sun ought to release a "free" (I guess the currently fashionable term is "open source") version of Java, like Netscape is doing with their browser. I told him that the idea was interesting, but Java was probably better off in Sun's control. After all, Microsoft is actively pushing a dumbed-down pseudo-Java in order to split the developer community; this is a threat that Larry Wall and the Perl folks, or Linus Torvalds and the Linux developers, don't have to worry about. At least, not yet. Furthermore, it's important for the Java platform to be used commercially, and too many important commercial users are scared to death of free software. As far as I can tell, the reasons for their fear are completely irrational, but you can't control other people's fears. So I told Tim that, for the time being, Java was best off under Sun's control. And Sun has made their development process incredibly open: they actually do listen to comments from Java developers; they actually take suggestions and fold them into their APIs.
However, that doesn't mean that free implementations of the Java platform are unimportant. Fortunately, there's a lot of exciting work going on. Kaffe has been around for some time; it currently supports Java 1.1.3. A newer arrival is Japhar, a free independent implementation of the Java VM created by The Hungry Programmers. Japhar currently supports Java 1.1.5 on Linux, FreeBSD, and other systems, and promises to be a major contributor to the Java scene.
Why is a free implementation so crucial to the success of Java?
- First and foremost, there's LINUX and FreeBSD. As one LINUX
developer somewhat smugly put it, LINUX is the only UNIX-like
operating system that's gaining market share. That's certainly an
exaggeration that FreeBSD enthusiasts will take exception to, but the
overall point is certainly correct: free UNIX implementations are
rapidly growing in popularity. Even more important, the LINUX and
FreeBSD communities have a wealth of talented developers. LINUX is
the operating system of choice for many of O'Reilly's Java authors.
And both LINUX and FreeBSD are making inroads as commercial servers.
Sun could do nothing better than get the free software community to
line up behind the Java standard. That won't happen without good free
("open source") implementations of the Java platform. Sun has already
gone further than most commercial vendors by releasing the source code
for most of the Java packages. But LINUX and FreeBSD developers won't
unite behind the Java platform en masse without good implementations
for their operating systems, preferably with open source.
- The free software community supports standards. While they won't
march in lock step to JavaSoft's beat, you don't have to worry that
LINUX developers will decide they need to be compliant with
Microsoft's pseudo-Java. The idea that the Japhar developers would
say "Let's not implement RMI; after all, Microsoft gave us DCOM, and
we'd rather implement that" is just ludicrous. If nothing else,
they'd end up with a very expensive lawsuit. The more good
implementations of the Java platform exist, the harder it will be for
Microsoft to push a non-compliant implementation.
- JavaSoft has not been easy for small software developers to deal
with. I don't know whether they have bigger fish to fry, and would
rather be sipping white wine with Sony executives, or what, but the
biggest problem with Java right now is that it's not easy for small
developers to get a license. But ultimately, the success of Java
depends more on its adoption by 10,000 small software companies than
on a few dozen megaliths. A free implementation of the Java platform
eliminates the problem of dealing with JavaSoft, and facilitates
Java's adoption by a broad range of developers: you can license Sun's
implementation if you think you need to, or you can work from a
competing free implementation. Kaffe claims to support two dozen
platforms, including exotica like the Amiga.
Free implementations of the Java platform give Sun the best of both worlds. They don't have to let go of the reins, but they can let packages like Japhar and Kaffe spread the Java platform to developers who can't afford a JavaSoft license, the many talented developers who want to work on LINUX or FreeBSD, and others. Sun does not have to do everything itself. If Scott McNealy, Alan Baratz, Jonathan Schwartz, and others in the Sun hierarchy understand the importance of free software and what it adds to the Java picture, they'll do everything they can to encourage the development of free Java implementations. Short term, they may lose a few customers to free competing implementations, but the stakes are much higher. As long as the Java pie keeps growing, Sun is sure to get its share.