Oracle has some exhibits that were entered last week in the Oracle v. Google trial, and they've put some of them up on their website. One of them has a link in an email from 2006, and so I followed it, and you can too. You'll find the link on page 32 of this collection [PDF] of Oracle exhibits.
Lo and behold, it takes you to then-Sun employee Tim Bray's blog back on the day that Sun released Java under the GPL. I wonder if Oracle followed that link, because if I were Oracle, it's the last thing I'd want the public or the jury to see. Bray explains the choice of the GPL by Sun and says that he not only expects forks, he approves of them. Let me show you.
Jump To Comments
The article is titled "Java is Free." It's significant, because he was then viewed as the prime inside mover behind Sun's decision. And here are a couple of relevant snips:
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.... And yet, now, Oracle, the new owner, steps up and says, if you fork, you have damaged us and have to pay. That's a sharp turn indeed. And yet forks, according to Tim Bray, would be "terrific". As I mentioned in our day one coverage, James Gosling, the inventor of Java then also at Sun, said something similar that same day:
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.
Q: How do you think this move will affect other open-source implementations of the Java programming language -- for example, Apache Harmony or GNU Classpath? What in the world is Oracle thinking, putting this exhibit with a link to Tim Bray's words up on its website, and worse, showing it to the jury? And did you notice that Bray said that Sun's declared intent was to open the libraries completely too? Now Oracle is acting like that never happened and nobody had the right to rely on this declaration, or any of the others, to the point that it wishes to sue over APIs.
Gosling: It's hard to know. They'll certainly be able to mine our source for stuff to incorporate into their projects.
But OpenJDK, I'm told, includes the APIs. You can confirm that on
this Fedora page. Did you notice this sentence?
Install all the OpenJDK 6 packages, including the API documentation, by using the wildcard java-1.6.0-openjdk*.
So are they not GPLd already? I mean, if you can build the API specifications from the GPLed source code in OpenJDK using JavaDoc, it's entirely possible this has already happened. Here is what a Java guy told me:
Let's take a sample from the first library listed, java.awt.font, and go inspect java.awt.fontFontRenderContext.java If so, would the structure or arrangement of them matter at all? Arranging GPL'd elements doesn't lift the GPL off of the elements, no matter how much "creativity" you come up with. The GPL is forever and ever, amen.
The source is at http://hg.openjdk.java.net/jdk6/jdk6-gate/jdk/file/69fbcc78346e/src/share/classes/java/awt/font/FontRenderContext.java
Lines 1-24 show it is GPLv2 licensed
Line 36-65 are the API documentation narrative
JavaDoc will extract that text, put it at the top of the page, then grab all the remaining function declarations (like at lines 67-71), list them and document them using the embedded documentation (such as at lines 73-77 or 84-103).
If you use OpenJDK, you get full, GPL-licensed-by-Oracle API documentation included which you can extract and print using JavaDoc, also part of OpenJDK.
Oracle might argue that Google didn't do it that way, and of course I'd like it if Google had used the GPL code, but Sun arranged things in such a way that I think Google would have gotten sued anyway, because if this is about money, they'd still be a target, and as you recall, it began about patents in the center ring. But if the APIs are out there in the wild, so to speak, already, what in the world is this petty litigation about? More significantly, if Oracle were to win the battle over whether APIs are copyrightable and protectible, think of what the GPL might mean for Oracle. I wonder if they are fighting against their own interests, and just don't realize it yet. I've yet to meet a mainstream, proprietary thinker who understands how the GPL works.
Google told the court on Friday that it's about Oracle deciding to close off the openness after the fact. Good luck with closing down GPLd code. But in any case, my point is that promises were made that it seems Oracle would like to not honor. But to *sue* after it's you, not the alleged infringer, that changed the deal in midstream, well, as Judge Alsup likes to say, that's another kettle of fish.
I notice a couple of other things in the emails Oracle submitted as evidence. One is where Andy Rubin mentions trying to do the right thing. Look on page 3, in a 2005 memo outlining Google's plans regarding its acquisition of Android, to do what eventually came to be today's Android. The memo explicitly states that Google did not think it needed a license from Sun. Nonetheless, it wanted Sun's blessing and it wanted to call the result Java, if possible:
So they never thought they needed a license to use any of Sun's software. And there was no concept of paying for patents. You get that automatically, as I understand it, when you pass the TCK and can call your product Java. So there would never have been any separate payment for patents, if they could have worked out a deal, I don't think. And I think this means the experts are incorrect in describing this negotiation process as being about how much Google might have had to pay for patents had they agreed on terms. They'd pay for the TCK process, and there is no guesswork about what that would have cost. If I've understood it right, there wouldn't have been any additional payments for patent royalties.
- Google would like to work with Sun to conceive of and agree to a license that enables Google to release to the Open Source community, under a license of it's own choosing, it's internally developed CLDC based JVM. Google would like to achieve this goal with Sun's blessing and cooperation.
- Google does not foresee the necessity to license or redistribute any software from Sun.
- Google desires to be able to call the resulting work Java.
What did they need? They wanted to call it Java, and that meant they'd have to pay for a TCK license. And they were happy to do that:
Requirements Further into the exhibits, on page 9, there is a Google memo on monetization, all about how the joint Sun-Google project would be good for Sun. This clearly was not viewed as a rip-off opportunity, but a way to make sure Java survived if Sun went under, which the exhibits clearly indicate Google anticipated. It even wondered if Sun would agree to establishing a Java Foundation. You'll find that on page 28 of the exhibit. The summary at the end, on page 14 of the exhibit, says:
- Google needs a TCK license.
- We propose the Android product must pass the TCK on reference design before release to open source community. OEM licensees must pass TCK again on shipping product.
- OEM pays standard Java royalty to be negotiated by OEM and Sun.
Google is happy to work with Sun to give them a time to market advantage in evolving these product areas. If Sun can take advantage of this window they have an opportunity to deliver first to market best in class products all across the value chain. The idea was that both companies would develop the handset, and both would be free to "monetize the platform". Their preference was to take a TCK license, and then be free to call the result Java. But, negotiations broke down. According to the 2005 email from Tim Lindholm to Andy Rubin after one negotiation with Sun, found on page 17 of the exhibit, Lindholm expressed that he didn't think Sun really wanted to do the deal with Google, for fear of losing its existent client base, that they were just "running out the clock", waiting for Google "to get exasperated", which in time they did. And he thought if Sun were going to do an entirely open source handset, they'd probably want to do it alone.
Significantly Lindholm wrote this back in 2005 in response to a report from Andy Rubin about Sun's position at the meeting, how he saw it:
They want to explore partnering to open source their vm. I think they want to do this so they can control the license and also make sure they ship IPR that they can chase people with. Even more significant, given all the emphasis on the "they all suck" Lindholm email, I see one from 2005 where he writes to Andy Rubin, on page 15 of the exhibit, that he actually has no opinion on whether or not Google could do an independent implementation:
I have no basis for an opinion of whether Google could do an independent implementation, but even if we were to do one today's spec licenses do grant a fair bit of latitude in downstream licensing. That's 2005. In 2010, he studied the situation and thought none of them were good choices, but by then Android was already done and out there in the market, so I think this email clearly demonstrates that the "they all suck" email wasn't in the context that Oracle is trying to use it for. It certainly isn't evidence of a "who cares about IP" attitude. Quite the contrary. It demonstrates that Google always knew it could go the independent route, if Sun wouldn't agree to work with them. Of course it would be much, much harder once the product was finished to suddenly change, but back in 2005, they could do whatever they felt like doing. And that is what they ended up deciding to do when the Sun deal fell through.
And on page 19, Rubin sends an email in advance of another meeting with Sun that says:
I know I don't need to say this, but of course we want to treat Sun with respect with an eye toward working with them on a long term basis. So, Google was sincere in wanting to work with Sun. Sun? Apparently it had a more complicated position.
But reading the exhibits, you see that an independent implementation was always viewed as possible by Google, Lindholm even mentioning one possibility, just not ideal. In fact, apparently someone in 2010 told Safra Katz of Oracle that maybe Google would just use something else, and this apparently seemed to disturb her, as on page 7 it says the "threat" to move off Java "hit her hard". Of course Google has the technical ability to do pretty much whatever it wants to take on. They're designing driverless cars and how to mine asteroids. I mean. Really. Replacing Java would be annoying but not impossible.
But part of what Google was trying to make happen in 2009, as you can see on page 30, was getting Sun to "get Java more fully open sourced" which, by then was seen as urgent in that they thought Sun was "going to fail sometime soon." Why did Google care? Because, as one email that year in the same thread pointed out, Google was already highly invested in Java:
Google is heavily invested in Java. We use it in our internal infrastructure (Ads) and external tools (Google Web Toolkit). That's why Google considered just buying the rights to Java from Sun (patents, copyrights) and then set up a foundation to own it all and get Sun to open source all of the tests for compliance. The alternative it foresaw was that either IBM or Oracle would buy rights to Java and then lock it down or "entangle it in more Patents/IP". Foresightful.
Oracle has more exhibits collected
here, but I haven't gotten hold of that one yet. We can read them together. But I can't help but wonder if they are as damaging to Oracle as the ones we have just now looked over.
[Update, Friday, April 27: I've been thinking about the case, today being the day that all the evidence is complete in the copyright phase of this trial, and while I know one can't predict juries, I can say that I think Oracle presented a very weak case. I think they thought the Lindholm email would be their winning piece, and they built their strategy around that email -- a simple vision of good versus evil, a vision of Google as thief, knowingly ripping off Oracle. But the evidence didn't support that, not even the Lindholm email, once it was placed in context. Sometimes you can simplify too much, especially if you don't understand the tech, and given the perforance of Oracle's expert, I think there's a real possibility they didn't.]