How to rescue Java from the men in suits
Gives us liberty, not legalese
JavaOne Open source and Java developers are calling on Java's governing body - the Java Community Process - to open up beyond the big players.
Members of a JavaOne panel on the JCP, open source and standards have expressed their frustrations with a process they believe puts corporate interests first when it comes to Java. For once, it wasn't just Spring Framework creator and evangelist Rod Johnson calling for change.
Joining him was Sun Microsystems' own, recently recruited, "free and open source software ambassador" Dalibor Topic and representatives from one of the industry's newest Java user group - the Paris JUG - plus one of the largest - Brazil's SouJava. Brazil is a country Sun repeatedly champions when discussing uptake of Java and open source.
- Onerous membership terms
- A culture favoring closed-door meetings
- Failure to open up essential Java reference implementations and test compatibility kits
- A system that's produced executive committees where just three of the 31 participants are individual members. The others represent big interests - Google, IBM, Motorola, Nokia, Oracle, SAP and Time Warner Cable among others.
At stake is the future of Java, with Topic indicating Java risks missing out on innovation coming from individuals and projects because of the JCP's reliance on vendors. The JCP has grown up being dominated by large companies as a legacy of its past where companies helped establish the group and drive the Java market, Topic said.
Big companies are also suspected of self-serving corporate agendas by moving at different speeds on their support for open source, he said.
Topic: after 10 years, JCP needs radical change
"The JCP needs to change radically," Topic said. "The way the [JCP] works now, is the way it's worked for 10 years - that serves certain commercial interests.
"The environment in which the technology is being created in is changing... People want to shape the future of the platform in useful ways rather than stand outside the gates."
Topic's criticism is poignant for Sun, which founded the JCP in 1998 and who you enter a legal agreement with when joining the group. He's the kind of person Sun wants to appeal to and help it build a bridge to open source developers - hence Topic's recent appointment as Sun's free and open source software "ambassador".
More individual participation could mean less vendor-led Java Specifications Requests (JSR) - the precursor to a final Java API - with technologies that reflect real-world needs.
Fit for purpose?
Rod Johnson in March cited the creation of Entity Beans - a type of Enterprise Java Bean (EJB) that was part of the JCP's Java Enterprise Edition spec - as setting back the cause of object-relational mapping by six years and for causing billions in wasted investment. Johnson did not elaborate in March, but he was recalling a time when there'd been wide-spread feeling (here and here) Entity Beans were needlessly difficult to code.
JSR 277 will now be fairly simple and won't cover all use cases, according to Sun computational theologist Alex Buckley, also on last week's JCP panel. JDK 7, for the next implementation of Java Standard Edition, will also allow for OSGi modules to be used "out of the box", according to Buckley who is responsible for "the moral and technical integrity of the Java programming language" in his role as theologist.
Johnson said a balance needed to be struck between enshrining technologies as standards and allowing technologies to become de-facto standards. The former are harder to change and become a burden to developers who must adhere to the standard if, and when, the market moves on. "There's a fundamental question of whether a technology is fit for purpose," he said to the question of when it's appropriate to standardize a technology.
For all its faults, JCP critics do not advocate ripping up and starting again. Topic thinks the JCP is the best thing we've currently got for bringing together the big boys and the little guys. Johnson, by contrast, believes many of the structures are already in place to effect the necessary changes at the JCP - things such as voting and the holding of regular meetings.
The real problem is individuals are not stepping up and using the existing structures. "It's fashionable to complain to Sun," Johnson said. "Fundamentally, this is not Sun's fault. They've done everything they can to have users participate. Users need to get more motivated."
Why are more individuals not coming forward? Some issues are practical, such as the demands on time and money, others are legal.
Stephen Colebourne, a technical architect at SITA ATS, wants to see individual representation guaranteed. Individuals could receive legal support during their work, the kind of support that comes with corporate membership. Java Specification Request lead and a leader of SouJava Michael Nascimento Santos said half the executive committee's seats could be made open to individuals on this basis.
JCP's Patrick Curran: "serious discussions"
There's also a major challenge of perception. Antonio Goncalves, founder of the new Paris JUG, who began leading a JSR last August, complained it's not obvious to an outsider they can even join. The perception is the JCP is a place for big companies, like IBM or Red Hat.
Once in, it's not clear what role the individual can, or should, play. "I joined as an individual without really knowing what was going to happen to me - I didn't know what to expect as an expert member," Goncalves said.
There are are also communication issues. Goncalves noted that members work via email with documents sent using PDF format, rather than wiki, making comments on specs extremely difficult and slow. Also, different projects are not talking, with Goncalves' emails for information to other expert members going unanswered. According to recently elected JCP chairman Partrick Curran, a wiki is planned in the next three weeks to speed things up.
A major hindrance to individuals is the Java Specification Participation Agreement, which Topic and Goncalves think gags developers from speaking out - or blogging - about JCP proceedings and meetings. This enables big vendors to sit around and safely expose their intellectual property (IP) to each other without the risk of outside attention. JSPA features an ambiguous clause on confidentiality of information disclosed between JCP members during their meetings.
"You read JSPA and you don't understand. You don't know what's going to happen to you, your career, what you can blog about - they tell you: what happens in the JCP stays in the JCP," Goncalves said. He was half-joking.
"We don't like to have to sign a 20-page long legal agreement because we don't want to end up in the Bastille - we'd rather storm the Bastille," Topic said. He believes the emphasis on legalese is a sign of a bygone, corporate age, whereas open source is all about "trust".
Another bone of contention for Topic is open sourcing of the all-important test compatibility kits - TCKs - that allow self-testing and certification of Java implementations. Each JSR has a TCK created by the spec lead and that contains intellectual property under terms often not favorable to open source.
But TCKs are expensive and difficult to build, so IP owners are loath to give up their rights. The TCK is often licensed, meaning there's a vested commercial interest in keeping them closed. Santos said it would be better for the JCP as a whole, if nobody charged for TCKs.
A time to lobby
The whole issue of open TCK and Java compatibility kits has proved an ongoing source of conflict between Sun and the community. Curran said there'd been "serious discussions" on the executive-committee, but no answers. (You can catch a full, post-panel interview with Curran here from Uberpulse.)
The real challenge individuals face in changing anything is they must appeal to the best instincts of the corporate interests the JCP favors.
According to Topic, repeated and sustained lobbying of these interests will create the desired change - in the same way that lobbing lead to Sun's open sourcing of Java. "The JCP needs to transform to lead the Java world to a better place. We can do this the soft way or we can do this the hard way," Topic said. "We didn't club people to open [Java] up," he said.®