Hacker News new | comments | show | ask | jobs | submit login
An update on JavaOne (googlecode.blogspot.com)
129 points by mattyb on Aug 27, 2010 | hide | past | web | favorite | 72 comments

FTA: Oracle’s recent lawsuit against Google and open source

I wish the Google people would stop saying that. Oracle didn't sue open source. That doesn't even make sense, you can't sue open source any more than you can sue Santa. Beside the fact that the open-sourced Java implementations are explicitly unaffected by this lawsuit.

Android uses a lot of Apache Harmony.

The class library, not the VM. And, as importantly, Oracle hasn't sued the Apache Foundation.

Why would they? There's no money there. Just wait until someone else goes and uses it for something and makes some money. Then sue the people with the money.

We're really drifting far off-topic here. My point is the Oracle lawsuit has nothing to do with Harmony (the library, which implements no part of the VM) or ASF, it is not a suit against 'open source'. I imagine that we're all in violent agreement here that what Oracle is doing is icky and lame. But it's also mildly distasteful, FUD-ish and insulting to intelligence for Google to be running around saying 'Oracle is suing open source'. I think bringing up Harmony (or OpenJDK, or Clojure, or a bit of Java you wrote in college, etc) is either being a worrywart or taking Google's verbiage at face value.

Yeah "open source" is not correct, but it's certainly accurate to say that Oracle is suing Google regarding open source code they produce.

Also, I wouldn't be too sanguine: what do you think Oracle would have done had Google used the Harmony VM to produce a system like Android?

what do you think Oracle would have done had Google used the Harmony VM to produce a system like Android?

I think probably the exact same thing, if the resulting VM was not a spec-compliant VM or otherwise did not fall under the various IP exemptions. Dalvik itself is a much bigger opening for someone to use software patents in a predatory way - if what Gosling's been saying lately is true, Oracle had that as a goal all along. But much of that has to do with the unique peculiarities of Dalvik - a VM that runs something that's like, but isn't quite Java-as-specified.

> think bringing up Harmony (or OpenJDK, or Clojure, or a bit of Java you wrote in college, etc) is either being a worrywart or taking Google's verbiage at face value.

Oracle is suing based upon relatively general patents that it would be difficult to implement a modern VM without running afoul of. The Apache Harmony DRLVM absolutely and positively runs afoul of exactly the same patents. In fact I would wager that Ruby, python, and several other runtimes are subject to exactly the same patent liability.

Saying "They didn't sue them" is preposterous. Patents don't require that you sue every subjective infringer. Instead, if you're a company like Oracle, you go after people with deep pockets.

The Harmony VM is a cleanroom VM and spec-compliant VM.


ASF would be loudly crusading if they themselves thought they were actually directly affected by this lawsuit and the patents.

>The Harmony VM is a cleanroom VM and spec-compliant VM.

Dalvik is a cleanroom VM. I'm not quite sure what you're saying with this?

The OpenJDK comes with a patent grant. Cleanroom VMs have no such grant and it's impossible to make one without infringing on the patents.

Why is this getting upvoted? You're wrong. Spec-compliant jvms get a patent grant. Dalvik isn't spec-compliant, so it doesn't get the grant.

And his point was basically that any VM implementing any bytecode language might very well violate the patents in question.

Anyway, Dalvik does not even claim to execute Java bytecode, but its own language. Does that not mean that it is in pretty much the same legal footing as, say, the Python bytecode interpreter?

