Hacker News new | comments | show | ask | jobs | submit login
Oracle sues Google over use of Java in Android (marketwatch.com)
452 points by jbarham 2655 days ago | hide | past | web | 326 comments | favorite

The biggest issue I see with Oracle's lawsuit is not with Android itself, but the future of Java as an open platform.

The claims are pretty serious, and Oracle is going straight for the jugular. It'll be interesting to see how it shakes out, but I've got to hope that Google will come out of this in good shape for the sake of Java. It's unfortunate that Oracle is interpreting Google's implementation of Dalvik and a Java-based system as a direct infringement upon their patents.

Android aside, it raises some fairly serious questions around Java's future development as a platform vis a vis the uncertainty recently resolved between Microsoft and the Mono project. While Microsoft extended their "Community Promise" to Mono implementors and users, Oracle seems to be taking the opposite approach to companies developing alternate JVMs and Java-based devices. It'll be interesting to see Oracle's stance toward other alternate JVMs such as IBM's.

If you're curious, the original complaint is here: http://www.scribd.com/doc/35811761/Oracle-s-complaint-agains...

The patents upon which Oracle claims infringement are:

- Protection domains to provide security in a computer system (6,125,447)

- Controlling Access to a Resource (6,192,476)

- Method and apparatus for pre-processing and packaging class files (5,966,702)

- System and method for dynamic preloading of classes through memory space cloning of a master runtime system process (7,426,720)

- Interpreting functions utilizing a hybrid of virtual and native machine instructions (6,910,205)

- Method and system for performing static initialization (6,061,520)

This article from 2007 might be of interest:

"How Google routed around Sun's IP-based licensing restrictions on Java ME": http://www.betaversion.org/~stefano/linotype/news/110/

It's apparently not a complete surprise, this guy in 2007 predicted that

    ... in the future expect a shit-load of IP-related lawsuits
    on this.

Another interesting tidbit from the article you linked:

The trick is that Google doesn’t claim that Android is a Java platform, although it can run some programs written with the Java language and against some derived version of the Java class library. Sun could prevent this if they had a patent on the standard class library, but they don’t and, even if they did, I strongly doubt it would be enforceable since Android doesn’t claim to be compatible (and in fact, could very well claim that their subset/superset is an innovation on the existing patent and challenge Sun’s position).

If by "interesting" you mean "totally misunderstands patent law". What Google claims is irrelevant; either they use Oracle's patented techniques or they don't.

If only patent suits were so cut-and-dry.

In software, it's really easy to not know if you're violating IP.

"It'll be interesting to see Oracle's stance toward other alternate JVMs such as IBM's."

IBM could completely paralyze the entire computer industry with their portfolio. That they don't is a testament to how much money they earn in simply letting others do the "hard" PC stuff while they singularly engulf the big iron market.

IBM was the only company that I know of that actually outlasted the US government in antitrust litigation. The DoJ, after 15 YEARS of litigation, simply dropped the case due to lack of will and resources to continue. Oracle wouldn't dare try IBM in court.

IBM's JVM is licensed. They had a legal agreement with Sun over it and I have no reason to believe that it won't carry over with Oracle.

Also, as the article j-g-faustus linked pointed, Google did something special to avoid the GPL, so JVMs that followed the usual rules won't be affected.

This makes me think that cscotta's point on uncertainty is not so strong. It'll be certainly an unpopular measure among developers, but Oracle can say that the case against Google is similar to the one against Microsoft and use the usual "fragmentation" argument.

That's interesting. I wonder if Google could buy IBM and then have them drop the lawsuit?

I don't know if you're trying to make a joke, but that might be a bit difficult for Google to do since IBM is worth more than they are.

http://www.google.com/finance?catid=66529330&sort=MARKET... Cap

I wasn't trying to make a joke. I figured Google would have a very high market valuation compared to IBM. But my point still stands, why can't Google buy a company that owns some patents that Oracle is currently infringing on?

Jonathan Schwartz had a great article about patents and IP where he relayed some stories about the stand offs between companies with regards to patents. Seems very relevant here: http://jonathanischwartz.wordpress.com/2010/03/09/good-artis...

It's quite possible that Google already owns some. We will find out when and if they find a counter-suit. Counterclaims of patent infringement are a standard tactic.

I assume Oracle is angling for a settlement here. I can't imagine they want to make Android apps not be written in Java, they just want a piece.

I think the V8 technology in Chrome is based on much older Smalltalk VM technology that Google bought. Given that everything in software violates software patents, I think it is reasonable to assume that Java does.

There's no reason this comment should be voted down.

There's no reason your comment should be voted down either. I upvoted it at least.

For those of you who are relatively new here, meta-discussion is discouraged on hacker news. Now everyone quickly downvote me!

Oracle may claim that Google infringes on all those patents, but they'll never sue. Patents are just a nuclear deterrent.

Edit: Wow, -7 and dropping. I guess I should have included a sarcasm symbol. Spoiler: My point was that patents do get used, and this argument about them just being for defense is nonsense.

The first sentence in TFA:

    Oracle Corp. said Thursday it has filed a copyright-infringement lawsuit against Google Inc.

The article is by some moron journalist who doesn't know that there's a difference between patents and copyrights.

To be fair to the journalist concerned, if you read to the bottom of the complaint you'll find that there are 7 claims of patent infringement and 1 of copyright infringement.

Well they just sued based on those patents, so I guess it's nuclear war now?

A nuclear deterrent only works if both sides have nukes. Google is a pretty young company, with few patents. Oracle is a much older company, that bought many old companies along the way. Oracle's patent portfolio vastly outstrips that of Google.

We currently have enough nukes to destroy the world many times over. If you take the comparison between patents and nukes to its logical conclusion, the same probably holds. Google vs. Oracle == mutually assured destruction, regardless of how much bigger Oracle's portfolio is.

Google has no patents? I doubt that.

Well, there would be no reason to build a defense in the first place if NOBODY ever went on the offense.

FYI there was never a global nuclear holocaust; but people still built nukes. In fact there was never direct fighting between the US and Russia...

At the risk of being a pedantic jerk, the US did send troops to fight on the side of the Czar against the Bolsheviks. They were withdrawn when they found out how bad the Czarists were. http://en.wikipedia.org/wiki/Polar_Bear_Expedition

I'm assuming he was talking about the cold war period. Russia and the US didn't have nukes 1918-1919.

Where in that link does it say that the Czarists were bad?

Sorry, missing reference. I probably overstated the cause and effect, but it does seem to me that it contributed to the morale problems of the American troops.

>> The American commanders in the field reported that the Czarist reign of terror was far more horrific and disturbing that the actions of the Reds. The American forces also discovered that the vast majority of Russians sympathized with the Bolsheviks and supported the revolution. In the end, the American troops were brought home without any fanfare, and the ordeal was considered one of the most ill-conceived interventions in American history up to that time.

From http://rationalrevolution.net/war/russian_revolution.htm

> Interpreting functions utilizing a hybrid of virtual and native machine instructions

Are they serious? Unless I'm missing something this is a fantastic joke, JITs far predate Java.

Careful. The name of a title and its actual claims are two very different things.

Well, here's claim 1:

In a computer system, a method for increasing the execution speed of virtual machine instructions, the method comprising:

