What Is An API? The Clue Is In The Name…

At the end of my testimony in the recent Oracle v Google trial in San Francisco, Judge Alsup asked me to explain what an API is. My answer aimed to simplify the answer for a general listener while remaining recognizable to most programmers. Here’s what I said. Continue reading

Red Hat Picks Up Dropped Java 6

Red Hat put out a press release yesterday that didn’t instantly make sense to me. After a chat with their GM of Middleware, I realised actually they had all done us a favour picking up care of OpenJDK 6 that Oracle had dropped. More on InfoWorld.

Driving Open Source

Here’s my interview with this month’s Oracle Java Magazine about the forces driving open source and the need for open source skills.

[youtube http://www.youtube.com/watch?v=nlOOEFDnRH8]

Java ME Fragmentation

Sun acknowledged in 2008 and 2009 that Java ME was fragmented – and had been for years – without any help from Android.

[youtube http://youtu.be/wx_YhPJWNhs]

More in today’s article on ComputerWorld UK.

☝ Java and Ubuntu

Despite a panic caused by a misleading headline, not only is Java not being removed from Ubuntu, but the Java reference implementation is actually a package in the main repository. My article today on ComputerWorldUK has the details.

☆ FOSDEM Java

The Free Java DevRoom at FOSDEM was packed with people all day yesterday. At the beginning, Mark Reinhold (from Sun and now Oracle, the chief Java engineer) hoped to speak briefly about the new OpenJDK governance draft but faced plenty of searching questions about it – you’ll not get to see though, as Mark and Joe were unable to gain permission from Oracle for their talks to be recorded. But that was the last it was mentioned the rest of the day until my talk at 6pm.

In the interim were plenty of interesting talks, most notably Mario Torres and David Fu talking about their IcedRobot project to get Android apps to run on OpenJDK (and thus on any desktop). The room was packed out and had a line of people down the hall at the end of the day to hear Stephen O’Grady speak, and I was his warm-up act with a talk looking at the lessons I learned liberating Java into OpenJDK (I’ve uploaded my slides), putting the governance draft into context a little.  O’Grady explained – accompanied by plenty of data – how despite the rumours to the contrary and an overall decline in apparent usage around the whole web application platform tool-set, the indicators for Java as a developer language are still strong when taken in context.

In the evening, the Free Java attendees all went for a dinner sponsored by Oracle, Red Hat and Tarent – a crucial part of the annual Free Java activity and one of the main reasons it remains a strong annual community. Meeting actual people and sharing a meal with them makes it so much easier to work objectively and avoid demonising people, and Tom Marble and the organising team are to be congratulated for the work they have put in to make it all happen. FOSDEM remains the meeting point for European software freedom because of the work they and others like them contribute.

☆ Rating OpenJDK Governance

I used to be a member of the Interim Governance Board for the OpenJDK project I helped Sun start to host an open source implementation of the Java platform under the GPL. For various reasons, the governance was never fully defined and the entire subject has been silent for over a year. There’s other context I assume most readers understand listed on CWUK. This week, news emerged that I am no longer a Board member (neither a surprise nor an issue for me), and that a governance proposal has been published.

How does the proposed OpenJDK governance fare when ranked against the open-by-rule benchmark I outlined earlier in the week? Scoring below involves +1 for each positive implementation of a rule, zero for each non-detrimental implementation or omission and -1 for each implementation that detracts from an open-by-rule governance.

Rule Data Evaluation Score
Open, Meritocratic Oligarchy “The Governing Board consists of five individuals:

  • The Chair, appointed by Oracle;
  • The Vice-Chair, appointed by IBM;
  • The OpenJDK Lead, appointed by Oracle; and
  • Two At-Large Members, nominated and elected as described below.”
This is initially a closed plutocracy comprising mostly people who have never been involved in OpenJDK, as long-term Free Java leader Mark Wielaard has pointed out. The initial Board is all appointed by Oracle and IBM and they have picked only people they can trust to represent them and taken few risks (only Doug Lea has spoken out in the past, when he resigned from the JCP) and omitted key OpenJDK contributors Red Hat and Google (and recent joiner Apple). Future Boards will always comprise at least two Oracle staff and one IBM member. Interestingly, this is not conformant with the original OpenJDK Charter, which gave a majority of seats to elected representatives.

There is scope for the Board to be grown in the future and it’s theoretically possible eventually for the Board to have community-appointed members outnumbering the Oracle-IBM axis, but the rules are poorly defined and there’s undoubtedly scope for them to be gamed in order to maintain control.

Scoring 0 for closed/open given the benefit of doubt for the possible expansion process; -1 for non-meritocratic majority; -1 for non-representative oligarchy.

-2
Modern license (not mentioned in governance) OpenJDK uses a complex licensing arrangement based on GPLv2 plus a variety of exceptions. GPLv2 has decent implied patent protection according to most legal sources I have consulted. It’s actually a good combination of licensing both for software freedom and as the basis for Oracle to build a business around the code, but it’s not mentioned anywhere in the governance so could presumably change at any time based solely on Oracle’s choices.

If the governance committed to maintaining GPL as the license I’d score this as +1 but the lack of mention makes it 0.

0
Copyright aggregation “A Contributor is a Participant who has signed the Oracle Contributor Agreement or who works for an organization that has signed that agreement or its equivalent. Only a Contributor may submit anything larger than a simple patch.” Copyright is explicitly aggregated solely in Oracle’s hands. There are actually good historic reasons for this and without it I doubt that either IBM or Apple would be involved in OpenJDK since it would be impossible for Oracle to privately license the resulting Java implementation to them under terms they would accept (neither of them like GPL). Furthermore it allows the existing Java licensing arrangements to be sustained, meaning OpenJDK can be the locus of development for Java SE.

While I would rather see the overall copyright vested in a non-profit foundation, the pragmatic balance of factors means I score this as 0.

0
Trademark policy (not mentioned in governance) The OpenJDK trademarks are all dealt with outside the scope of the governance and are the exclusive property of Oracle who even claim control of their use within the source, a context I’m surprised to see alleged trademark law is applicable. This clearly scores -1. -1
Roadmap “If a Governing Board member objects in good faith to a technical or release decision made by the OpenJDK Lead then that decision may be appealed via the following process.”

JDK Release Projects may only be proposed by the OpenJDK Lead and may only be Sponsored by the Governing Board.”

“Every OpenJDK Member will have the opportunity to propose features for inclusion in JDK Release Projects, and decisions about which features to include will be made in a transparent manner.”

Despite being intended to ensure “that sufficient infrastructure is available to Community members” there’s no mention of how releases will be conducted – there should at least be baseline principles. There’s an appeals process, but it is only open to Board members and there’s a clear intent that the roadmap is at Oracle’s sole discretion. This especially applies to JDK releases. The nod towards transparency is a positive sign but contradicted by the appeals process.
 

While this is all nothing new, it’s hardly “open-by-rule” so a clear -1.

-1
Multiple co-developers There’s a cross-section at FOSDEM. OpenJDK is blessed with enthusiastic co-development from both independent community participants and from corporations like Red Hat, Google and now Apple. It’s a shame verging on an insult that they weren’t involved in creating or starting the governance, but overall this is OpenJDK’s biggest strength and a clear +1 score. +1
Forking feasible IcedTea, multiple co-developers, Classpath history The code is under the GPL, but the copyright is aggregated by Oracle and the trademarks all belong to them. There are enough co-developers outside Oracle to sustain a fork (after all, Classpath was a viable Java implementation before and IcedTea is still running). Chances are that IBM is subject to a no-forking agreement in return for lending its credibility to the governance. The documentation is subject to rules intentionally designed to prevent them being used on a fork.

Overall, this is a tough rule to score but on balance I think forking would be tough but possible. Given all the factors making it tough, I score this as 0.

0
Transparency “I’m happy to report that, since last November, I’ve been doing just
that: Drafting a set of Community Bylaws in collaboration with John
Duimovich and Jason Gartner of IBM, Mike Milinkovich of Eclipse,
Prof. Doug Lea of SUNY Oswego, and Adam Messinger of Oracle.”
Despite having roots in the work of the previous governance board (which also inherited ideas from OpenSolaris), the governance itself has come from nowhere and that bodes ill for future transparency, no matter how often the word is used in the document. The track record for OpenJDK has shown a mixed history for transparency. The corporate pressures are likely to mean lots of back-room dealings and the governance does little to prevent them.

Again, tough to score. I’m tempted to score this as -1 but the fact there’s  a public governance at all and that Mark promises there will be a ratification step (albeit undefined) makes me give the benefit of the doubt and thus a score of 0.

0
Summary (scale -10 to +10) -3

-3That score isn’t as bad as it could be, but given that

“The goal of these Bylaws is to foster the long-term health and growth of the Community by enabling and encouraging its members to act in an open, transparent, and meritocratic manner.”

I think there’s still plenty of work required to make them fit for purpose. I’m offering these comments in the spirit of contribution and dialogue. I’d be pleased to help the OpenJDK project in any way I can if they wish during the drafting and ratification process. I’ll be at FOSDEM this weekend speaking on this subject in the Free Java DevRoom, so meet me there if you’d like to discuss anything.

I have hoped from the beginning that OpenJDK would be an open-by-rule community in which everyone with a commitment to Java can participate as equals. Let’s hope this new development can deliver on that vision.

☞ Fixing The JCP

  • A very astute move by Oracle here. They are proposing that the seat on the Java Community Process Executive Committee vacated by Apache should be filled by the São Paulo-based Brazilian Java User Group SouJava, represented by my charming and smart friend and former Sun colleague Bruno Souza (who incidentally also represents ForgeRock in Brazil and is a co-author here on webmink.com). 

    I think that given the circumstances this is the best outcome that could have been achieved and I hope Bruno and SouJava will be able to use their new position of influence to fix the broken things (like the opaque decision-making and the ability to have FOSS-hostile licensing terms on JSRs).

Also:

☞ Good For Java?

  • “IBM will work with Oracle and the Java community to make OpenJDK the primary high performance open source runtime for Java. IBM will be shifting its development effort from the Apache Project Harmony to OpenJDK.”

    As always in these corporate mating dances, the real meat is in what’s not said, especially about the Google lawsuit, the future of Apache Harmony without IBM, the licensing arrangements, the governance of OpenJDK and the carving-up of control of the JCP. 

    Will IBM actually join the community or is this a corporation-corporation deal like with OpenOffice? What else was agreed in the deal between IBM and Oracle that made this happen? Where does this leave open source developers in the software patent wars? There’s plenty to explore, but sadly none of the articles so far have asked any of these questions.

  • Tim Ellison is the chair of the Apache Harmony PMC, so his comments here are very significant – one might even suggest they amount to calling for Harmony to be wound up, not that that’s one person or company’s decision.
  • Repeat after me “pragmatic”, “pragmatic”, “pragmatic”
    Sacha Labourey pretty much nails the issues here. The Java community needed clarity over whether it was an open, level playing field or whether they were just sharecropping someone else’s property. Clarity is clarity, whether you like it or not.
  • Mark Reinhold focuses as I’d expect on the technical collaboration. But the comments highlight that the announcement has been made with the details of the OpenJDK governance still unresolved.
  • List of the people working on Harmony. Not only is the list apparently out of date, it has such a strong IBM contingent (I wonder how many of those “independents” are actually IBM or Intel contractors) that I am amazed it has escaped Apache Board scrutiny for so long.

[Also on ComputerWorldUK]

⚐ Gosling Webcast

Duke, the Java Mascot, in the waving pose. Duk...

Image via Wikipedia

Next week JavaZone, the conference that brought you Lady Java and Java Forever will be held in Norway. To celebrate the opening of the new ForgeRock Norway office, we’ve arranged for a party just before the conference starts, on Tuesday evening. If you are in Oslo and would like to attend, please send an RSVP to the address on the web site.

As part of that, James Gosling and I will be “beaming in” via webcast to give short talks and maybe even answer a few questions. If you’d like to join the webcast (using DimDim), please register on our website.