The closing day keynote for this year's JavaOne Conference featured a panel discussion on "The Big Question ..." moderated by Tim O'Reilly, founder and President of O'Reilly Media. O'Reilly began this conversation on open sourcing Java by trying to measure the intersection between the Java and open source communities. Not many people in the audience raised their hands in answer to the question, "How many of you are currently hacking on some open source Java project?"
For the next 45 minutes, the panelists held a public discussion about what it would mean to open source Java. Panelists included Sun Microsystems' James Gosling, the father of Java, and Rob Gingell, vice president and chief engineer. Brian Behlendorf, CTO of CollabNet, also brought his perspective as an Apache Software Foundation board member. Larry Lessig is at Stanford University and also represented the Electronic Frontier Foundation, Creative Commons, and the Public Library of Science. IBM fellow Rod Smith had written an open letter to Sun in February urging them to open source Java. James Governor, principal analyst and founder of RedMonk and Justin Shaffer, director of operations for MLB Advanced Media, rounded out the panel.
Compatibility as a Core Value
Rod Smith was asked what he was hoping for with the open letter to Sun he published in February. He explained that we want to see innovation happen at a more rapid place and that as we look forward, he would like to see an open source Java married more with the open source technologies that Brian and others are working on.
"Java is about compatibility," Smith emphasized. "Thinking about the parts of Java that we would recommend open sourcing, J2SE is very stable. People expect compatibility. You can open source it as well as the TCK (Technology Compatibility Kits) around it." He added that there are open source terms that can be put on a project that require them to be forthcoming about compatibility or risk the revocation of their license.
Rob Gingell said that the current discussion is "a continuation of a journey we've been on for 10 years. Originally, it was Sun and Sun only contributing. Now we have a variety of communities contributing." He said that moving forward, "We're cautious, because of the fundamental promise that Java programs will not be lied to by things claiming to be Java."
"Compatibility and open source are not at opposite ends," added Brian Behlendorf. He argued that they are very symbiotic and that often, compatibility is an issue of trademark. He echoed Smith's point that it is acceptable to create derivative works that don't implement the entire specification, provided that these works are labelled as not compatible. Rob Gingell replied that he agrees that "open development and compatibility are not in conflict." He clarified that his earlier point was that "Java programs, not Java programmers, won't be lied to." You can not have
System.checkWithAttorney because code doesn't read trademarks.
Trust and the Market
O'Reilly suggested that the market could ensure compatible systems, asking that "if somebody delivers systems that don't work, is that good business?" Lessig quickly replied, "yes," and Gosling pointed out that "we do have one instance of that." Lessig followed by pointing out that in the presence of people and organizations who do not want to see compatibility work, we need the structure of a market.
Behlendorf said that this is one area that open source is well suited to address. "Defects in programs and defects in compatibility are seen as bugs to be fixed ... it shifts the onus from lawyers to developers." Justin Shaffer asked, "What are you trying to accomplish by open sourcing Java? There are many open source projects on top of the platform. Why take something that's working well and put it at risk?"
O'Reilly stepped out of his role as moderator to suggest that "there is an elephant in the room not sitting here. On Linux, the Mono project is implementing .NET. Microsoft has their own network programming paradigm." He said that we are heading to another platform war and that although the Java community is well ahead, that we should not count Microsoft out. He asked how we get the Linux community to choose Java. Gosling responded that "Java is heavily used in the Linux community."
Taking Steps in the Right Direction
Gosling pointed out instances of openness with the Java platform. The bug database is public, and you can go to java.sun.com and find the full source code of J2SE. Lessig said that these are steps that Sun has already taken. There are some that can ask "is that enough?" Lessig said that we need a system where we don't have to trust that Sun will continue to behave in the best interest of the community.
Gosling returned to the issue of compatibility, saying, "We lived through the UNIX wars. I love Linux to bits, but they have the same problem all over again. There are these different distributions that are really close. They almost work together." But Behlendorf added that the same is true when deploying enterprise applications to different application servers on different JVMs.
Gingell said that one of the steps in the right direction is that Sun is trying to make it easier for people who want to help to be able to do so. O'Reilly asked whether the issue is really Sun, or more a matter of perception? In the Linux world, he pointed out, Linus won't even take email from people he doesn't know.
"Who can't love a penguin," Gingell laughed. More seriously, he said that Sun needs to understand what people mean when they ask Sun to open source Java. He wants to make sure he understands what is being requested so that Sun meets the needs of the community. He said that he is still trying to figure out the question for which open sourcing Java is the answer. Behlendorf clarified that nobody is asking Sun to give away its intellectual property. "People mainly mean, allow the license on the specification to allow for open source implementations of the specification."
Behlendorf said that looking forward, he would like to see more willingness on the part of the JCP (Java Community Process) to allow true open source implementations of individual pieces of what is considered core to the Java platform. Gosling said that "mostly what I want to ask is that people participate. Go to JCP.org and get involved."
No one expected the issues surrounding open sourcing Java to be resolved in less than an hour. The panelists helped lay out many of the challenges that must be addressed: deciding what to open source, how to do so, and how to indicate incompatible implementations. The thousands of paid attendees in the audience reacted positively to panelists who urged caution in proceeding. But, as Tim O'Reilly noted, many of those interested in open sourcing Java were not in the room. There is hope that as the discussion continues, interested parties on both sides will be in the room.
Editors' Note: The Big Questionforum has been set up on java.net to host many of the threads we expect will be part of this discussion. Feel free to participate in a discussion or to suggest a new topic.