- inputting virtual machine instructions for a function;

- compiling a portion of the function into at least one native machine instruction so that the function includes both virtual and native machine instruction; and

- overwriting a selected virtual machine instruction of the function with a new virtual machine instruction, the new virtual machine instruction specifying execution of at least one native machine instruction.

You think that sounds like an idea worthy of a patent? Probably depends if you're a programmer or a patent lawyer.

I'll leave you to judge the merits of the other 46 claims, the next of which are:

2. Claim 1 in a box

3. Claim 1 with a fox

It sounds like the sort of stuff that Smalltalk implementations were doing before Java existed. See http://en.wikipedia.org/wiki/Just-in-time_compilation#Histor... for more. (I wonder whether Sun's patents were filed for Self?)

Sun bought several of these, especially the developers of Strongtalk, a compiled, statically typed dialect of Smalltalk. So if there is any prior art on this, chances are that all the related patents are now in Oracle's portfolio.


A patent isn't an idea. It's the specific method for implementing an idea. If there is a way to get the same end result using a completely different method, the patent doesn't apply.

A "method" which is not being acted out physically, but instead is in someone's head or written down on paper is a type of idea. So some ideas are patentable, others aren't. The mantra that ideas aren't patentable presumes some other category of thought completely apart from ideas. Besides, what could be more purely and precisely methodical than machine-readable source code, in this case Smalltalk source code?


And the first few claims generally paint way over the lines. It's in the later claims that you talk about the unique stuff that you did.

How does that relate to my comment that the patent in question sounds like it could have come out of Sun's work on optimizing Smalltalk instead of their later Java implementation? (Note that even if Sun could have worked around their own patents, they would have had no reason to bother.)

Again, as tptacek already said: careful. The summary isn't the actual claim either. The devil is in the details.

The above is the actual first claim from the patent. Of course it's subject to interpretation in context, but that is the text of the first claim.

Careful. Google's implementation and the patent itself are two very different things.

I'm guessing, but I suspect working around this & other patents was why a JIT took so long to ship in Android.

You can't write a good JIT overnight. You can't adapt an existing JIT for a JVM-like VM to Dalvik either. I don't think working around patents had much to do with it, especially since they got sued anyway.

Careful. Hotspot compiling was introduced with the JVM.

There is prior art in Smaltalk and Self ... the Hotspot compiler itself is an old Smaltalk implementation that Sun bought, open-sourced recently by SUN btw ... http://www.strongtalk.org/

I'm pretty sure the prior art was just with Self. Smalltalk had polymorphic cache tables, but it was Self that was doing really aggressive in-lining of those caches (e.g. in-lining the method and all code the method called right into the cache). Strongtalk was a Smalltalk implementation of the result of the Self research (plus optional H&M type checking) but before they released anything they got bought by Sun to get the expertise for their up coming HotSpot VM.

So bottom line: Oracle may actually own all prior art via Sun (Self research was done at Sun).

> it raises some fairly serious questions around Java's future development as a platform vis a vis the uncertainty recently resolved between Microsoft and the Mono project

Microsoft's "Community Promise" does not cover the whole .NET stack - it covers only the ECMA standardized parts. It has "It's a trap" written all over it.

I would also think twice before relying on promises from a convicted monopoly abuser.

Now I am not advocating that MS should be given a free hand. But what does being a convicted monopoly abuser have to do with patent traps?

> But what does being a convicted monopoly abuser have to do with patent traps?

It has been already demonstrated they are willing to place profits above ethical and responsible (not to say lawful) behavior.

I think he stated that to indicate that we shouldn't just take Microsoft at its word that it won't attempt to litigate Mono et al. They'll find a loophole in the "Community Promise" (possibly the loophole described above) and try to hurt their enemies.

I shouldn't still be surprised by this shit, but the claims of patent 5,966,702 are basically "There was some data and we normalized it". Seriously. WTF?

Can we start putting questions like these on 1st year bachelors exams, so we can finally prove that someone "reasonably skilled in the arts" can figure it out?

"Java is the single most important software we've ever acquired," Oracle Chief Executive Larry Ellison said during a conference call [...]

... "and if you don't do everything I say, I'll blow up the moon! Ah-hahahahah!"

How do you not love this guy? Somebody get him a black cape.

He is just trying to save /more/ children in Africa. http://online.wsj.com/article/NA_WSJ_PUB:SB10001424052748704...

Larry Ellison is a saint! ... and an asshole.

The letter he wrote for the Giving Pledge website actually shows a bit of him being a saint and an asshole:


To whom it may concern,

Many years ago, I put virtually all of my assets into a trust with the intent of giving away at least 95% of my wealth to charitable causes. I have already given hundreds of millions of dollars to medical research and education, and I will give billions more over time. Until now, I have done this giving quietly – because I have long believed that charitable giving is a personal and private matter. So why am I going public now? Warren Buffett personally asked me to write this letter because he said I would be “setting an example” and “influencing others” to give. I hope he’s right.

Larry Ellison

On one hand, he is giving a lot, on the other, you can tell he couldn't care less about the pledge and the letter.

My take on the letter is that he really doesn't like Buffet trying to push him around. I can understand wanting to give quietly; that is how I would prefer to give.

This letter increased my admiration of the man greatly.

Why should he care about the pledge? Taking the letter at face value, he's already gone far further ("at least 95% of my wealth") than the pledgers, and he's done it in private. I can totally understand him not wanting to write such a letter and doing it only as a favour to Buffett, with a certain skepticism. Well-founded skepticism too.

(Or maybe he's just pissed that he had to blow his cover as a supervillain.)

I wonder how much did google give away till now...

"In 2004, when Google founders Larry Page and Sergey Brin wrote to prospective shareholders about their vision for the company, they outlined a commitment to contribute significant resources, including 1% of Google's equity and profits in some form, as well as employee time, to address some of the world's most urgent problems. That commitment became a range of giving initiatives including Google.org."

- http://www.google.org/about.html

Think "Google Summer of Code" for starters..

That's actually pretty rad.

I'd throw him to a hungry pack of grammar nazis just for the 'software' bit.

Maybe he's irritated that Google has been getting all the 'evil' headlines lately and wanted to outdo them.

My dream for wrestling my profession away from the lawyers and CEOs is the formation of a programmer's union. The union would mainly be concerned with issues like these patents. A strike would be called on any company that tried to use software patents. A strike would mean not only that the programmers of that company would stop working, but also all programmers nationwide would refuse to work on that company's products and platforms.

If such a union existed it would immediately stop the use of software patents. The union could also lobby congress for the elimination of software patents and could work on other programmer related laws, establish standards bodies, etc. IOW, give programmers some say in the industry that is currently driven by the suits.

> If such a union existed it would immediately stop the use of software patents.

Or companies would just hire overseas programmers...

Global union, man.

They tried that back in the 1800s. That's where the USSR came from.

I'd rather see us become licensed professionals, like CPAs, with a large professional organization (like the AICPA) to lobby for us on issues like software patents, etc.

I see your point, but I worry about this creating barriers for people wanting to get into our profession. As it stands, you can still get a job in this field without any formal education in it, as long as you can show you've got the goods. I'm quite fond of this fact, and there is some real talent out there that might get the door shut in their face if there were a wall of licensing.

I'd hate to be in a profession where one mistake means you can never work again (doctors, lawyers, etc).

If you drop the patent stuff and focus on fair pay I'm in.

Fair pay for developers? Quit your whining.

Do you know why sports stars make so much money? Because the owners make so much money and the sports stars had a union that was able to get more of that pie for them. Since, you know, without the players there would be no sport.

How much money is there in programming compared to sports?

I like this headline because if we sent it back in time 30 years it wouldn't make any sense at all.

Looking over the front page, I wonder what the people thirty years ago would have made of some of the other headlines:

"Making GitHub More Open: Git-backed Wikis"

"Twitter Polling in the Cloud in 30s using PiCloud"

or, my favorite:

"Burning man defeats PayPal"

(I envision something like the Biblical story of Jesus driving money-changers out of a temple, but this time, Jesus lights himself on fire first. It's very intimidating.)

> Looking over the front page, I wonder what the people thirty years ago would have made of some of the other headlines

People thirty years ago? Heck, I wonder what my in-laws would make of those headlines :)

"Making GitHub More Open: Git-backed Wikis" wouldn't have made sense even 15 years ago.

"Twitter Polling in the Cloud in 30s using PiCloud" wouldn't have made sense only 5 years ago.

"Using coffee as robot fuel will lead to certain doom! If only I could make them understand -- all 10^100 of them!", said the prophet.

Oh, that made my day. I'm still going to laugh every time I think about this days from now.

Fantastic observation ;)

