Skip to main content

How free is the OpenJDK?

Posted by fabriziogiudici on October 13, 2010 at 2:37 PM PDT

A good starting point for thinking about the consequences of the Oracle + IBM deal is in the blog of Gianugo Rabellino:

... I will readily admit there is a positive side in IBM ditching Harmony and joining OpenJDK, as the world is now closer to enjoy a strong Java platform.

The problem is the price tag. With IBM surrendering to the Oracle bully, the Java Community Process is now as credible as Weekly World News, and basically nobody is safe. The spin pros have been busy focusing on a strengthened, renewed Java effort, and they conveniently (or should I say pragmatically?) forgot to mention how dangerous it is to be under the illusion that the JCP is a neutral and cooperative body producing Open Source friendly specs when the truth is Oracle can and do whatever they want, including breaching the JSPA and getting away with it. Or play puppet master even with mighty IBM. I wish all my FSF friends will soon recover from the initial excitement for a GPLed Java and realize how, really, the party is over and we have much less freedom than before. And maybe a better JVM with no competitors – but is it worth the price?

My point. First, I'm sad that Harmony is probably going to die. Having one more independent implementation of Java, under a different license, was a plus for the community. In any case, things haven't changed with the Oracle management: the no-TCK policy for Harmony was started under Sun and, in my opinion, it was not something unexpected, as they choose the GPL license that guarantees the control of the product by means of the original creator (note that I'm not criticizing Sun's approach: I understand that from the corporate point of view it could have been a good move, the problem here is harmonizing the corporate's and the community's needs). 

I disagree with Gianugo when it says that "Java is not free". "Freedom" to me is a shades-of-gray concept, not black and white. Definitely, we're less free if Harmony goes; but we're still free to fork OpenJDK, if we want. While full light hasn't been shed on the scene yet, my opinion is that forking the GPLv2 OpenJDK would save you from any patent litigation. So, my rephrasing of Gianugo's point is that we have to understand how much freedom we have and whether we're free enough with the single choices: OpenJDK or an OpenJDK fork. At the moment, I don't know, but I suppose this situation gives use some decent protection. We need to think more about that.

Let's remember that "freedom to fork" is for us a way to protect ourselves from a possible future Java evolution that we don't like. So, to decide whether Java is free enough or not, we should start with writing down what we'd like to do and protect from. A good starting point are the four freedoms defined by the FSF:

  • The freedom to run the program, for any purpose (freedom 0).
  • The freedom to study how the program works, and change it to make it do what you wish (freedom 1). Access to the source code is a precondition for this.
  • The freedom to redistribute copies so you can help your neighbor (freedom 2).
  • The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.

So, in future discussions, I'd really like to see "free" with a quantification, rather than an absolute quality.

A final consideration from me. There's some discussion about whether Harmony could survive after being abandoned by IBM or not. Stephen Colebourne (who's supposed to know what he's talking about) looks pessimistic:

While never solely an IBM project, I would expect this to effectively mean the termination of the Harmony project.

Other commenters disagree and think that Google could step in, given its interest in Harmony as the basis for Android (even though I have still to understand how, in 2010, the two projects are really related). I feel Google is really alone after the IBM move (I suppose that other corporates will jump on the Oracle + IBM wagon), but they have got large shoulders.

Now, my point. Let's suppose that there's no Oracle lawsuit against Android (hence, implicitly, against Harmony), or that Oracle loses the lawsuit. Let's suppose at a certain point the community really breaks with Oracle and moves away from Java, deciding to create a *ava fork that it's not based on the OpenJDK because, for some reason, it reveals not to be free enough. It would be possible to resume work on Harmony: the fact that you don't have a TCK for it just means you can't call it Java™. But the community, by testing its projects on it, would be able to determine whether it's really Java compatible and a viable escape way. In case of a final break with the Java steward, nobody would be much fond of the Java name, being the effectiveness of the solution the only important point.

Now, reading "never solely an IBM project, I'd expect this to effectively mean the termination", or even optimistic people seeing a future to Harmony but only bound to Google stepping in, reinforces my idea that the community is not able to run a *VM technology alone, without the support of a major corporate. Isn't this the real problem, indeed, beyond any TCK or legal disputation?

PS As a further food for brain, I've learnt that Shark has been finally merged to OpenJDK 7. Shark is an IcedTea contribution, allowing to use the LLVM JIT to run Java bytecode. It has been introduced to extend the supported microprocessor architectures and simplify the porting process. It could be an escape lane in case the community decides to be free to choose a different *VM than the one coming from Oracle or IBM. LLVM is developed in the open (BSD license) by the University of Illinois, but my understanding is that Apple's funding and contributions are fundamental for this project. This seems to confirm that for a successful *VM technology to exist, you need a large corporate. And the problem remains.

 

Related Topics >>

Comments

Oracle just wants a cut of

Oracle just wants a cut of the Android pie and nothing more. The law suit is about patents and not Java. Sun tried to bridge the impossible divide between corporate interests and community interests and failed and I miss Sun.

As for your contention that a

As for your contention that a viable *VM needs a corporate...maybe for now...but god let it be a company that makes it's money from Advertising (Google) versus a company that makes it's money from Software MAO (Microsoft, Apple, Oracle), since then it can be released under truly free licenses. I think I need to do some more research in understanding why if OpenJDK was licensed under GPL v2, which was authored by FSF, who also authored the definition of Open, saying freedom 0 is the freedom to use the software for ANY PURPOSE. Doesn't the GPL contain this clause??? I guess it was just the trick of the TCK that somehow invalidates what the GPL tries to achieve. I guess I just don't understand how they could even license it under GPL with that TCK clause as well? Isn't the line: "For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program", a complete contradiction to the TCK? Shouldn't they have been prevented from distributing under the GPL as the end of the sentence suggests...since the patent issue is exactly what Oracle is beating on Android for? Doesn't releasing any program under the GPL automatically indemnify you against any patent claims that stem from using that software?