And there exists plenty of prior art on the VM, all the way back to 1966 ( http://en.wikipedia.org/wiki/P-code_machine ), so I am not so easily convinced that the patent is going to survive the trial.


To my knowledge Harmony has never been given a patent grant. When they tried to obtain the blessing, Sun responded by releasing the OpenJDK, which they bound (with conditions) their patent grants to.

If something else happened that I am ignorant of, please tell me, but to my knowledge Harmony has zero patent protection.

As an aside, the reason Sun refused to grant Harmony a patent grant was that there was the open possibility that it could cannibalize J2ME (at the time Sun was fairly successful in that space, so they were deeply protective, whereas they were failing on the desktop)

Most of that is true, but is not what you said in the comment I replied to, and is not what I disagreed with. Apache Harmony isn't spec-compliant only because it hasn't been blessed by the TCK, and the only reason it hasn't been blessed by the TCK is because Apache disagrees with the licensing terms of the TCK on principle. But the intent of Harmony is to be fully-compliant, the code is something like 99.5% there, and Apache believes that other agreements from Sun around Java back up its position on the TCK issue, so if it came down to it, Apache would be in a very strong position if Oracle ever came after it. In the worst case scenario, they could simply grudgingly accept the TCK license and get the patent grants.

Dalvik, otoh, makes no claim or effort to be spec compliant, and there's no reason to expect they should get the grant.

I'm not defending Oracle here, btw. I think the suit is ridiculous, but on the more general grounds that software patents are inherently a bad idea that stifle innovation. I just don't think it helps anything to distract from the core issue by spreading FUD about Apache's exposure.

> Apache Harmony isn't spec-compliant only because it hasn't been blessed by the TCK, and the only reason it hasn't been blessed by the TCK is because Apache disagrees with the licensing terms of the TCK on principle

The Sun patent license grant is completely incompatible with the Apache License. As is it is impossible to combine the two. Apache isn't just grandstanding -- the conditions made it impossible for the patent grant to apply.

There is no FUD about Harmony. Harmony has zero patent protection. Any other cleanroom implementation has zero protection, exactly as I said, until you essentially bow to Sun cum Oracle. My original statement is factually correct.

Your claim that I was responding to was "it's impossible to write a clean room vm implementation without infringing these patents", which is false (J9, JRockit), and which is also a different issue than whether Harmony has a patent grant.

Harmony doesn't have a patent grant now, that's true. But the reason it doesn't is because it refuses to accept the current license terms. I don't think this is "grandstanding" - it's absolutely critical, and I completely side with Apache. But the simple reality is that Harmony is in a much more secure position than Dalvik, and Apache has a much more defensible position than Google. To claim otherwise is pure FUD.

Why does it matter? Because people should care about the Google suit independent of the idea that Apache might be next. When you try to sell that idea, you make it sound like this lawsuit isn't actually all that bad compared to what it could be, but that's wrong. This is the case that matters, not some hypothetical against Apache. Get pissed now.

As it is, you are a clueless, ranting idiot. And I'll happily take the downvotes for it.

If that's your way of covering for ignorance, I suppose you do what works for you. Again, if you had anything demonstrating your completely incorrect position (you won't gain truth through repeated assertion), go ahead and present it. You haven't, and you won't.

The Sun spec-compliant patent grant is impossible to bind to an open source license, outside of the targeted grant they provided OpenJDK (with its own conditions). Feel free to parade your ignorance though insults, but it doesn't prove your (completely wrong) claims.

No, it's my way of telling you you're a clueless idiot. And yes, it works for me. It's hard to present a position to someone who doesn't know how to read.

You are correct, I think. The official test suite is not some thing anyone can go and run:


The patents are all VM related rather than related to the library.

How general are they? Harmony has a VM as well.

