Java standards body's growing pains reflect a community in transition The Java Community Process may be the most important organization in the world of Java software, with the possible exception of Sun Microsystems itself. In fact the JCP, which helps dictate the future of Java by developing new Java technology specifications and reference implementations, is hardly separate from Sun. The company sponsors the organization by paying the salaries of its staff, and exerts great influence over its inner workings.This is nothing new, of course. The JCP was founded by Sun Microsystems in 1998. Throughout the past decade the company has relinquished some control over the JCP, but critics say it’s not enough. Many in the Java community believe that Sun’s pursuit of its own commercial interests is incompatible with the goal of fostering a collaborative environment that seeks only to improve Java technology.Some have called for more fundamental changes to the governance of the JCP, or proposed that the JCP should be released from Sun altogether. Others say that Sun cannot afford to relinquish control of the Java standards body, and that the JCP needs more leadership from Sun, not less.Democratizing the JCP“There are two principal criticisms, one of which is that Sun has too much influence, and the other is that the organization is too secretive,” says Patrick Curran, chairman of the JCP.Although he is a Sun employee, Curran says he does his best to promote the interests of the community rather than Sun’s. He defends Sun’s prominent role in the JCP while acknowledging that he would like the group to be more “open, democratic, and egalitarian.” Going forward, Curran expects revisions to the JCP governance model that will add transparency and create a more level playing field. The reformerJCP Chair Patrick Curran recently spoke with JavaWorld about the JCP standards process, challenges facing the JCP, and how he believes they could be fixed: Listen to the podcast.Despite the criticisms, Sun executive Jeet Kaul says the JCP is among the better standards bodies he has participated in, particularly considering it involves companies in direct market competition with one another.“The only role we play is trying to make sure there is agreement and move things forward,” says Kaul, senior vice president of client software at Sun. “Compatibility is the hallmark of what we want. If you had 7,000 different versions of Java it would have no value in the market today. It would hurt the same people who are complaining.”Project HarmonyThe most well known JCP controversy is likely the one involving the Apache Software Foundation, which accuses Sun of refusing to grant it an acceptable license for its open source Java SE implementation called Harmony. According to Geir Magnusson, Apache’s representative to the JCP, the license Sun did offer would “limit the freedom users [of Apache Harmony] have to reuse the software, whether it’s to redistribute or to make a derivative work.” Magnusson is angry that Sun holds the power to license Java technology, saying that Apache should be able to do whatever it chooses as long as its implementation is compatible with JCP-approved specifications.But the current rules were agreed upon by the JCP executive committee members at large, not by Sun alone, Curran notes.Apache on February 23 cast the lone dissenting vote against the Java EE 6 specification, saying it was a protest against Sun’s stance on Java SE licensing. “We believe that members of the JCP that do not comply with the letter and spirit of the governing rules should not be allowed to lead JSRs,” Apache commented. Kaul accuses Apache of wanting an “unfettered license” in which anybody who uses Apache code “could do anything with Java they wanted.” At some point, such an approach will destroy Sun’s ability to make money, he says.Curran says the dispute may shed light on problems with the Java Specification Participation Agreement (JSPA), a legal document that each JCP member must enter into with Sun. “If there is enough ambiguity in the JSPA document such that expensive lawyers can disagree about its interpretation,” he says, “we need to fix that so it is clear and unambiguous and expresses what we want it to express.”Pushing for transparency and independenceWhen the JCP was formed, Curran says, “Sun was basically the leader of all the development efforts, all of the intellectual property accrued to Sun. The assumption was people would license technology from Sun.” Executive committee members, such as HP and IBM, thus “defined the governance model that says the IP rights accrue to the specification lead. They also decided that the specification lead gets to choose how they license the technologies they develop,” Curran says. Sun is the spec lead for only about one-third of active or recently completed Java Specification Requests (JSRs). But Sun holds major power because it is the spec lead for the three fundamental platforms of Java technology — Java Micro Edition (Java ME), Java Standard Edition (Java SE), and Java Enterprise Edition (Java EE). Given the time and effort the work of a spec lead requires, Curran says you could argue Sun’s dominant position within the JCP is justified.The JCP has become far more open over the years, as half of all JSRs are now being done as open source projects, and many are using open mailing lists, wikis, or blogs to bring more people into the process, Curran adds.“The days when people could sit in a closed room and have private discussion about new technology are over,” Curran says. “That’s not the right way to do it.” While Sun pays the salaries of JCP staff members, fees charged to JCP member organizations help offset that cost. At some point, the JCP might be completely independent of Sun, Curran says.“I think we’re probably moving in the direction of being an independent organization. But I think we’ve probably got a ways to go,” Curran says. Magnusson says he believes the JCP should be released from Sun, but notes that he is not actively pushing for this to happen. He says current proposals to open up the process don’t go far enough in “re-architecting the underlying legal, foundational structure of the JCP, which I think is the core problem.”Even within Sun, there are those who say it’s time to release the JCP. Tim Bray, the director of Web technologies at Sun, used his blog to urge his own company to “let [Java] go already” and “set the JCP free [and] turn it over to the community.” Differing views on leadershipWhile the process isn’t always smooth, Gartner analyst Mark Driver says it’s been beneficial to Java technology on the whole.“The big complaint obviously with the JCP is it’s a relatively bureaucratic process,” Driver says. “I personally think the JCP has done a very good job in streamlining the process It’s been good enough for the likes of IBM, SAP, Oracle and BEA, and many, many others.”Gavin King, a fellow at JBoss and the spec lead for JSR 299: Web Beans (recently renamed to Java Contexts and Dependency Injection), voices support for Sun and says the company has actually given up too much power over the Java platform. The JCP suffers from a “real crisis in leadership,” he says. “I think Sun has ceded too much control over the process,” King says. “Democracy is a horrible means of producing technology. You need leadership. You need someone with a vision of what the technology should look like.”When a group consists of people who all think their strategies are the best and have equal control over the process, nothing gets done, King argues. Even if the JCP were to favor Sun’s interests at the expense of others, at least the technology would be moving forward, King argues. A leader can accept feedback, but must ultimately make decisions on its own, he says.“The real danger is not that some people’s concerns will go unaddressed, but that no one’s concerns get addressed and the platform stagnates,” he says. But others say it is Sun’s dominant position that poses a threat to Java technology. OSGi and Project Jigsaw“The problem with the JCP is it is not an independent organization. JCP is a department within Sun,” says Peter Kriens, owner of the software consultancy aQute. “And if you sign a contract with the JCP you actually sign a contract with Sun. The intellectual property rules are very simple. Simplistically said, everything generated in the specification work is given to Sun.”Kriens is also director of technology for the OSGi Alliance, a 10-year-old consortium with members such as IBM, Red Hat, Nokia, Oracle, Sun, Hitachi, Samsung, and SAP. JSR 291, OSGi, is a dynamic module system for Java that is intended to ensure interoperability of applications and services. Kriens and others, such as the Eclipse Foundation, were upset with Sun when the company developed a competing modular Java specification, JSR 277.The Java modularity specsJeff Hanson compares JSR 277 and JSR 291 and explains how they differ in execution and philosophy in his feature article “The case for Java modularity.”Competition, in this case, is not a good thing for the Java technology, Kriens says. “This is one of the few areas where we really want to have a single specification, because as a community it means you can work together,” he says. “Sun is fragmenting the Java world.” Sun has put JSR 277 on hold, saying that creating a new module system was “not the right thing to do.” Kriens expressed optimism about JSR 294, a related proposal that covers the language aspect of modularity. But he remains worried about Sun putting the JSR 277 technology into the OpenJDK for Java 7, a possibility he compared to Microsoft defeating Netscape by embedding Internet Explorer into Windows.Checks, balances, and NDAsSacha Labourey, CTO of Red Hat’s JBoss division, urges fundamental changes stripping Sun of its influence over the JCP.“The JCP needs to be much more transparent. The JCP needs to have no master,” Labourey says. “Sun should not have any veto power” over the three core Java platforms. Labourey says the key platforms should be managed by committees of equals, without Sun or any other company being the specification lead.With Sun laying employees off because of financial problems, the company’s control limits progress in the technology, he says. Labourey says the JSPA had to be altered a few years ago to accommodate his company’s open source business model, but the process was contentious and lengthy.“The JCP has first and foremost existed to accommodate Sun,” Labourey says. “Every time we were facing an issue, the problem was not to solve the issue but to solve the issue in a way that accommodates Sun’s business model.” He also criticizes rules preventing executive committee members from discussing internal discussions publicly. “I won’t be able to tell you what’s being discussed in the JCP [executive committee] because we are forced into a nondisclosure agreement,” Labourey says. “It’s very opaque.”Kaul agrees executive committee discussions should be public, while noting that such a change would need approval from the committee at large, which includes representatives from Apache, the Eclipse Foundation, Red Hat, SAP, Oracle, SpringSource, IBM, HP, Google, Motorola, Nokia, Samsung, and numerous others. The committee did agree in September to start posting full minutes and meeting materials online, rather than just summaries.Kaul objects to people saying Sun is in absolute control of the JCP. “There are some clauses that give Sun slightly more options than it gives anybody else,” Kaul says, “but there are also checks and balances so if Sun crosses a line somewhere the rest of the members have the ability to stop Sun in its tracks.”In individual JSR expert groups, the specification leads are given leeway both in how they communicate to the public and whether their end product will be open source. While maybe half of new JSRs are open source, there is no consensus yet on whether the organization should mandate open source across the board and in that case what type of open source license should be used, Curran says. One thing Sun and other JCP members seem to agree on is that Java would benefit from more input by rank-and-file developers, as opposed to large corporations. Curran says reviewing the details of new specifications is not the most exciting work, but he hopes that a Java user group will someday be represented on the executive committee, the members of which are determined by election.In the next few months the JCP will roll out a new version of its Web site with enhanced collaboration tools, and plans outreach efforts to get Java users more involved, Curran says. JavaOpen SourceLibraries and Frameworks