When I took the job at Sun in early 2004, I had a long talk with John Fowler, about this blog among other things. John said: “You might end up happier if you don’t blog about open-sourcing Java.” That was then. Today’s story is simple: Unmodified GPL2 for our SE, ME, and EE code. GPL2 + Classpath exception for the SE libraries. Javac and HotSpot and JavaHelp code drops today. The libraries to follow, with pain expected fighting through the encumbrances. Governance TBD, but external committers are a design goal. No short-term changes in the TCK or JCP. There are a ton of presentations and an (excellent) FAQ and so on, all to show up at sun.com/opensource/java sometime in the next few hours. I wanted to add a couple of remarks on areas that stuff doesn’t highlight.

Why Free? · I’m committed to Open Source but not generally a member of the Free Software movement. For Java, though, it’s the only thing that makes sense. It’s been given away freely for so long, and it’s worked its way into so many places, that it should belong to the community, and if anyone figures out how to make it better, they should just bloody well give that discovery back. So for my money, the GPL’s the only sane choice.

History · There’s a lot of it, and I don’t know it, and I like it that way. I’ve had a few people say things like “I’ll never forgive Sun for what [name deleted] said in 1998” or “The liaison from [company deleted] were lying bastards and only in it to rape us.” And so on. Well, it’s history, it’s water under the bridge, forget it!

And I bet that nobody else will talk about this, so I will: there was internal resistance, and it was passionate. I disagreed, but I have a lot of respect for those people; they had good arguments that we need to keep carefully in mind, going forward. There are people who are bruised and hurting now and really unsure that this is the right path. I totally hope that, in a couple of years, this will be a tempest in a teapot, seen in the rear-view mirror, and that we’re still all on the same team.

Forks · The FAQs argue that the risk of forking under the GPL is low; the Free Software and OSS communities don’t want to; and given the massive installed base of compatible Java, nobody seems likely to try a repeat of the Microsoft shenanigans that we went to court over.

But I think there’ll be lots of forks, and I approve. I suspect that basement hackers and university CompSci departments and other unexpected parties will take the Java source, hack groovy improvements into it, compile it, and want to give it to the world. They’ll discover that getting their creation blessed as “Java” requires running the TCK/trademark gauntlet, which isn’t groovy at all. So they’ll think of a clever name for it and publish anyhow.

Which is terrific. I see no downside, and I see huge upside in that the Java mainstream can watch this kind of stuff and (because of the GPL) adopt it if it’s good, and make things better for everybody.

Remember: However many forks there are, it ain’t Java unless it’s called “Java” or has the coffee-cup on it. If it has the name and cup, it is Java and it’s compatible. And Sun will absolutely enforce that in court if we have to. We have in the past and we will again.

TCK · What to do about the TCK code? Its status is still TBD, and is going to take some careful thought. Right now, the TCK is like the road test that you have to pass to get your driver’s license. It’s a hugely important piece of the Java compatibility story. It has to maintain its integrity and it has to be perceived as maintaining its integrity. So, what’s the right licensing structure to achieve that? Beats me.

Long Term? · Anyone who tries to predict the long-term future effects of Free Java is braver than me. I have one concrete hope: that the people working on the GNU/Linux desktop can be unshackled from the tyranny of C++. Aside from that, who knows? Freedom is scary; but on balance I think Java’s new path will be more interesting and more profitable and more fun.


Comment feed for ongoing:Comments feed

From: Robert Sayre (Nov 12 2006, at 21:17)

"it ain’t Java unless it’s called 'Java' or has the coffee-cup on it."

So, you're saying that it's not open source, because the coffee cup is non-free.

...I kid, I kid. Great news! I guess we'll see if you really need JScheme to generate those CORBA classes.


From: John Cowan (Nov 12 2006, at 22:09)

I don't see what makes the TCK decision so difficult. Open-source the test code under a trademarked name ("TCK" or something else) and absolutely refuse to let anyone use the trademark for any variant code. So you only get to use the TCK trademark if you are distributing the unmodified Sun-blessed TCK, and you only get to use the Java trademark if your implementation passes that same TCK. That way I can distribute my variant non-Java and use the variant non-TCK as its test suite.

Nit: The GPL is just as much an open-source license as it is a free-software license, in the same way that the CDDL is just as much a free-software license as it is an open-source license.

Anyway, congratulations!


From: Cooper (Nov 12 2006, at 22:35)

<blockquote>So, you're saying that it's not open source, because the coffee cup is non-free.

...I kid, I kid. </blockquote>

May I direct your attention to IceWeasel? :D


From: beza1e1 (Nov 13 2006, at 00:24)

So Debian will have to rebrand it?

I think that is ok. Even more than with Firefox, because Java is not that visible and important for end-users, but for the management it will be important, if we can say "Debian has Java built in".

What will be interesting is, how Sun will deal with patches. If it goes into Debian, it will for example have to run on some wierd architectures. Does Java support these, yet?


From: Hilmi (Nov 13 2006, at 00:59)

This unbelievably great news. Thank you for informing us early!


From: Simon Brocklehurst (Nov 13 2006, at 01:20)

It's great to see Sun Open Sourcing Java. It's most definitely the right move. I hope the free software movement embraces it. They certainly should.