I understand that Harmony's VM is a JVM, Dalvik is a circumvention of Sun's J2ME, which is a different issue (I believe Sun tried to protect J2ME far more strongly than the regular JVM, it's licensed differently and stuff)

Yes, they're different things, for sure, but this is a patent lawsuit, so the only thing that matters is if the code infringes. Whether it does or doesn't... only the case will tell, I guess. It's worrisome, though.

Android, more than 'circumventing' Java ME, is its own system. You can't run Java ME code with it. Android has its own API.

Yet clearly you don't understand this lawsuit at all. It's a patent lawsuit. Harmony's VM is just as subject to the FUD.

Disclaimer: I am not speaking as or for the Apache Software Foundation, I am speaking entirely for my personal opinion in this post.

Oracle is suing a downstream user of Apache Harmony. Even if they are not attacking the Apache Software Foundation directly, it is a dangerous situation when downstream users are sued for Patents.

If someone was suing users or re-distributors of the Apache Web Server, HTTPD, it would be the same situation.

It is important to understand that so far, and until I see more information, most and possibly all of the patents used in litigation are related to Dalvik, and not the class libraries. Apache Harmony has its own VM, DRLVM, which is not used in Android.

I believe it is still disturbing that Oracle is aggressively using Software Patents in the open source Java Realm. It creates a chilling effect on the future of the JVM as a platform in my opinion.

Oracle has not approached the ASF -- as others have mentioned, the ASF is a 501(c)(3) non-profit foundation, and a legal battle with Oracle would decimate any money we have, and that means Oracle couldn't extract any money from us anyways.

Internally the ASF is struggling with how to respond.

There is a general consensus within the members about the dislike of Software Patents, as you find within most groups of Software Developers.

However, there is not a general consensus about what the ASF could do, if anything. The ASF could write blog posts about the general issue, we could be more aggressive on the publicity side, but all of those are like poking a Grizzly Bear with a needle and hoping it doesn't rip your arm off.

In addition, because many members of the Apache Software Foundation have been or are currently employed by both Oracle/Sun, and Google, and/or have internal knowledge of things like the JCP, it is not a 'good' thing for the ASF to speak too early in this issue and become a victim smashed between two billion dollar legal teams. It is also likely in the event of a longer legal battle, many ASF members might be called in testify, further complicating what role the ASF as a foundation should have.

Everyone believes that many large companies have dozens or even hundreds of Software Patents that could apply to the various ASF projects, and we mostly exist in a peaceful state. Oracle has certainly changed that perspective. I don't know what the foundation will do going forward.

The Oracle suit has validated the strict rules that the ASF imposes by use of Contributor License agreements, and tracking of where all our source code has come from. Some open source developers choose to ignore these problems, but good governance is an important attribute if you want to defend against things like Oracle or SCO.

Everyone believes that many large companies have dozens or even hundreds of Software Patents that could apply to the various ASF projects, and we mostly exist in a peaceful state. Oracle has certainly changed that perspective. I don't know what the foundation will do going forward.

That, my friend, is the most chilling statement I've heard all year. We all go about our daily lives thinking we're safe in our cozy open source worlds and believing the leaders of our projects will protect us, but when folks like the ASF are left quaking in fear, it really shakes your foundations.

How can we even begin to contribute? I can code all day, but IANAL. How can I help buy one?

The best defense is a good offense. Get software patents banned, or get a bunch of software patents and donate them to the ASF. When Oracle comes to sue Apache for their free httpd and ASF counters by suing Oracle for something their billion-dollar-per-user database uses, the situation will probably be resolved very quickly.

Then maybe its time to use:

3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.

I always wanted to see what would happen if this was ever invoked.

This is really not nice for Open Source. I can understand that Oracle wants to make money, but they are really creating big barriers for corporations using Java. The lawsuit is marking the start of Java's decline. Its a matter of time before something replaces it.

While I see the Google vs. Oracle Java struggle getting ugly, I don't think this marks the decline of Java at all. Most corporations invested in Java are not building their own version of Java- do they really care how this goes down? In addition what language is in any position to replace Java?

what language is in any position to replace Java?

Previously, it was any new implementation of the VM...

Sadly a virtual machine by itself just isn't good enough anymore. The maturity and performance of the JVM shows. That kind of infrastructures takes oh ... about 20 years to build.

Until the current crop of JVM based languages showed up my interest in the Java the language waned. But now that you can use your language of choice and still tap into JVM libraries, perf and the high quality profiling tools, the JVM is compelling again.

Also experience stories like this, http://blog.urbanairship.com/blog/tag/java/, show that as great as Python and Ruby are for building websites, surprise, surprise, they don't have the performance for the real-time web.

Java isn't really that good fit for real-time web applications as it usually eats a lot memory - especially if you compare it to C/C++ or node.js (V8).

A while ago I rewrote a system from Java (that used JBoss Netty) to node.js. The node.js solution used about 10x less memory. And memory is a crucial element of scaling real-time web applications.

What you mean is that your real-time application was largely memory bound - other apps might require that sanely and rapidly coordinating access to shared state might be more critical than the cost of memory- with a collaborative whiteboard or the backend of a MMORPG you're probably going to run into difficulties with C/C++ and Node.js might very well be useless. There are domains where shared nothing just doesn't work.

Maybe there is no language which will immediately replace Java, but as noodle pointed out, its going to stagnate. Like what happened to C. C is being used in many companies, because they have so much stuff already written in it and cannot afford a re-write. But the community will slowly shift to other languages. We can already see that in terms of Scala/Clojure - both very promising languages.

Scala and Clojure run on the JVM. There's very little to Java as far as syntax goes, it's basically C++ without MI, operator overloading or real templates. The real value is in the runtime: the standard library, the concurrency model, the virtual machine. That part is threatened by the litigation as well.

Building your own competing JVM can, as this suit demonstrated, get you sued too.

Is Microsoft's runtime any more open? I've been more and more impressed with Mono lately. Does it potentially face the same issues Java is facing now?

Some of the patents that Oracle is suing Google over are pretty general and would apply to either Mono or Microsoft's own .NET runtime as well as many other similar pieces of code in the wild. As long as software patents are taken seriously, any large blob of code is facing similar "issues".

This may answer some of your questions:


Actually, it faces even bigger issues, since you essentially have to be using a version of Mono that is paid for. Java at least has a solid grant of patents so long as you're using the GPL version.

Microsoft has intentionally worded their licenses to allow them to sue anyone who isn't paying for their software in the future.

In a certain sense, this is the intent of the GPL rearing its ugly head. When Oracle says Android violates their copyright, it seems like what they mean is they've taken GPL code (the Java standard) and re-implemented it under a different license. Though I'm in no way deep in enough to say that authoritatively, and like the entire suit the rationale seems questionable to say the least.

A potential Microsoft suit looks to be allowed by the Mono licensing.

I'm not sure what you're referring to in a couple of places:

> since you essentially have to be using a version of Mono that is paid for

What do you mean? The MS-Novel patent deal was done long time ago. Now, there is a better document in place: http://www.microsoft.com/interop/cp/default.mspx - both C# and CLI are covered and no implementation is pointed at. It stops them from suing for "making, using, selling, offering for sale, importing or distributing any implementation" - as long as it's compliant with specs. Stress is on "any implementation" here. That document doesn't mention any specific party and doesn't limit the promise to any specific group as far as I can see.

> Microsoft has intentionally worded their licenses to allow them to sue anyone who isn't paying for their software in the future.

[citation needed]

Okay, I think I was confusing Mono with Moonlight, which as I see it is not covered by that document. (And Silverlight is an increasingly important piece of the .NET pie.)

Also, given Microsoft's business model and track record, it seems unlikely that .NET is going to hit a steady stable state any time soon, unlike Java which may be stuck at 6 indefinitely. The consequence of this is that Microsoft can break everything, including their promises, anytime they want by bumping the version number and removing the license for the new version. Would it be a good business decision for them? Probably not. But I think this move from Oracle shows that it is a very real possibility, if Microsoft decides they should be taking cues from Oracle (which given Oracle's track record makes a lot of sense, even if this move seems bonkers.)

