May 7, 2012

Java is Still Free Software

There's a lot of fud floating around regarding Java and Oracle's enforcement of its Java related rights. E.g.

"If the verdict that Android infringed copyrights stands, it could put programmers in a difficult situation. Java is an open source language, but now it's not clear how free programmers are to use it, since Oracle has said that anyone following the Java APIs—which are basically sets of instructions about how to use Java—needs a license." Ars Technica/Joe Mullin
Google's problem, to the extent that they have a problem, the trial is far from over, is that they have chosen to not license Java from SUN/Oracle at all. In particular, they have chosen to not use the GPL licensed OpenJDK . It's perfectly clear what the GPL license is, and how it works, and the validity of the license have been upheld in several courts of law.

If you if can abide by the terms of OpenJDK, you are as safe as with any other free software*. And indeed, Oracle has not gone after any OpenJDK licensees, nor have they given any indication they would want to do so**.

The API question is yet another red herring that is deliberately used by Java bashers to muddy the waters. If you accept the GPL license, you have licensed the whole work, including any copyrighted parts of the API. If API:s are in fact covered by copyright, we have a real problem, but an industry wide problem, maybe I'll comment on that in some other post, but it's not a Java problem.

Those are the facts, but where do I stand? I would have wanted Sun to endorse the Harmony project. I would have liked for Google to come to terms with Sun before rushing headlong into developing Android. Oracle could have been more lenient. And I definitely would have preferred an Apache style license over GPL for OpenJDK. But the trial is real, and it has hurt Java, Google, and Oracle immensely, regardless of the final outcome.

* I use the term free software rather than open source, since it's a more fitting description of GPL style licenses.
** If you download Java from Oracle you subject yourself to a completely different "binary" license.