As for the people who are bruised and hurting about the decision to move to Open Source, it's normal for most people people in a diverse community to be worried about change. They'll come round in time.

And, as your CEO said on his blog the other day - better is *always* different...


From: Thomas (Nov 13 2006, at 01:37)


as long as Sun maintains the official TCK and makes clear that passing TCK means passing the official TCK, do people forking it matter at all? The ability to create derivatives doesn't include the right that Sun incorporates all patches from all of them.

Kind regards



From: Michael Banck (Nov 13 2006, at 01:48)

beza1e1 wrote:

So Debian will have to rebrand it?

Not necessarily, unless we (Debian) would have to slightly fork it for technical reasons, as has happenend with Firefox. While this wouldn't be a big issue in itself, I do not see such problems coming up anytime soon, the Debian java maintainers closely work together with Sun engineers, and managed to get the pre-GPL Sun java into the "non-free" component of the Debian archive. Having it in "main" will maybe take some more effort towards integrations with the rest of the Debian system, but this should be doable.

In the end, it depends on Sun's trademark policy and how they decide to enforce it. I hope this will turn out better than Firefox/Iceweasel, but I personally do not think Iceweasel is a disaster.



From: Toufeeq Hussain (Nov 13 2006, at 03:10)

This is great news Tim, for both Sun Microsystems and the Free Software community. Kudos to you and the Java team.


From: Bharath R (Nov 13 2006, at 04:30)

Its a move that should silence most, if not all, of Sun's critics (RMS & ESR included). We really are the #1 contributor (if that was ever in doubt) to the open source movement now.


I'm glad that you continue to use "free flowing" language despite the ruckus over your comments on project Blackbox. :-)


From: Christopher Penn, Financial Aid Podcast (Nov 13 2006, at 04:50)

Another key interesting question - what's Sun's internal process for merging back changes from third party OSS developers? I can foresee a whole bunch of PHBs asking questions about the security of Java if third party code from developers isn't transparent...


From: Rami Kayyali (Nov 13 2006, at 08:43)

There's always been an open-source Java, and Sun's Java source code has always been there. If people wanted to copy Java they've always been able to do that.

I don't think GPl'ing Java is a scary decision for Sun, it only rids Linux from one more burden, and allows Sun to extend its Java business to the Linux market.

You're right Tim, as long as Sun retains the Java/coffee cup trade mark, "official" Java should be just fine.


From: Ben Finney (Nov 13 2006, at 13:09)

Thanks for pointing out that there was high internal resistance, and that not everyone inside believes this is the right way forward. Much though a corporation would love the world to believe that it speaks with one voice, that is bullshit and smells that way. Disagreement and dissension is normal and healthy when important decisions are being made.

It's refreshing to have the prime inside mover behind a corporate decision openly tell us that not everyone is behind that decision and that it's still okay.

We also get the opportunity to say thank you, for being strong enough to press this necessary change through despite that resistance.


From: Ed (Nov 13 2006, at 18:19)

I'm just a college student so my opinion might not matter that much.

I've been using Java since 2000 to do most of my college works and just to have fun writing small tools. I joined co-op (internship to you in US) ever since early this year and I've come to realize that Java isn't being used in the industry as much as I thought it should be. (Well to be fair, I'm only talking about Vancouver area)

I'm at the crossroad of my life where I have to pick a set of technology to be good at to make sure I can have a stable career (not necessary great career). Occasionally I also like to try new technology for fun (say, RoR or Python with its numerous frameworks). It strikes me that Java is no longer fan-favourite. Instead .NET is. Hackers (nerds) prefer to use C/C++ in combination with Python (bottleneck code implemented in C/C++, app-logic uses Python).

So in my own opinion, maybe people at SUN Microsystems realized that Java is sort of near the end of its career so there is less risk to "throw" it to the community to do whatever they want.

Back in 1997 to 2003 where Java is the man on the enterprise block, it's too much risk for SUN to let someone else to modify it even a single bit. Pride of the company is on the line if something messed up. These days, SUN Microsystems knew Java is falling out favor so rather than speeding up the dying time of Java, it tried one last time to give Java a boost by GPL-ing to capture the interest of open source fanatics.

Nonetheless, it is a better strategy than letting Java fade away for no resistance. SUN has nothing to lose at this moment.

But that's just my thought.

PS: I'm not trying to spread FUD or flame.


From: Rick (Nov 13 2006, at 18:39)

Are the VM and compiler covered under the linking exception clause?


From: Wesley Parish (Nov 13 2006, at 20:06)

I did a google search once on "free and open source java" and came up with quite a number of Java-compatibles - virtual machines and compilers. A fair number of them were available under the GPL or the MIT/BSD license.

I see this as "verifying" - if you will - that vast number of Java-compatible compilers and virtual machines. I expect that quite a bit of work will go into making sure that it will fit into the memory constraints of the likes of the OLPC, etc.

Nothing to comment on the likely effects upon the competition. Microsoft is as Microsoft does. ;)


author · Dad · software · colophon · rights
picture of the day
November 12, 2006
· Technology (77 fragments)
· · Java (123 more)
· · Open Source (82 more)

By .

I am an employee
of Amazon.com, but
the opinions expressed here
are my own, and no other party
necessarily agrees with them.

A full disclosure of my
professional interests is
on the author page.