Listen Print
Date: Jan 5 2000
From: Bernd Kreimeier
To: ask_tim@oreilly.com
Subject: Java 2 Books and Free Software

Tim:

The quote and URL below is an example of Sun's publicly expressed stance that copyright on published specifications makes illegal all attempts of an independent implementation of the specified API.

This legal strategy, should it prevail, or at least partially survive, in court, will touch the very core of our ability to create free software.

As a significant share of the publication of the Java 2 specification is handled by O'Reilly, I would be curious about your opinion on this issue. If I bought a Java 2 book from O'Reilly, will this prevent me from contributing to Kaffe, Japhar, or Classpath? Do these books contain a shrink-wrap license or equivalent claim that, by my very purchase and reading, I waive my right and ability to create my own Java 2 implementation? Do you consider such claims, if any, valid?

Bernd

"...it is very difficult, close to if not, in fact, impossible, to build an implementation of the Java platform without at least looking at the documentation or its specifications," said Alan Baratz, president of software products and platforms at Sun. "Well, that's Sun intellectual property. And the judge has been very clear about that, that if Microsoft uses the specs or uses the documentation, it is not an independent work," Baratz continued.

"Or if Microsoft purchases something from a third party that had used the documentation or the specs, it's not an independent work."

Click here for the full article.


Bernd,

This is a tough one. First off, let me say that there is nothing in any O'Reilly book that suggests that you can't use the information contained therein to do whatever programming you like, including using the information about the interfaces to create a Java clone. We have never included such a "shrinkwrap license" nor has Sun ever asked us (or any other publisher) to include one.

I suppose that if Sun had originally published the Java specifications with such a license, it might be enforceable, but given that they published the specifications without any such limitations, I believe that Sun's position is over-reaching. I'm not a lawyer, and I have no knowledge of the legal merit of their claim, but it seems to me that once something is published, to subsequently impose conditions on how that information is used is bound to be unenforceable.

However, from the very first, Sun *has* published Java under a license that requires compatibility with Sun's specifications. That, I do believe is an enforceable condition. So my completely unqualified "legal" opinion is that it should be possible to clone Java based on the specs, but that any such clone should be compatible with those specs, and should neither "embrace and extend" them nor subtract from them.

I'm all for an open-source re-implementation of Java, and frankly, I don't think that Sun would mind one all that much either. Their real objection is that they feel that the fundamental goal of Java, namely ubiquitous platform-independent computing, is actively being subverted by Microsoft, whom Sun refers to as the "top predator" in the computer industry ecosystem. Sun's position seems counter-productive when taken out of context, but I'm not sure that they don't have to use every weapon at their disposal to try to keep Java's vision alive. I don't buy this whole legal argument, but I understand why Sun is trying it on for size.

I've been struggling with this whole area. When Sun decided not to cooperate with ECMA in standardizing Java, the head of the ECMA committee approached me to ask whether O'Reilly would contribute some of our books as a basis for an independent ECMA standard. I gave it some thought, since I'm all for open standards, but ended up deciding to pass for several reasons: first, ECMA wanted to take over copyright of any materials they used, which was not something I wanted to give them, and second, this was the second such request I'd received. The first had been some months earlier, when Microsoft had made the same request, only they wanted to standardize Java 1.1 rather than 1.2. That was curious. Why would someone want to "standardize" an older version of the language except to split the standard?

But the biggest reason is one that I've articulated many times in the open-source context: I am a big believer in the right of the creator of a work to set the terms under which it should be shared. Free software is a gift, not an expropriation. And proprietary software is exchanged via a transaction, whose terms are set by its creator, and accepted or rejected or negotiated by its users, but those terms can't simply be ignored because we wish they were different.

Sun created Java. We, the users, certainly should have a voice in what they do with it, but that voice should be expressed through the normal pressures of the marketplace, or through the open Java community process. If we want features in Java, we should engage with Sun, not try to wrest control of the language from them.

Eric Raymond talks about the difference between the rhetoric of open-source and the actual community practices in one of the essays in The Cathedral and the Bazaar. He points out that while we all talk about open-source software as being freely redistributable and freely modifiable, in fact, even the most promiscuously open of open-source projects have "owners" in at least a moral sense. The right to fork is fundamental, but in practice, gratuitous forks against the wishes of the original project creator or maintainer are frowned upon.

If this is true for GPLd or BSD-licensed software, why should it not be even more true for Java and other SCSL based software, which was released with tighter ownership restrictions? Just as some patches don't make it into the Linux kernel because Linus frowns on them, and some extensions never make it into the core of perl because they violate Larry's vision for the language, why shouldn't Sun be able to exert control over their creation? If someone doesn't like Java, they don't have to use it. That seems like a fairer playing field than saying "we like your ball so we're going to take it away from you."

All of this is even more true, to my mind, because with the Java Community Process, Sun has been extremely open to community input. The limitations that they've put on Java branding and on control of the Java language spec are not as ideal for letting the user community evolve the language as an open-source license, but they are certainly within the Sun's rights as creator of the language, and pragmatically, they may well be essential safeguards on the purity of the language. At the end of the day, Sun is walking a tightrope between making Java ubiquitous and in protecting it from those who would undermine its ubiquity by "standardizing" alternate versions of it.

I do wish that Sun would be more proactive in supporting well-intentioned open-source re-implementations of Java, but I imagine that they are facing a legal minefield where they can't pick and choose their defenses. Opening the door too wide lets the tiger into the village.

So in short, I am extremely skeptical of Sun's argument that it is illegal to clone Java by reading either their specifications or third party books like the O'Reilly documentation on Java, but I understand and support their reasons for making that argument. I would urge any developers who want to work on free implementations of Java to engage in constructive discussion with Sun, and to respect their "moral rights", just as you would with someone like Richard Stallman, or Linus Torvalds, or Larry Wall.

--Tim

Return to: Ask Tim Archive


Topics

International Sites

O'Reilly China O'Reilly Germany O'Reilly Japan O'Reilly Taiwan