> Its a matter of time before something replaces it.

replaces it for new development, perhaps. java itself will probably never go away now, though, lawsuit or not. its footprint is just too huge now. at worst, it'll just stagnate.

What's the barrier? Oracle has business relationships with most companies using Java and this does not affect OpenJDK, IBM, or any other licensee.

"Oracle’s recent lawsuit against Google and open source"

The lawsuit is against Google, not the OpenJDK. It seems disingenuous to keep linking Google's situation with Open Source in general. Google isn't using the OpenJDK. Google didn't want to spend the money and now has to deal with that decision. A simple "We are not going to a conference sponsored by someone suing us" would be good enough. Adobe and Google must have sent their people to the same blog training program.

> Google didn't want to spend the money and now has to deal with that decision.

It's not that they didn't want to pay, they wanted to make a fully open source mobile OS. Going with OpenJDK would have forced them to make Android GPL which would have been a no-no for carriers and going with Sun's licensed JVM would have made Android not open source. So Google had to go with their own VM if they wanted to have an open source mobile OS based on Java.

They wanted Java, but didn't want OpenJDK or a licensed VM. At that point, I gotta wonder why they didn't pull a Microsoft and pick / develop a different language? They use Python a lot. Buying a license from Sun that allowed for a open vm would have probably worked given how money starved Sun was.

