O'Reilly    
 Published on O'Reilly (http://www.oreilly.com/)
 http://www.oreillynet.com/pub/a/oreilly/ask_tim/2000/freejava_0200.html
 See this if you're having trouble printing code examples


Date: Feb 4 2000
From: Bernd Kreimeier
To: ask_tim@oreilly.com
Subject: Response to "Java 2 Books and Free Software"

Editor's note: The following Q & A is a follow-up to a previous column about Java 2 books and open-source software.

Tim,

It is my understanding that Java 2 was published under a different license than Java 1. Conformance with Java 1 is not required for clean-room implementations, and that's why we have them. Only an explicit contract with Sun can enforce conformance for Java 1 (and they failed to accomplish that for Microsoft). Using the Java trademark is a different issue.

Thus malevolent as well as benevolent standardization has to restrict to Java 1.

I don't agree with "ends justify means" arguments in this context. Restricting the freedom of speech to going through an outside defined community process is not acceptable to me. Restricting the freedom of implementation to competitor approval is not acceptable to me.

There is no right to fork under the SCSL. I agree with the observation of "practical ownership" for successful implementations. I disagree with the notion of ownership of a standard or specification. I can create, e.g., an incompatible Linux kernel, distribute it, and compete for approval. I can fork to fail.

Compared to, e.g., the OpenGL ARB or the IETF RFC's, the SCSL is, in the words of Tim Wilkinson, "about as free as the former Soviet Union."

If Microsoft put the Win32 API's under an MCSL and prohibited clean-room implementations, would that put them in the same court [sic] as Sun? As Linus Torvalds? As Larry Wall? As Richard Stallman?

There is no "moral right" to own a standard, and this idea, if nothing else, is contrary to the right of clean-room implementations.

Standards evolve according to the needs of implementors and users. If Microsoft succeeded in "polluting" Java, that will only happen because a significant number of coders decided to use those features. Who is going to counter pollution of a standard with inferior solutions, if it originates at Sun?

Implementations of standards compete based on technical merit, conformance, and completeness--unless intellectual property is leveraged, conformance tests are withheld, specifications are incomplete.

I have seen a "constructive discussion with Sun" in the attempts to define Java OpenGL bindings. I have witnessed the corporate interests of Sun at work in shaping Java3D, and I saw how those interests outweighed the community's interest for Java GL bindings. There, Sun has hurt Java, has hurt some of their own goals, and has hurt the Java user community, by politicking in pursuit of imagined profit. It may be a singular case, but one case is enough to prove my point. I am confident there are more examples, though.

b.


Bernd, thanks a lot for the follow-up! You're absolutely right that the different licensing terms for Java 1 vs. Java 2 are sufficient to explain why folks would try to base a standard on Java 1.

However, I still have to disagree with the balance of your message. I certainly agree that the SCSL and the JCP are not, respectively, an open-source license or a true open-source process. But I don't agree with that as some kind of moral litmus test. There is a ton of software that's developed in the world that isn't open-source, and while we can wish that some or all of it were open-source, I don't share Richard Stallman's belief that to choose any other form of licensing is immoral.

Sun has the right to put out Java under any license they choose. You, as a developer, have the right to accept or reject that license. Rejecting it means choosing not to use the software. You can't embrace the software but reject the terms under which it is offered. Choosing not to use the software is what will make Sun decide it needs to change the license.

Similarly, you use the word "standard." Sun has opted not to go the standards route, and again, that's their choice. There is many a de-facto standard that has never been officially blessed, and plenty of resistance to the standards process in the open-source community as well as at Sun. You don't see Larry Wall rushing to have ECMA standardize Perl, do you, or Linus working to have ECMA standardize Linux? Frankly, the JCP is a lot closer to Open Source than any standards body besides the IETF, which the "official" standards bodies still look a little sideways at.

My main point is that, relative to proprietary software, the Java license and process is pretty good. You can look at the source code, which brings many benefits independent of the license. If use is noncommercial, you can incorporate it into your program free of charge. That brings other benefits. Sun has come a long way from proprietary software, and the size of the Java developer community is a testament to the effectiveness of their approach. We can say it would be even better if Sun went all the way to true Open Source and open standards, but I sure as heck prefer the Sun approach to the standard proprietary one, or frankly, even to a "standards-based" one.

I heard recently from the buyer at a large bookstore that sales of Java books had surpassed sales of Visual Basic as the single largest programming language category. That says that Sun is doing something right for their developers.

I do understand your point that Sun seems to want to play with a stacked deck, and you say you've seen specific cases where they've used their control not to achieve the best result for the Java community but for Sun's own interests. That's unfortunate. But it's not unique to Sun. It can happen in an open-source process as well (though with more checks and balances between large players.) I remember some great scenes at X Consortium meetings, where the representatives would be speaking for themselves, arguing on the basis of technical merit, and then suddenly switching to the corporate position. It was amazing theater. Suddenly, instead of an animated argument, "I feel that we should do..." was replaced by a stiffening of the posture, a formalization of the presentation, and we'd hear, "Digital feels..." or "IBM believes...." (In one case, I remember a developer saying, "my employer wants xxx, but damn it, you guys are right, and we should do yyy," but that only illustrated how in many cases, intracompany politics and jockeying for advantage was at work there at the heart of a process that produced a significant fraction of what we now think of as Linux.)

Speaking of Linux, isn't the backing that various large hardware vendors give to Linux a way of advantaging themselves versus others (especially Microsoft)?

All of that being said, though, while I'm standing up for Sun's right to do what they want with the software they've created, at bottom I agree with you that it would be absolutely terrific if they'd go Open Source with Java. It's a risk for them, sure, but it's a risk that could blow the whole game wide open. A free Java on a free OS would be killer, wouldn't it?

--Tim

Return to: Ask Tim Archive

Copyright © 2007 O'Reilly Media, Inc.