1. Google used Harmony for

1. Google used Harmony for Android, not OpenJDK.
2. In implementing a different VM for Android, they effectively forked Java. This is something that must not happen.
3. I think the case is easy to resolve when Google simply license Java and implement a correct JVM. It is very clear to me that development of Java (or buying of Sun) costs huge amounts of money and Oracle tries to get that money back. There is nothing wrong with that in my opinion.

I'm sorry but you are

I'm sorry but you are seriously misleading people. Java is NOT FREE by any stretch of the imagination. The very first qualification of what comprises free software as defined by the Free Software Foundation is: The freedom to run the program, for any purpose (freedom 0). However, you cannot use OpenJDK on the mobile platform...which is arguably the most important platform bar none! Oracle has massively deep pockets and will sue anyone and everyone into oblivion if they try to exercise the very first basic freedom...like using it on a mobile platform. This is the 'Field of Use' exception that the Apache foundation couldn't accept...and therefore have never been indemnified by Sun (now Oracle) for Harmony. Now that Oracle is suing Google over Android, it's abundantly clear just how free Java is. It's that simple. Java is so not FREE. I'm just sorry that Richard Stallman didn't highlight this problem when he discussed the Java trap...but for christ sakes folks, we need to think for ourselves too!

Dear friend, you seem to have

Dear friend, you seem to have confused ideas. For the simple fact that a thing is licensed as GPLv2, one can use it whenever it wants, and fork it, and change it. As far as I know, nobody prevents you from running OpenJDK on a mobile equipment. The confusion you're making is to consider OpenJDK and TCK as the same thing. Indeed, they are two distinct products, and as far as I know, only the latter (the TCK) has got field of use exceptions (edited to add - I'm adding the obvious, but of course TCK has *never* been released in the open, nor anybody ever asserted it was - end of the edited part). Java, of course, is composed of both things. There are, among others, two reasons for which one might need to use a TCK:

  1. Because it has created from "clean room" an implementation of Java, that is not deriving work from OpenJDK. TCK is needed to be able to call this thing "Java with the TradeMark". This is the problem with Apache Harmony, and as you can see it's not a problem of the OpenJDK not being fuly open, but of Java not being fully open.
  2. Same as above, but the new thing has been derived by the OpenJDK.

Now, if you please read carefully my post before commenting improperly, you'll see that I've clearly said that - if Oracle wins the lawsuit - this means that point #1 can't be done. This is for sure a lack of freedom, and I've mourned about that. But it's perfectly possible - from a legal point of view - for the community to fork the OpenJDK and keep working on it. Every client using Java and wanting to be completely independent of Oracle could use the new thing and verify its compatibility with its own tests. Being possibly prohibited from using the TCK, the new thing couldn't be called "Java" - but it's just an annoyance, not certainly a technical problem. This fact is part of the "four freedoms" and means that we have some freedoms with Java, for real. Is this enough? Perhaps yes, perhaps not. As I concluded my blog post, this is the real point to focus, not merely saying "Java is not free by any strech of the imagination" (which just proves you've got confused ideas or a very very tight imagination :--)

First of all: You mix up the

First of all: You mix up the notion of "freedom" with notion of "option". According to your notion of freedom somebody should have the freedom to have a house, to have free healthcare, and to have the freedom to visit Disney World once a year, and... (freedom 4269, 4270, 4271, and freedom n). You see, you've completely misinterpreted the idea of freedom. However somebody should have the true freedom to work hard and to buy&own a house for the money he've earned. There are no freedoms (or as you say "freedom n") but only "the freedom". Second and last: I've not the freedom to punch somebody's face because this somebody has the freedom to keep an unpunched face unless somebody else pays him to box against me. But you think that I've the "freedom" to interfere with somebody's source code without paying him a compensation for his work(?), although he wants to make use of his FREEDOM TO KEEP HIS SOURCE CODE CLOSED. In this case I would use his source code "for free" and "for free" is not freedom but a natural language shortcut for "costless" (you know, like "free beer"). Don't get me wrong I like and appreciate the idea of OSS. In fact I've published own OSS projects under the BSD license (dev.loxal.net). And somebody should have the freedom to do this because he wants to do it (for different reasons).

Frankly, I don't see your

Frankly, I don't see your point. You're citing the concept of "option", which is different than freedom - what's up with that? In the world there are many options and many freedoms; for instance, if you just randomly pick two bodies of laws in a couple of liberal-democratic countries, you'll discover that there are tons of things that people are free to do in the former and not in the latter.

For the second part of your post, yes, freedom of one entity is limited by freedom of another entity. Again, what's the point? You're just confirming my point, that talking of "freedom" without specification is nonsense. That's why I cited the four freedoms as defined by the FSF as the starting points from which one should start the discussion, without any digression.

No point feeling bad about

No point feeling bad about the corporates - very little of what we do would exist if a big company hadn't spent money, or allowed their employees to do something on the sideline.

Careful Fabrizio. No one will

Careful Fabrizio. No one will argue that OpenJDK isn't free (for whatever notion of free the FSF adopts). Problem is that Java (the language & spec) is much less so now: ORCL is calling the shots, resistance is futile.