Standing in the Field @ Valley Forge

Standing in the Field

Notes from SJS Application Server Field Engineering

« Disappointment | Main | Apple WWDC round up »
Thursday July 01, 2004
The Big Open Source Java Free-For-All

So I just got out of the keynote session where they had the big "let's get ready to rumble" panel discussion about "open sourcing" Java. They had Brian Behlendorf (Collab.net), Justin Shaffer (sp?) CTO of MLB.com, James Governor (RedMonk analyst), Gosling, Rob Gingell (of the JCP), Rod Smith (author of the now infamous open letter), and Lawrence Lessig. The panel was moderated by Tim O'Reilly. I think the panel went very well.

The debate focused around several major points:

Several of the panelists were trying to assert that compatability would take care of itself or that compatibility could be handled via branding issues (i.e. sue people who claim to be compatible but are not). Luckily, the Microsoft incompatible JVM issue was brought up. But I don't think it was stressed enough. Despite what some on the panel where saying, there are unquestionably people who would like to ship versions of Java that are not compatible. And it's not just people who are being malicious. Can you imagine a mobile phone vendor who wanted to save some space and shipped a stripped down version of Java? What happens to the software vendor who find that he has to create 10 versions of his app: one for every different stripped down version of Java.

And there was another big counterexample that no one mentioned, maybe because it is too controversial. That counterexample is JBoss. JBoss makes an application server that is mostly J2EE compatible. JBoss has some known incompatibilities with J2EE, but for a lot of applications it will work fine. Now Marc Fleury, the founder of JBoss, has openly stated that he feels that the J2EE certification process is a waste of his time. Fleury promises to be certified sometime soon, but there is still no J2EE compatible version of JBoss. Fleury is getting away with this because JBoss was one of the first decent no-cost application servers. (JBoss makes its money by charging money for documentation, support, and consulting.)

But can you imagine what would happen if there were a dozen "mostly compatible" versions of J2EE? You don't have to imagine, we've seen this happen dozens of times before in the technology industry. Remember all of the "mostly compatible" UNIXes. And mostly compatible Linux distributions? And mostly compatible COBRA ORBs? And mostly compatible versions of C/C++? The fact is that the market isn't a very efficient force to enforce standardization and compatibility. There are lots of reasons for vendors to ship non standard versions.

Lessig tried to use the example of Apache HTTP server as a standard that was self enforced by the marketplace. But if you know a lot about HTTPS, you'll know that IE is "mostly compatible". But because IE is so popular, every major web server out needs special code that deals with this incompatibility. There are also some issues with gzip content encoding that are broken in IE that every major web server out there has special code to deal with. And while we are talking about web servers, we might as well talk about all of the "mostly compatible" HTML browsers. HTML is supposed to be a self-enforcing standard. But there are lots of web sites out there that only work on IE on Windows. If browsers had to pass a W3C compatibility test before shipping, we would be much better off.

Bottom line: the JCP has been incredibly successful in balancing compatability with openness. I use the same Java bytecode on my Mac that I do on my Linux and Solaris boxen. It is a real danger to do something to Java that endangered this compatibility. The audience agreed with this, there was a lot of applause in support of the Sun's insistence on compatibility first. MLB's CEO also agreed with this, he wanted to think of his customers first and didn't want to have to worry about dealing with Java incompatibility.

Another side note is that despite Lessig's insistence otherwise, lawyers are also a really bad mechanism for enforcing compatibility. Over five years have passed since Microsoft shipped an incompatible JVM, and we are still being forced to deal with the repurcussions. And the SCO case will be dragging on for years, even though they have virtually no evidence to back their claim. The law seems to eventually reach the right conclusions, but it works much too slowly to be effective.

Tim O'Reilly was a very insightful moderator. And I think he hit the nail on the head when he pointed out that the voice for "open sourcing" Java isn't coming from the developers. The people asking for Sun to open source Java are the people who covet Sun's intellectual property. Namely BEA and IBM who want to exert more of the their corporate control over Java.

Developers just want the process to open. They want an open bug system where they can contribute their own patches. They want frequent builds so they can do testing and integration. They want to be able to extend the Java platform to address their own needs. And I'm really proud of what Sun has done in each of these categories. Gingell admitted on the panel that there are lot of things that can be fixed or made better. And Sun would like to hear about them. I was talking with Graham Hamilton on Saturday and he is very focused how to make the J2SE development process more transparent. But the system isn't broken. There are dozens of companies leading JSRs. There are hundreds of Java licencees. Sun has been remarkably "open" with Java. I don't see IBM open sourcing Web Sphere. Or DB2. Or Tivoli. Where is the DB2 Community Process? As Scott said at his keynote yesterday, where is the outrage? Why pick on Java, the most open platform in history?

Maybe I'm too close to this issue to be objective, but it appeared to me that everyone on that panel was focused on making Java a better platform except for the IBM guy. Who really seemed to be focused just on what he can take from Java, rather than what he can give to Java.

Thanks to Gio for his blow by blow notes of the panel which helped jog my memory about some of the details and names. (2004-07-01 11:26:47.0) Permalink Comments [2]


Comments:

Yes, you are too close to be objective. It is difficult to talk about this topic without passion getting in the way. Just keep in mind that the current JVMs out there aren't all that compatible. And developers have their hands tied because Java is closed. Since your brought up Jboss as an example of a bad compatibility, you should watch over the next year as Jboss becomes a footnote when the TRUE open source J2EE project is released... Geronimo.

Posted by Anonymous on July 01, 2004 at 02:25 PM PDT #

I'm not sure that I know what you mean about JVMs not being that compatible. If you mean JVM versions not being that compatible, well that is true. But that is manageable and Sun is trying to make it better. If you mean JVM implementations not being that compatible, I'd disagree. I agree with you about Geronimo. It will be nice to have a real open source and compatible J2EE server. My big problem with JBoss is that it tries to position itself as an open source J2EE server. But its not a certified J2EE server. And it doesn't operate in the spirit of an open source project, even if it is technically open source.

Posted by David Ogren on July 01, 2004 at 03:48 PM PDT #

Post a Comment:

Comments are closed for this entry.