The most worrisome factor in this lawsuit is how this will impact java as a language and a platform. If Google loses this lawsuit, java as a language and platform could easily die. Many companies would refuse to use it, just to be on the safe side and avoid litigation from Oracle.

Oracle probably doesn't realize the massive damage it has done to the java platform just by going forward with this suit. Due to the looming threat of Oracle closing the java platform, startups and companies may begin avoiding the java platform in the same way they avoid the Microsoft stack. In fact, I can't see any reason why I WOULDN'T choose the .NET framework over java if both are so closed. At least C# has lambdas...

> At least C# has lambdas...

And an open-source alternative which compared to other open-source Java efforts, is in pretty good shape, and also has a pledge from Microsoft.

I feel attracted by .NET, but every time I end up using it I wish I didn't ... it's like every year I wish for summer to go to the beach, but when it's finally summer and I'm at the beach ... it's too hot, it's too crowded, the water is dirty and I don't want to be there :)

If you like lambdas, you'd probably like F# better: lighter syntax, types are inferred, and it looks like it's quite well supported by Microsoft.

But of course, if you consider F#, you may want to use the more free and open Ocaml.

You can like lambdas without wanting to go fully functional... just like you can like objects without wanting to go fully object-oriented.

Well, I'm not sure. First, assignments are evil[1], which means you should avoid setters. Second, inheritance is evil, for similar reasons (thick interface). Third, every time I saw mixins or class polymorphism, lambdas or sum types, would have been simpler, respectively.

Once you like lambdas, functional programming becomes more attractive than a black hole.

[1]: http://www.loup-vaillant.fr/articles/assignment

Sum types are not as dynamically extensible at runtime, or by third party libraries, as class polymorphism.

For the particular cases I saw, runtime extensibility never mattered. (Do you have one where it does?)

And extending a third party sum type is not very hard:

  data LibType = Zero
               | One Int
               | Two Int Int
  data MyType  = ZeroOneTwo LibType
               | Three Int Int Int
(It of course implies that you use MyType instead of LibType in your code.)

Finally, if you really want to extend a sum type, no work around allowed, you might want to look at Ocaml's variant types.

The keywords were "extensible dynamically at runtime", not just "extensible, period".

Runtime extensibility matters at systems that you cannot shut down, where have to upgrade live systems, for example. If you are doing just "run it once again, no big deal" application, then it does not matter, you are right.

The code using LibType is code you don't control; you can't change it to use MyType instead. Indeed, you don't even have the source code to it. That's also why the extensibility happens at runtime.

So What? Just do what you would have done in Java without inheritance: aggregate. For each function that matters, you can write a new one that handle the extra case:

   new_function ZeroOneTwo x = old_function x
   new_function Three a b c  = -- handling new case

I'm not sure if you're being willfully obtuse or not. The functions that matter are functions you didn't write. You don't have the source code to them. You cannot rewrite them with an extra case because you can't rewrite all the calling sites, because those are baked into executable binaries.

The world of shrink-wrapped closed-source software may be a foreign world to many functional advocates, but it's the world I live in, and extensibility here is often done with polymorphism and inheritance. The code in the closed-source kernel (application, framework, whatever) interacts with values polymorphically, with modules and third parties relying on inheritance and overriding to work their behaviour into the system.

You want a market for components, where both buyers and sellers are protected; sellers do not necessarily want to reveal their source code, and buyers especially don't. Binary, executable code is the medium of interchange. In order to fit these things together you need protocols: sets of expected messages and documented responses. OO polymorphic interfaces, in other words. Inheritance at the interface level is necessary, and at the implementation level it decreases the burden somewhat - using aggregation instead can lead to problems of identity (the sub-parts of an aggregate each have a different one, since they are mutable).

First, I believe that the world of shrink-wrapped proprietary software should die.

Second, I fail to see how inheritance solves your problem: "The code using LibType is code you don't control; you can't change it to use MyType instead."

OK, let's try this with inheritance.

  class LibType                { Handles 3 cases       }
  class MyType extends LibType { Handles a fourth case }
Now tell me: how would you make the code of the library use an object of type `MyType` instead of `LibType`? If you don't control its code, I see only one way: somewhere, this library expects an object of type `LibType` as a parameter.

Interestingly, idiomatic functional programming do just that: passing functions as parameters. Or tuples of functions, in that case. You know that an object is just a tuple, right?. For instance:

  // Statically typed, Class based OO language
  class Foo {
    int   bar(int,);
    float baz(float, int);
    int x;

  -- Haskell
  data Foo = Foo (Int -> Int)
                 (Float -> Int -> Int)

  -- The same, with record syntax. (for easy access)
  data Foo = Foo { bar :: Int -> Int
                   baz :: Float -> Int -> Int
                   x   :: Int
Note that the functions in objects of type Foo aren't fixed. So I can override all I want. Class Polymorphism is cool, but I can do the same with mere parametric polymorphism if I really need to. Sure, the library must be designed for extensibility in the first place, but the same is true about OO libraries: inheriting from a class that isn't designed with inheritance in mind is dangerous.

Dear down voter: would you care to explain which line I crossed please?

Note that both F# and Ocaml have object systems and have excellent support for imperative style programming.


Note that OO programming in F# requires a lot of type annotations (even more than in C#, you need to explicitly upcast).

Those are called structs ;-)

Not everyone accepts that the object systems in Java and .NET are fully object-oriented.

Considering that no definition of "object-oriented" is accepted by everyone, I'm not sure your criticism is valid.

My suggestion: drop the term "object-oriented" altogether, and refer to more specific features.

Which brings me back round to my initial assertion:

>> You can like lambdas without wanting to go fully functional

Well, F# and Ocaml aren't purely functional… so you're right.

F# has better library support (at least if you're on Windows).

It also has monads.

It has monad syntax, but like C# it has no support for higher-kinded polymorphism (contextfree.livejournal.com) so unlike Haskell there's no way to create generic helper methods that work with every monad type.

(Not to discourage anyone from trying F#, which is a nice language anyway.)

Why should java as a platform die? Most people use the Sun JVM and you will still be able to use that others like IBM have contracts with Sun. So no problem there.

So if the JVM goes closed source it still wont go away because the support of Sun/Oracle will stay the same.

It would have a big impact but not as big as you discribe. I would still take the JVM because the the languages are better and I don't want to be bound to windows spezialy for servers.

Companies would be afraid of the whims of Oracle. I honestly believe that most individuals would trust Microsoft over Oracle. Microsoft is no longer a huge evil empire. Their goal is to augment their bottom line, and in the case of the .NET framework, their goals and yours would align.

Additionally, the languages in the JVM are not better. Anyone who has used C# can tell you that Microsoft did an extremely good job designing that language. It can almost be stated that C# is hands down better than Java as a language (its dependency on Microsoft products aside).

Also, what do you mean by "languages" as a plural? The other JVM based language are free of Oracle's control. If they wanted, they could use IcedTea, so Java's really the only platform at stake here.

According to this thread on the Android mailing list, Oracle tried to settle privately with Google but Google refused. This may mean that Google has a strong case against those patents:


Excuse the really really obvious question, but how can you sue somebody for intellectual property infringement on open-source software? Didn't you already give anybody the license to do what they wanted with it? If they've violated the license terms in some way, isn't that different from IP infringement?

It's important to understand that Android doesn't use Oracle's open-source OpenJDK. An argument could be made that Oracle licenses the necessary patents only for OpenJDK and not for alternate implementations such as Dalvik. An argument could be made that Oracle licenses patents only for JVMs that are TCK-compliant, which Dalvik isn't. An argument could be made that Oracle licenses patents for GPLed JVMs but not for ASL-licensed JVMs (because ASL is "too free" perhaps?)

Thank you for this explanation. Until reading it this way my understanding of the whole affair was somewhat wrong.

Given that Oracle doesn't seem shy about going after a giant like Google makes me wonder what other software Sun owned the rights to that might be even remotely popular. If I were a company using a lot of old Sun IP in even moderately unique ways, I'd be a little concerned right now.

MySQL? BerkeleyDB?

Well, Sun own MySQL. But the drop-in replacement MySQL engine makers (infobright, percona, etc) might be a little worried.

The comment you're replying to pointed out that Oracle owns MySQL (acquired with Sun) and BerkeleyDB (acquired with SleepyCat).

I had forgotten they also owned BerkeleyDB (obviously I know that Oracle own Sun, is that why I'm getting downmodded?).

But my point still stands: makers of replacement engines for MySQL could be in violation of MySQL-related patents, which Oracle could then sue over.

They could, but they haven't, and probably won't. Oracle had a big database-related portfolio long before they acquired Sun/MySQL, which had relatively few. They even bought Innobase, makers of the InnoDB engine a few years ago.

Other database vendors (Percona et al., not IBM) don't have assets for Oracle to take, don't directly threaten their core business, and going after them would get Oracle in trouble with regulators.

Better to land a tuna than chase sardines around.

Thanks, it naively hadn't occurred to me that Android would be using a non-Sun JVM, and given what you've said it seems that would be a viable route for an IP lawsuit (though it still seems in pretty bad faith).

Dalvik would be better if Google had just licensed Oracle's Sun JVM or used the open source version. As an occasional Android developer I am constantly banging against the limitations and performance of Dalvik.

It doesn't do memory management nearly as well as the JVM, and it handles dynamic dispatch and one-off closure hacks (local classes) slowly. It won't easily accept generated bytecodes. It has mysterious performance headaches (mostly memory management related I think).

I'd prefer that Oracle go to heck with these bogus patents for the health of the industry but Google should have just cooperated from the start.

On the flip side, how do you know you wouldn't run up against those limitations on a phone that used OpenJDK? I don't do much mobile dev, but I've had friends that did JavaME development, and they didn't seem to like it any more than Android. Dalvik was designed specifically because Sun's JVM performed poorly on memory-constrained devices.

In other words, your issues may be caused by mobile development, not by Android development.

The Sun JVM is a lot of things and got a lot better and a lot faster over time, but it is an astounding memory hog. Only thing I've ever seen that will (seriously) reserve 64 bits for a Boolean field on a 64-bit VM.

Given that Eric Schmidt is the former head of Java at Sun, it seems unlikely they'd have written their own JVM if they didn't have a good reason to do so. Also, JavaME is awful.

Dalvik is a register based VM, as opposed the the stack based JVM.

Also Sun removed the classpath exception when they put JavaME under the GPL. That means if you used the GPL'ed version of Java on a mobile device then it becomes viral - including to any application code. (That's why most GPL'ed Java programs use the classpath exception).

From Sun's point of view, this was a good idea because it allowed them to protect JavaME licence revenue. Google saw JavaME as outdated, though, so instead of licencing it they took the Apache licensed Harmony project (ie, a clean room, Apache licensed version of the Java class libraries) and build Android around it.

There wasn't any cooperation available, unless Google wanted to pay megabucks for Java ME, and force their developer chain to do the same: Java ME was never open sourced.

Essentially, Sun said "We will give away Java, Open Source, as we planned to do. Oh, not mobile, because Nokia uses it and it makes us lots of money. Of course, we all understand reimplementing Java ME would be far too much work for any one company to do. Feel free to license."

Google said "Eh, we'll just write our own JVM that runs on phones, thanks. That's how we roll over here."

Now there are lawsuits, because Sun tried hard to make sure you had to pay if you wanted Java on mobile devices.

You haven't worked with Java ME then ;)

Dalvik limitations are very justified, and even if phones improve over time, Dalvik also evolves.

Also when going head to head with Apple and Microsoft on such a far-reaching platform, having full control over your platform is valuable.

another technical reason for going with a new VM: every process (e.g every app) runs its own VM for security purposes. dalvik claims to have a much lower memory footprint.


I know "great comment" comments are silly, especially in a vote-based comment system, but seriously, great comment. Very instructive.

What if I take the open source OracleJVM and change every line, so that it become Dalvik? Wouldn't it still be derived from OracleJVM and hence covered? The approach would only be possible because Dalvik is open source, too, of course.

Your implementing a different instruction set.

Of course you can. There'd be no such thing as an enforceable software patent if any company could just sponsor an open source project to implement each part of its product that infringed a patent. Presumably --- hopefully 'grellas will clear this up --- Oracle can measure damages incurred by Google supplanting Sun/Oracle Java with their own Java in terms of percentage points of global smartphone revenue.

Here's some more context:


I think you slightly misinterpreted Seldo's point. I think what he's getting at is that Java was made open source by Sun. At the very least I'd say that raises some kind of estoppel defense against any alleged infringement of Sun patents.

Patent owners can't just go around encouraging people to infringe, and then come back later and sue.

Sun licensed Java under the GPL which gives access to all of the patents on Java. But Google uses its own Java, not Sun's GPL licensed one, maybe they should have gone with the GPL instead...

Why didn't they do it ? Is it because of lack of ARM support ?

It was too bloated, among other things

So if I, as a company, release something as open source (licensing the patents[1] with no royalty to anyone who's interested, as long as they follow the rules in the license), then I, as the same company, can turn around and sue anyone who uses it for infringing those same patents?

[1] I assume that when software covered by patents is released as open source, the patents are also implicitly granted as part of the license, because if they weren't no one would be able to use it for anything because they would be infringing on the patents.

The only situation this can possible make sense in is if Google has somehow violated the license, thereby revoking their permission to use the relevant patents and exposing them to litigation.

You can probably sue somebody who uses different software that infringes your patents, which is what this lawsuit is about.

As others have said, it sounds like you misinterpreted the comment. The open-source software Seldo is referring to seems to be Java, not Android.

I'm struggling to understand this as well - I would have thought OSS licensing and software patents would be incompatible.

Sadly they are not.

This is why the W3C has a patent policy [1] to prevent contributed software and specifications from being covered by patents.

[1]: http://www.w3.org/Consortium/Patent-Policy-20040205/

If this still does not make any sense, realize that patents and copyrights, while both forms of IP, are completely different, legally. Also recall how open source GIF implementations were still covered by the Unisys patent.

Which is the sort of thing that did the other JEDEC members a fat lot of good when Rambus (spit) went on the warpath: http://en.wikipedia.org/wiki/Rambus#Lawsuits

I believe that was the purpose of the GPL3. You know, the one that nobody uses because it is too draconian.

Just because its open source doesn't mean that IP terms still can't be brought against you. Here's a simple example. Lets say that someone contributes someone else's patented algorithm into gcc. Now you ship gcc, not knowing about the patent infringement. All of a sudden you have a patent lawsuit on your hands.

This is probably the biggest reason why companies, like Microsoft, even when they do open source, don't accept contributions. Just because someone contributes specific code, doesn't mean they have the legal right to do so.

Sun showed that Java could be a timebomb. And in the hands of Larry Ellison, I think Google is just the first victim. Oracle will be going through uses of Java with a fine-tooth comb. Get your duck in order now.

Java isn't a timebomb. Sun has sold licenses to companies (ex. IBM) and the terms are well understood. Google didn't buy a license and is now going to deal with the outcome. If your running WebSphere or some licensed product this move will not affect you.

Plus, if you are an IT shop in the fortune 500, you company probably has closer ties with Oracle than Google.

// I am a little concerned with non-Java related VM's in case Oracle goes after them with these patents.

If the license doesn't mention patents, then it doesn't cover them. Copyright licenses and patent licenses are two different things. It's pathetic that the two are actually able to intersect in this manner.

The linked article is very unclear about what Oracle is suing about. From this article, it appears that they're claiming patent infringement (not copyright violation): http://www.ft.com/cms/s/2/d95fbb12-a671-11df-8767-00144feabd...

Sun/Oracle's Java implementation was released under the GPLv2, which doesn't include a patent license. I don't know if they included any patent license with the open source release. Even if they did, it doesn't help Google, because Android doesn't use the Sun/Oracle code, so it wouldn't benefit from any patent license that goes with it. Android is based on the Apache Harmony libraries on top of Google's own Dalvik VM. (Most of the Android code is Apache-licensed.) That code was all developed independent of Sun's Java and the implementation might infringe their patents, even though it doesn't use their code.

So take Sun's GPL Java, modify it - by say deleting all the sun code and inserting your own, then release the changes back to Oracle under the GPL!

I don't think that would hold up. The judge would consider it a new work, not a derivative, and therefore not covered by Sun's release of patents for the official JVM.

Google's an engineering company and I think they should fight back as such. Get together a team of your best and brightest, take Postgres, and turn it into a drop-in replacement for Oracle. And be very public about your efforts.

Because Oracle doesn't own any patents on the implementation of relational databases that they couldn't also sue Google over . . .

The most engineer-ish thing to do is a back of the envelope calculation:

    1. Estimate how much it'd cost to fight the suit.
    2. Estimate the probability of winning.
    3. Estimate the damages if you lose.
    4. Estimate Oracle's ask for licensing the patents.
If (1 + 2 * 3) < 4, fight, else settle. They probably have pretty good numbers on one, three, and four considering they likely discussed this with Oracle before fisticuffs began. The only perilous part is estimating two.

ah, but reputation matters here... you don't want to have a reputation for being easy money for patent trolls. Additionally, as google doesn't seem to be a patent troll, it's probably also in their interest to set legal precedents that weaken software patents.

I mean, obviously, this doesn't mean 'always fight' but it's another value you need to punch in to your equation, one weighing in on the 'fight' side.

In my business, a similar example would be the money I spend on running an aggressive abuse desk. Running a less-aggressive abuse desk would be cheaper, both in the work it takes and in customers I've lost, at least in the short term.

But in the long term, /because/ I have succeeded in making my service a hostile place for spammers, my abuse complaint rate is much lower than it would be otherwise. for a while, another VPS company rented a few servers from me... and in spite of being something like 1/60th of my size, they produced more abuse desk work than the rest of my customers combined. I believe, because I have an aggressive abuse desk.

(I mean, there are other costs... I've lost at least one legitimate customer I know of, because he was compromised and his box was spewing ssh attacks over the network. I shut him down with an email notice, the email went to the shut down box, so he never got it. )

my point is that there are real business reasons to fight that sometimes go beyond the immediate results of that fight.

>ah, but reputation matters here... you don't want to have a reputation for being easy money for patent trolls.

Giving into Oracle (who owns Sun's patents which were vast and probably only topped by IBM in the industry) is hardly going to give one the reputation for being patent troll bait.

And doing what's best for the rest of the industry obviously isn't something Google cares about.

> doing what's best for the rest of the industry obviously isn't something Google cares about.

I am sad that over the last year or so this has gone from a quiet fact of it being a corporation to a in-your-face "Google: do no evil unless you can make money". I guess each generation needs a company to fantasize about being a righteous white knight.

I never bought into the whole "do no evil" bit, but I sure got sick of dealing with the army of people who did.

It's interesting to watch google... they are actually handling themselves /much better/ than I would expect them to... but I think there are solid business reasons for this. Google makes money because it uses data most of us consider private to serve up ads for us.

If enough people stop trusting google, they will no longer be able to do this. Consumer trust is integral to their business. and there will always be tension, as to make money, they need to use at least some of that data to serve us ads, and some of us will take offense to that. I mean, really, there's no way they can run gmail profitably without doing things that I feel violates my privacy.

Now, in the short term, they could earn boatloads of money by violating this trust in a more direct manner... but in the long term, it would kill them. I think that ever since they went public there has been a constant war there, short term profits, vs long-term viability.

My own personal expectation was that this trust of google would not have lasted much past their IPO... it has lasted much longer than that.

Personally, I find it odd that now that this trust is eroding, people seem to be complaining more about net neutrality than about google pushing the limits of what they can do with our private data. Of course, I'm a hosting provider, and thus oppose regulation of my market.

Good points about Google.

Markets must be regulated. I know of no credible market theory that thinks there should be no regulation. As far as I can tell this is just a bizarre invention of American Libertarians.

If you could write laws to regulate the search market, what laws would you write? how would you ensure this wouldn't kill the next google competitor?

Maybe there is some space for a 3.1 step where you factor in the benefit from fighting even if you end up losing, but I doubt there is going to be one nearly as often as your VPS example.

in this case, they'd only get the benefit if they won; assuming that if they lost they'd have to pay the other guy's court expenses /and/ a license, it would make loosing more costly, but it would also make the win more valuable, possibly out of proportion to how much more costly it makes losing.

I agree with your analysis... another factor I guess is that Google will want to ensure that Oracle cannot repeat this trick whenever Oracle wants in the future (breach of license, not re-infringement).

My work has had bad experiences with Oracle license chenanigans. Of course Google probably has better lawyers than my work does!

Oracle would not want to "kill the golden goose" as it were. Assuming Google is infringing, the lawsuit is probably just a tactic to get a greater amount of licensing fees out of them than they would have been willing to pay without compulsion. It does Oracle no good to completely kill off Android, so any fees will certainly not be large enough to make the ecosystem unprofitable for Google.

Exactly, though any amount of licensing fees or control by Oracle cuts to the heart of Android's appeal to handset manufacturers.

I heard of a company that specialized in costing projects to switch from Microsoft Office to Open Office. None of their customers actually switched. They just took the costing of the project to Microsoft sales and said: "we want to pay this".

So here is the cheap way for Google to attack Oracle: Fund startups that research how much it costs to switch from Oracle servers to Postgres, then sell reports to Oracle customers so they can get lower prices.

I can't see that funding some startups makes you vulnerable to suits, but I am not a lawyer.

More likely, they find a few dozen patents that they own that Oracle is infringing, and turn around and counter-sue.

I agree that counter suing is one tactic.

Another one is that after all the denunciations and sabre-rattling, Google hand over a wad of cash to licence the technology and Oracle score a slice of Android sales.

Merely the threat of future lawsuits... justified or not, could harm Android adoption, so Google may settle (after posturing and sabre-rattling of course) on that basis alone

Android is free though isn't it? they can have 100% of Google's Android sales in that case :)

Handsets with Android are not free.

But does Google get any money from handset sales?

Money they make (through ads) by having Google as the default search engine

Right, but that's not money made up front.

but they aren't going after the handset manufacturers, Google can hardly hand Oracle HTCs profits if Google never sees them.

EnterpriseDB is essentially an Oracle-compatible PostgreSQL. Unfortunately, however, its not open source. I guess Google can buy them and open source their software just to piss off Oracle.

The headline should read "Oracle sues Google over literally the only thing keeping Java relevant".

I don't necessarily agree about relevance, but I do find it quite mind boggling that Oracle would strike out against what is clearly a massive growth opportunity for Java. If they want to destroy the Java brand the fastest way possible then definitely the right thing to do is start suing people who are using Java. The million dollar question is why would anybody in their right mind do this?

What good is Java to them if they can't control it? They don't have a monopoly on expertise.

" The million dollar question is why would anybody in their right mind do this?"

A slice of Android sales revenue... Perhaps as high as US$1 per handset would be nice.

Isn't Android free ? The problem is more for mobile phone companies that may now have to pay a license for using it. This will hurt a lot.

It might not hurt too much if Oracle just asks for money. I don't think it's the "free-as-in-beer" quality that is crucial to Android - it's the freedom for carriers to do what they want with it that matters.

They scariest possibility would be if Oracle actually tries to exert some other kind of influence - force their own software or restrictions or branding onto Android (ugh!) - that would really scupper the whole thing. I have no idea if that is possible or not (someone please tell me it is not).

The Android platform itself is free, but, as I understand it, important software written for the Android platform needs to be licensed by handset makers: the Google Maps app, access to the Android Market, etc.

Maybe the only thing keeping Java relevant to consumers. It's also the de facto standard platform for just about all recent enterprise software projects.

I think you might be surprised at the amount of enterprise software in Java these days

Practically everything that is not .NET

While I enjoyed the humour in this statement, I think it's worth noting that Google's use of Java, particularly with GWT and GAE, is relevant. In fact, I think this form of web development is likely to supersede more traditional server based web frameworks.

except for all the high quality libraries for doing hard things

It seems like defending against software patent claims are a cost of doing anything interesting now days. Create a novel, popular platform or tool, and someone somewhere will probably sue you over infringing on their patents. Google can probably dig into its mountain of cash and come out OK, but the precedent is chilling to smaller companies.

It's also ironic that it's Dalvik that got hit, given the amount of anti-Microsoft hysteria that has surrounded the Mono project.

I'm reminded of a comment a Mono developer made about the hullabaloo over whether Mono is a Microsoft Trojan Horse:

"I can only imagine the C++ developers are laughing their heads off at us."

What an excellent occasion to try the homoglyph hoax attack on friends and enemies! (See http://news.ycombinator.com/item?id=1571984 .)


Your search - οraclе - did not match any documents.

Actually, you now get one page - this one. Isn't there some prize for doing a google search that nets only a single result?

Incidentally, these homoglyph attacks are pretty hard to catch. Even Vim (which normally chokes on 8+ bit characters in my setup) didn't seem to show anything different until I checked the hex codes.

>> Isn't there some prize for doing a google search that nets only a single result?


It seems to be the o and the e at the end. Homoglyphs were a bad idea. Single letter or word homoglyphs in ohterwise latin text ought to be highlit somehow to warn against tricks like that.

i just set the default encoding of my browser to latin1 and disabled auto-detection. it doesn't work most of the time because the browser doesn't have to detect anything because of encoding tags in the page code, but it's handy if i have suspicions.

now i see gibberish for everything i don't care about, including utf8 homoglyphs.

Hm. A search for "other" using that o and e shows that there are a lot of websites out there using this trick, presumably to mask their spamminess / plagiarism from Google.

Off topic here though.

Maybe it would work better with a <noindex> tag like this: οrасlе

http://www.google.com/search?q=οrасlе </noindex>

Update: Nope.

now it returns this comment on hacker news which explains that its a hoax, heh

Indeed, impressive on Google's part. There are surely dozens of other plausible homoglyphs that might work for a short time, though. Stay wary!

I feel a little naive for not expecting something like this. I thought all the Sun/Oracle nonsense would be around MySQL.

MySQL: I bet that part is coming.

What implications, if any, does this have for the future of JVM languages like Scala, Clojure, etc.?

Good question. It's got to cast a bit of a shadow over anything based on the VM.

This seems like a catastrophically stupid and short-sighted move on Oracle's part. The reason Java is as big as it is today is that it's been an open playing field for all comers. Start tossing the odd hand grenade into the party and the room is going to clear out fast. The timing could hardly be worse too - Scala and Clojure seem to be building some real momentum lately.

I disagree. Java ME is already dead, so there's nothing left to kill. Server-side Java is all properly licensed, so I don't see a problem there.

Patent and licensing issues are so complex and the outcome of litigation so unpredictable that good faith and precedent are what count. This suit demonstrates that Oracle is perfectly willing to pursue offensive suits on Java IP and that's a very damaging precedent.

Clojure will be fine, at least. I think I remember Rich saying it was explicitly designed as a multi-VM language in an interview somewhere. Anyway, he already has an official, apparently actively maintained port of Clojure to the .NET CLR:


Now porting your Clojure applications between VMs may or may not be a reasonable proposition depending on what kind of non-Clojure pure Java libraries you depend upon, but the fate of the Clojure language is thankfully not tied to the fate of the Java runtime.

I think Scala has a .NET port too, but I don't know if it's active.

You don't hear too much about Scala on CLR, but Microsoft did support it somehow:


Seconded. If Oracle is going to turn Java into a minefield, it's going to have big repercussions in future uptake.

I think this is much bigger than just Java. The patents in question relate to the whole field of VM implementation, not simply Java VM implementation. On the surface this really appears to have very little to do with Java the language.

For a start, Dalvik is not a JVM implementation at all, in fact it's quite a different beast. See, e.g.: http://en.wikipedia.org/wiki/Comparison_of_application_virtu... which lists Dalvik as a register machine rather than a stack machine: definitely not a trivial difference.

Google's toolchain converts from JVM bytecode to Dalvik bytecode, which is probably what Oracle are going after with #5,966,702 but the rest of the patents are much more general. If anything Oracle are turning VM implementation in general into a patent minefield, not Java alone.

It looks like the patents that Oracle is claiming are being infringed upon focus on the actual JVM itself, not on the code run on it. Google making their own JVM is what's brought them into the crosshairs.

Which could be rather bad if you need a JVM tuned in a non-standard way.

Anyway you look at it, Oracle has enabled a lot of FUD to be thrown at Java, and if your observation is correct, andyone who's working on any sort of non-Oracle derived JVM (and there are a bunch) had just been handed a lot of legal uncertainty.

Side note: I don't need hearing this shortly after learning about the RightHaven atrocity factory.

> andyone who's working on any sort of non-Oracle derived JVM

Except Dalvik is not derived from the JVM.

Sure they use the language, but what, are you going to tell me that I can't make a compiler that translates JVM bytecode to something else?

Should projects like http://ikvm.net be illegal?

Oracle is destroying the biggest advantage Java has.

Very good point!

Dalvik very much isn't a JVM. While both are bytecode interpreters you need to translate Java bytecodes into Dalvik ones to use the former. I'll need to read more (just woke up) to see just what Oracle is objecting to.

Bytecode based systems are an old old old concept due to the severe lack of memory available in the bad old days, e.g. I personally know that as of the mid-late '70s the Lisp Machine's compiler went to a bytecode that the microcode would then interpret. As I recall Smalltalk did this and I know it wasn't a new concept. Heck, what about UCSD's Pascal system?

Don't know the history of JIT compilation, let alone various tricks that have recently been developed; Java is the second wildly successful bytecode system, I think, after UCSD's, which was done back when memory was a lot more precious.

And Dalvik optimized for among other things low memory demand, e.g. it is register based and Java bytecode is stack based.

Thanks for pointing this out.

From the listed patent infringements (see other comment by cscotta) and my non-expert understanding, I would say just the same.

I bet the mono people are laughing their asses off now...

I think Sun suing Microsoft was a mistake too for the Java platform... the write once, run everywhere ideology made Java the native platform of the server... write once, run everywhere should be the default, but it should be easier and encouraged to escape...

Microsoft were destroying Java with their own implementation, which was not compatible with normal Java. They were changing the language, just as they tried to do with HTML in internet explorer and active-x, so we still see people having to use ie6.

Sun had to sue Microsoft, before they changed Java so much it was no longer platform agnostic (or it was way less agnostic).

I wonder what would have happened, though. Would the market decide that being platform-agnostic is more important than using MS dev tools? Would developers just have to work (around) with an incompatible platform, as they do with IE.

I wonder if the MS rift caused more harm to Java than letting Microsoft change its implementation.

I'm pretty sure the Mono people are worried. These patents are things that are fairly fundamental and important to any sort of mobile device that has competent security.

No I'm pretty sure they aren't. The CLR is totally different to the JVM.

Google aren't using the JVM either, they're using the Dalvik VM. The alleged patent infringement may apply to just about any VM implementation.

I know. I also hope they are using process level security, not class level security, which will completely bypass patent #1. Google people aren't stupid.

Read. The. Claim.

And no, the CLR is not totally different from the JVM.

You've not looked at them have you (the VMs)? The JVM is entirely a class-focused JVM. The CLR is a general purpose VM. I can access arbitrary memory in the CLR, but cannot on the JVM. I write as someone who has attempted to build a byte-code assembly file that would allow direct manipulation of binary arrays for the purpose of efficiently loading OpenGL vertex buffers that mix floats and ints. Cant be done in Java or in Dalvik (at least in 2.1). Easily done in CLR. Also, the handling of security and exceptions is different. I've also read all the JSRs with respect to this problem, related problems, generics, stack-based variables etc, and I'm also aware of the optimizations for stack-based elimination in 1.6 and 1.7.

Also, I admit I only read the first patent, but I believe it doesn't apply to Android simply because the Dalvik VM does not apply its security at the object level but the process level, thereby nuking the patent. As for mono, I doubt they would worry since they would simply point out that "class" and "object" have been used for determining security access since at least Windows NT. Or mono can simply turn off object level security and rely on the OS to do it. The whole list is replete with holes and workarounds.

> You've not looked at them have you (the VMs)?

I've looked at them, along with about half a dozen others.

> The JVM is entirely a class-focused JVM. The CLR is a general purpose VM. ... blah-blah-non-sequitur-blah ...

They are both VMs with similar overall strategies, similar technologies, and some distinct similarities. They're about as different as any two VMs are.

> Also, I admit I only read the first patent, but I believe it doesn't apply to Android simply because the Dalvik VM does not apply its security at the object level but the process level, thereby nuking the patent.

Unless they point out that the system handles processes as objects.

> As for mono, I doubt they would worry since they would simply point out that "class" and "object" have been used for determining security access since at least Windows NT. Or mono can simply turn off object level security and rely on the OS to do it. The whole list is replete with holes and workarounds.

You don't understand how patent trolling works, do you? The point is to make it so expensive and painful for the innovator to continue without giving the patent troll a big slice of the pie that the innovator capitulates and pays off the troll.

>They're about as different as any two VMs are.

I suggest that these differences are what makes them different as applies to patents. Patents are usually either so broad as to have prior art, or so narrow as to not apply to even "similar" implementations.

6,192,476: Too broad. Applies to any OS since the 70's. 6,125,447: as above. 5,966,702: Too specific (.NET doesnt need to optimize data it creates properly in the first place) and too broad at the same time: it simply describes data normalization. 7,426,720: Unix forks. Either way, .NET does not do this. RE38,104: Not applicable at all. .NET is always fully JITed. 6,910,205: See above. 6,061,520: Specific to JVM implementation detail.

Please allow me to reiterate:

> You don't understand how patent trolling works, do you? The point is to make it so expensive and painful for the innovator to continue without giving the patent troll a big slice of the pie that the innovator capitulates and pays off the troll.

I have been responsible for patents at a tech startup. My job was not only to find patents that we might infringe upon, but to find patents that a troll could use to extort money out of us, even though they did not apply, and then assign risk. I worked with an excellent patent lawyer.

It is impossible to do anything today without infringing on somebody's bullshit patent. However, one can identify patents that can be demonstrated to be bullshit for a reasonable cost.

There is also an element of poker. If someone has a bullshit patent, but they have successfully used it, or think they can, then they risk losing that revenue if it is struck down as invalid. They do have something to lose, in addition to legal fees.

Trolls live on fear. Don't be afraid.

So back to these particular patents: They are bullshit. They are obviously bullshit. I would represent myself if hit with them. I think Google might be able to find a few people better than me to prove it.

I would say it is about as different as Dalvik is.

In some ways the Dalvik VM is more different. Its register based for a start.

And in evidence for the "Pretty Sure They Aren't" statement, here's Miguel de Icaza shitting his pants (not):


Miguel de Icaza, patent lawyer and prescient predictor. And also: unbiased.

OP: "I'm pretty sure the Mono people are worried. "

You are saying that Miguel de Icaza is not one of these Mono people, nor is he representative of them.

Oracle CEO Larry Ellison are good friends, best man at your wedding kind of friends. Ellison was once on Apple's board of directors after Jobs returned to Apple. Oracle suing Google over Java patent infringements in Android sure plays well for Apple...

Apple vs (Google vs (Facebook && Oracle))

… and if you rearrange the letters of "spicy acorn" it even spells "conspiracy"!.

That's the beauty of quid pro quo: it's plausibly deniable and you can poke fun at those who suspect it.

I'm not suggesting a conspiracy, just an alliance :)

This article is a bit light on detail - can anyone explain how the development of Android infringes on Oracle's IP?

If they were talking about Oracle's patents, it would make sense. It's the talk of it being copyright infringement that has me confused.

Android is basically, as far as I've read, a Linux kernel, with Google's own user space on top of that--their own equivalent of libc and their own windowing system. On top of that, they run their own JVM, which they wrote themselves and which is NOT even compatible with Oracle's at the byte-code level. Android apps are written in Java and compiled/JITed for Google's VM.

So, unless the Java compiler itself takes code from Oracle's compiler, it is hard to see what in their would contain copies of Oracle code.

If you read the complaint itself (http://www.scribd.com/doc/35811761/Oracle-s-complaint-agains...) it becomes clearer - see Count 8, copyright infringement: The Java platform contains a substantial amount of original material (including without limitation code, specifications, documentation and other materials) that is copyrightable subject matter under the Copyright Act, 17 U.S.C.

so because the Android platform APIs also include the Java APIs Oracle thinks there is a case. I'm not aware of any precedents that would indicate the likelyhood of this succeeding, but its possible there could be a problem here.

Note that http://developer.android.com/reference/packages.html contains the java.* API's, and in the past Sun was pretty strict about companies not hosting that Javadoc itself publicly (eg, they stopped one site that was building interlinked Javadoc references).

One thing missing from your list: the standard java libs like java.lang.* etc. Are those google's implementations?

They're from the Apache Harmony project, not from Sun's Java.

> So, unless the Java compiler itself takes code from Oracle's compiler, it is hard to see what in their would contain copies of Oracle code.

This is about patent infringement, not copyright. Whether or not code was copied is irrelevant.

UPDATE: Sorry, maybe both are at stake. The author of this article seems sadly ignorant of the difference between patent and copyright, as he seems to use them interchangeable. So who knows....

As background, from WikiPedia:

"On November 13, 2006, Sun released much of Java as open source software under the terms of the GNU General Public License (GPL). On May 8, 2007, Sun finished the process, making all of Java's core code available under free software/open-source distribution terms, aside from a small portion of code to which Sun did not hold the copyright."

If Sun willingly made the code GPL licensed, and Google isn't using anything outside the GPL code, even if some of the technologies were covered by patents I don't see Oracle having a case. Right now, this sounds very much like the SCO - Linux suit that dragged on forever and went nowhere.

Google is using NONE of the Sun code. They use their own VM, and use the Apache Harmony class libraries. That's why it isn't called "Java"

The Sun release has some weird field-of-use restrictions associated with it.

Giving out software under the GPL v2 does not mean that you grant others a patent license, that isn't within the scope of the GPL v2.

That's not true. See section 7 of the GPL. In part:

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.

However, it seems Sun can relicence the software under whatever they want, and the current versions of it wouldn't be under GPL anymore. I am not a lawyer, so I don't know exactly what this implies.

So you're saying that it grants users of the GPL code an exception from the patent owned by the original developers?

In that case, wouldn't the exception only be extended to Google if their implementation of Java was not independent from Sun's implementation? Because Devrak was derived from Apache Harmony, it might not share any code with Oracle Java.

"However, it seems Sun can relicence"

You mean Oracle, of course, and that seems to make a big difference.

Considering that Sun released Java before the GPL v3 was finished, I assume that it's under the GPL v2. v2 doesn't have the same patent guarantees that v3 does, and these guarantees were an important reason for creating v3. Specifically, the GPL v3 specifically prohibits this sort of "make it free software and then sue over the patents". The GPL FAQ claims that in some countries, releasing software under the GPL v2 constitutes a patent license, but I don't think that applies in the US.

There's no need to assume when authoritative information is but a few keystrokes away. And yes, it is under the GPL v2 + Classpath exception, except for Java ME which is under straight GPL v2.

Exactly this is the core question here.

I am really curious about how the law sees this.

And I would really wonder if they decide against Google. It looks almost like a trap of Sun/Oracle then, kind of "hey, here, use our code, it is open source now grin".

Or to put it different: Why did they use the GPL licence?

I was reviewing some of Ellison's pre-acquisition talk about Java and found this: http://www.youtube.com/watch?v=_Dtqe1e0tXg#t=7m10s

Interesting and relevant.

As a developer, I'm getting scared off the Java platform here. I know it's the JVM that's at issue, but I hate the kind of lock in that this implies - I think they'll do serious long term harm here.

It just goes to show that whatever company-de-jour promises about enforcing the patents that they are granted today, all bets are off when they fall on hard times and are acquired tomorrow.

Serious about openness? Skip the "patent and promise" dance and just release the damn thing BSD.

That is why you would license it under the Apache License, because it has explicit patent clauses, rather than something like the BSD license.

The BSD license would be useless here. Preventing this kind of thing is the whole point of the third revision of the GPL; to my knowledge there are no other software licenses that do this.

See LGPLv2 section 11.

No, GPLv3 is useless here.

Oracle can sue for patents over any GPLv3 technology, and all GPLv3 says is that the company doing the suing can't distribute code under GPLv3.

But since they own the copyrights of Java, they can always change its license and leave the rest of the world in dust.

Uhh, no.

They would be violating the GPLv3 license under which they distributed the source. Changing the license only affects the next person acquiring the source. The people who acquired it under the GPLv3 license cannot have this retroactively revoked or relicensed. If Orcale sued those parties, they would be violating the terms of the license. In the least instance they shouldn't have been distributing the source unde GPLv3 so their claim for infringement would be moot.

How would BSD help? It doesn't include a patent license.

Skip the "patent and promise" dance and just release the damn thing BSD and forget about patents. (Implied, should have specified)

If you already have patents (as Sun did in this case) you can't just forget about them. Saying nothing about patents is equivalent to saying "some day we'll change our mind and start suing". If you want to make something really open you really need some kind of irrevocable license or promise not to sue.


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