/edit/ I should point out I am worried about what other VMs this has implications for and not really liking software patents in the first place (if it can be copyrighted, I don't think it should be patentable).

Why would the GPL have been a "no-no" for carriers? Linux is GPL'd, and I'm pretty sure Android uses that.

I can't think of a single Android device that doesn't let you install your own build on it. (After some coercing, of course.)

> Why would the GPL have been a "no-no" for carriers?

Because carriers are staggeringly stupid, I think.

> I can't think of a single Android device that doesn't let you install your own build on it.

I wish that were true: "Unlike the DROID, the Milestone has a bootloader that only allows signed Firmware to load. This prevents users from booting Custom ROM images not signed by Motorola that have become popular in the Droid modding community."


Many Motorola phones are similarly restricted. Did I mention carriers are phenomenally stupid?

Didn't that finally get cracked, though?

If carriers really wanted to lock down devices, they would use techniques like the crypto cards ATMs have do. Instead, they do the equivalent of asking you really nicely not to root the device.

Motorola tries harder than most, though, I will agree.

> Didn't that finally get cracked, though?

Not unless it was done quite recently. The Droid X and Droid 2 are still locked down.

> If carriers really wanted to lock down devices, they would use techniques like the crypto cards ATMs have do.

From what I've read the Droid X's bootloader is quite a bit like that.

The kernel is GPL, but that doesn't stop you to write non-GPL apps on top of it. However, using a GPL OpenJDK would have made every single app on Android GPL.

No, OpenJDK license is GPL + classpath exception:


Ie. apps that only use the Java system libraries don't have to be GPL'ed, only modifications of the VM itself. Google didn't want to place this restriction on Android vendors.

The kernel license has an explicit exception to the GPL for user programs: http://www.kernel.org/pub/linux/kernel/COPYING

No, that's related to writing kernel modules. I'm talking about writing propriety apps on a gnu/linux distribution, android in that case. This is totally legal and doesn't depend at all on the kernel license exception. Think skype on ubuntu. However, if the toolkit/sdk you're using on a gnu/linux distribution is GPL, then all your apps will have to be GPL, unless you use a non-gpl sdk or write your own non-gpl sdk as Google did.

Using a GPL-license SDK makes every app written with the SDK GPL? That doesn't make sense.

It makes sense from the perspective of a mutually-beneficial open source deal: you link against my open software, so you open yours too.

also, from: http://www.gnu.org/licenses/gpl.html

> The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read <http://www.gnu.org/philosophy/why-not-lgpl.html>.

If you attack an open-source project (which the pertinent parts are) with general software patents, how is that not an attack on open source? What Oracle is doing is absolutely no different than what SCO was engaged in.

Note that Oracle's general patents on rudimentary VM and runtime characteristics could be applied against any number of non-Java targets. There just aren't many with the pockets as deep as Google.

> What Oracle is doing is absolutely no different than what SCO was engaged in.

SCO asserted ownership of code they didn't own and licenses they didn't have. How is that even remotely similar?

Both are extorting open source projects based upon dubious claims. In the SCO case the claim was that Linux consciously or unconsciously borrowed from SCO's purported property because there are superficial similarities. In this case, Oracle is claiming that Android borrowed from their newly gained property because there are superficial similarities to some vague patents which virtually any modern VM runtime runs afoul of.

I think the similarity is overwhelmingly obvious, so demanding that I prove that it is "remotely" similar is pretty aggressive and uncalled for.

How hard would it be for Google to fork OpenJDK and release Guava 7 instead (with all the niceties we're waiting for). If they made it open they probably could get a lot of people to switch over.

That would not really solve the problem. The Sun/Oracle patent grant only extends to JDKs that conform to the specification, and pass all tests in the test suite. That is, if you can license the test suite (see Apache Harmony).


Another section of that same page gives a different interpretation: http://en.swpat.org/wiki/Java_and_patents#OpenJDK:_the_GPLv2... OpenJDK apparently comes with its own patent grant which should cover any derivatives, compatible or not.

It is implicit. IANAL, but it is supposedly very weak (see e.g. Novell-Microsoft deal). E.g. the European Commission, after analysis, thinks it does not protect forks. For a good explanation, see:


FSF has been urging people to use GPLv3 because it has an explicit patent grant (amongst other reasons).

Yeah, these lines look great: "OpenJDK is has been distributed by Oracle under GPLv2.[1] GPLv2 includes two implicit patent licences, so users of OpenJDK should be safe, and modified versions of OpenJDK should also be safe (even if they're heavily modified).

The protections in the GPL are unconditional. The software doesn't have to comply with any specifications in order to benefit from these protections."

That's a very interesting consequence of the GPL I hadn't considered before. I wonder where the law would draw the line in regards to modification. I mean, if I download OpenJDK, and delete 99% of it and then code something else, is it still the same software? Does my new program have the same patent protection?

> Does my new program have the same patent protection?

I would say it does to the same extent all the other GPL constraints stay in force. I think that the GPL stays in force down to the smallest unit of copyrightable code - it has to, or you would be legally unable to distribute 1% of the project on its own which makes no sense.

However this would be a big leap: Android is Apache Licensed. Bringing GPL code in to Dalvik will make it (and any other components that are linked to it) GPL licensed, which in turn force all the carriers and handset makers to distribute their own customizations. I'm not sure how far that would extend through Android's code base but it could remove one of the most attractive features of Android for vendors - the fact they can put their own proprietary technology into it and customize it how they like.

Why is Oracle suing Google not ok but Sun suing Microsoft for essentially the same reason ok?

Sun/Microsoft was a breach of contract lawsuit.

Oracle/Google is a patent lawsuit.

Fundamentally, both lawsuits appear to be about embrace-and-extend.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact