Sunday, August 15, 2010

Android uses Java? Um... no

I've seen a lot of misinformation over the weekend, talking about the Oracle/Google lawsuit. Many of these blog posts and article talks about how "Android uses Java". Heh. That simply isn't true.

Android applications are written using the Java programming language. True. But those applications run on the Dalvik virtual machine. Not the Java virtual machine. Source code is owned/copyright by the author and is entirely unbound from any intellectual property concerns based around the syntax/grammar of that language.

Class libraries? Not Java either. Much of the core libraries come from Apache Harmony, and the rest are libraries that Google wrote. Given that Apache was never provided access to the Java Compatibility Kit, Harmony is not labeled as "Java-certified". Also note that Harmony is a clean-room implementation of the Java class libraries.

So, people: stop saying that Android "uses Java". It doesn't.

(obviously, some of these various components may trample on Oracle's patents; I have no idea, and that is an entirely separate question)

12 comments:

Luke said...

Have you read why Oracle have sued Google?

"Android applications are written using the Java programming language."

This is why...they use Java language but they have cloned the JVM.

Greg Stein said...

Luke: There is no Java™ IP/technology in an Android handset or the applications loaded onto that handset. There is no Java™ IP/technology associated with using a syntax/grammar (the programming language).

Thus, Android does not use Java™.

They did not "clone" the JVM whatsoever. Dalvik is something entirely different.

I suggest you do some more research. Your statements are exactly why I made my post: people are ill-informed on this situation and making statements that are simply untrue.

dicka said...

I guess a lot of it will come down to the marketing/documentation that Google has used. If they have claimed that their platform runs Java(tm) or you can write programs using Java(tm), there may an issue there.

I guess I'm mostly thinking about Sun's successful litigation against MS for J++. Most of this hinged on the incorrect use of the Java trademark to describe an incompatible VM (which was a breach of the agreement for use of the TM).

id said...

"obviously, some of these various components may trample on Oracle's patents; I have no idea"


That is a glorious understatement. It should have been: "obviously, like any other non-trivial piece of code, the Android software tramples on many Oracle and everybody else's patents;"

The decision to sue is result of a 'lawyery' delusion. Being an open source project, nothing Oracle will ever do can unmake Android - everywhere else in the world those patents which might have been ethical if used for defensive purposes are worthless. Even more so in the rapidly developing areas in Asia and South America.

dicka said...

Oh! it appears that the current lawsuit is about patents anyway. This means it doesn't matter if Android was written using Java, C, or strings of bubblegum; if it uses tech patented by oracle, there is grounds for legal action.

BoD said...

Well actually, the complaint is about patents AND copyright.
They just weren't specific about copyright.

Martin Diers said...

Greg, I would suggest that you are ill informed about patent law, or have not read the claims in the lawsuit, or in the patents in question.

Whether the patents which Android may or may not violate should be patentable is a valid question, and one I hope this lawsuit will settle. However, that the IP in question has been patented is beyond dispute. Likewise it is beyond dispute that it is not the Java language itself which is in question, but the use of specific enabling technologies used in the creation of a JVM, techniques that very likely apply to almost any VM. If Oracle wanted to, they could probably go after the Ruby, Python, Parrot implementations and accuse them of IP violations. Google, however, has money.

Greg Stein said...

dicka: afaik, there aren't any trademark claims about the use of the Java trademark.

id: yes, a total understatement :-P ... I just didn't want to get into that minefield.

Martin: well aware of that, and I think that I'm pretty well-informed about IP law. But whatever: I'm commenting on people's misuse of the phrase "Android uses Java". See my last parenthetical sentence? I am making NO statement on their patent claims for the exact same reasons you point out -- it would be silly to attempt commentary on those claims at this point.

herve said...

Umm, that's not what google write:

"What is Android ? Android is a software stack for mobile devices that includes an operating system, middleware and key applications. The Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language." That's the header of google's own dev guide for Android (http://developer.android.com/guide/basics/what-is-android.html)

herve said...

So statements untrue ? try ask Google why they themselves are wrong ;)

Greg Stein said...

herve: you quoted it yourself: it uses the Java programming language. There is no Java(tm) technology in the Android technology stack.

Werner Keil said...

Unlike Microsoft J++, Google never uses the words or trademarks "Java". The classes of certain Java JSRs are binary compatible and run on Harmony, thus they also work on most Android versions.

Considering how much companies like IBM (some inherited from "Pink/Taligent" actually a "pre-Jobs" partnership with Apple ;-) beside Sun contributed to vital parts of the first JDKs, I wonder, when IBM may jump in the ring and sues Oracle in return, or (as they mentioned briefly here and there) just create their own "fork" of Java with or without Harmony as partners?