
Google confirms next Android won’t implement Oracle's proprietary Java APIs - ingve
http://venturebeat.com/2015/12/29/google-confirms-next-android-version-wont-use-oracles-proprietary-java-apis/
======
scrollaway
What does this mean for OpenJDK? Will Google now be working on it and
improving it?

From what I gathered in the previous discussion, it's not a drop-in
replacement - they made several changes to OpenJDK already.

~~~
tweakz
Yes, Google's statement in the article suggests Google will be working on
OpenJDK, at least more than they already have been.

~~~
ethbro
So, what's the most evil Oracle can be against future versions of Android
given this?

And who actually guides the Java roadmap? The OpenJDK trademark grant
([http://openjdk.java.net/legal/openjdk-trademark-
notice.html](http://openjdk.java.net/legal/openjdk-trademark-notice.html))
seems to spin on whether or not _" the Software is a substantially complete
implementation of the OpenJDK development kit or runtime environment source
code retrieved from a single Website, and the vast majority of the Software
code is identical to that upstream Original Software"_?

What's to stop Oracle from deciding that future Java roadmaps are going to
exclude Android-specific commits? Neither IBM nor Apple's interests seem
particularly aligned with Google here (I'm assuming they throw some kind of
weight in the OpenJDK politics).

~~~
dkarapetyan
Time and time again we see such short term thinking does not pay off. It
wouldn't be evil on Oracle's part to do that, it would be just plain stupid.
The resurgence of Microsoft shows that being open and transparent is the
actual winning strategy. Goodwill among developers is not a quantifiable thing
but it makes a huge difference.

~~~
HillRat
Yeah, but this is _Oracle_ we're talking about. They do evil and stupid before
breakfast and short-term thinking for the rest of the day.

~~~
threeseed
Let's be grown ups here. Oracle isn't evil by any normal definition of the
word.

And you sure as hell don't get to $10 billion a year in profits by being
stupid.

~~~
praveenster
All the responses to this thread on Quora (many of whom are ex Oracle
employees) seem to suggest that they are disliked:

[https://www.quora.com/Whats-so-bad-about-Oracle](https://www.quora.com/Whats-
so-bad-about-Oracle)

~~~
sigzero
Disliked isn't evil. People should stop throwing around that word so easily
though.

~~~
mistermumble
What they did to Peoplesoft was evil.

------
ubertaco
>When we asked Google why now, the company pointed to to the release of Java 8
last year and the introduction of new language features such as lambdas. As
such, Google wants to put more resources into OpenJDK where the team can have
a bigger impact on new features and improvements. That’s the developer story
Google is pitching in any case, but there’s a massive legal narrative here
that can’t be forgotten.

Yes, the legal narrative is _certainly_ key here, but as a dev I'm all for a
move that brings Java 8 to Android instead of just Java 6. It's about time!

~~~
kuschku
You wanna know what I did?

    
    
        1. Use RetroLambda
        2. Write your own implementation of Streams and Optionals, compatible with RxJava and Guava
        3. Use in your project
        4. Profit

~~~
benwilber0
well that doesn't really scale at all though

~~~
saurik
Ok, in what way does it not "scale"?

~~~
jayd16
I do this, you do this. We try to use each other's code. Now there's two
competing implementations that are probably incompatible.

------
Scarbutt
Not a Java dev but what are these proprietary Java APIs? doesn't oracle jdk
and openjdk share the same APIs?

~~~
orionblastar
So far APIs cannot be copyrighted. There have been lawsuits over APIs but no
decision that protects APIs from being used by other people and companies.

GNU/Linux for example uses Unix APIs and Mac OSX uses Unix APIs, so if APIs
are copyrighted then they would be sued for using the Unix APIs without
permission. Then they would have to remove Unix APIs and lose Unix
compatibility.

Sun went after Microsoft and others over Java IP before Oracle bought them
out. Sun used a lot of money on lawsuits and ended up losing money to the
point that Oracle bought them out. This is the same as when SCO was suing over
GNU/Linux using Unix source code. It usually doesn't work and costs more in
court costs than any settlement or rewards.

~~~
tzs
> So far APIs cannot be copyrighted. There have been lawsuits over APIs but no
> decision that protects APIs from being used by other people and companies.

What about the decision of the Court of Appeals for the Federal Circuit in
Oracle America, Inc. v. Google, Inc.? [1]

[1] [http://www.cafc.uscourts.gov/content/oracle-america-inc-v-
go...](http://www.cafc.uscourts.gov/content/oracle-america-inc-v-google-inc-
opinion)

~~~
AnimalMuppet
IANAL. Was that a decision that APIs _were_ copyrightable, or that the trial
judge couldn't definitively rule that they _weren 't_?

[Edit: Ah, I see that this was answered by phonon in a post parallel to the
parent. The appeals court ruled that they were. Note, however, that the
Supreme Court declined to listen to an appeal by Google at this time. The
Supreme Court did _not_ rule that the Appeals Court was correct. Therein lies
some hope...]

~~~
throwawaykf05
As I understand it, that's not how it works. When the Federal Circuit issued
its decision saying APIs are copyright eligible, Google appealed to the
Supreme Court, claiming the decision was incorrect. The Supreme Court,
however, declined to hear the case, strongly implying (or maybe directly
indicating?) that it thought the decision _was_ correct. As such, there is no
hope, at least as far as this case is concerned.

~~~
curt15
>The Supreme Court, however, declined to hear the case, strongly implying (or
maybe directly indicating?) that it thought the decision was correct.

As the court emphasized in Missouri v Jenkins (1995), "[t]he denial of a writ
of certiorari imports no expression of opinion upon the merits of the case"
([https://www.law.cornell.edu/supct/html/93-1823.ZO.html](https://www.law.cornell.edu/supct/html/93-1823.ZO.html))

------
guelo
I think the HN speculation yesterday that there's been a settlement is wrong.
This is Google moving to protect itself going forward after it lost the case
in the Federal Circuit. That case was sent back down to the lower court only
for ruling if Google's use of Oracle's now apparently copyrighted APIs
consists of "Fair Use". Since APIs are now copyrightable I don't see how
copying thousands of APIs could possibly consist of "Fair Use" so it's looking
like Oracle is going to get paid, big time. And Oracle will probably demand a
royalty for every phone sold. So in order for Google to avoid paying that
royalty going forward they need to move to OpenJDK quickly with their next
release, with the belief that using Oracle's GPL JDK implementation also gives
them a license to the API. Problem for Google is that OEM and user adoption of
new Android versions is slow, it takes several years for phones with old
versions to stop selling, and Oracle will get a cut of each sale.

In any case, I think this is a healthy development for Java developers and the
Java ecosystem. Java has been effectively forked between Android and other
uses and this will unify the language again. And it will bring the cool new
Java 8 features to Android.

~~~
cwyers
The answer is, it's fair use if you are trying to be compatible - DR-DOS could
be considered a fair use copy of the MS-DOS APIs, because that's the only way
to run DOS programs. But ordinary Java programs don't run on Android and
Android programs don't run on the JVM. So Google lacks a fair use defense as
far as I can tell.

~~~
saurik
I am sorry to see your comment was downvoted, as it is quite correct: if you
read the actual court documents, this is the argument that was made
surrounding fair use, and despite their attempts to lie and say they were,
Google could not be shown to be trying to build a compatible product (as it is
pretty obvious even to non-technical people that they aren't and never
intended to even try). Back when this was first being published I wrote a much
longer comment pointing out all of the intricacies and quoting the court
opinion.

[https://news.ycombinator.com/item?id=7723853](https://news.ycombinator.com/item?id=7723853)

------
0xFFC
Google not buying sun was huge mistake.at least they could sell it after
keeping java.something like what they did with Motorola. They kept all
patent's. They could have done the same with java.

~~~
protomyth
Consider Google bought Motorola for $12.5B[1] and Oracle bought Sun for $5.6
billion[2], I would think Google buying Sun would have been a better deal than
buying Motorola.

1) [http://bgr.com/2014/02/13/google-motorola-sale-interview-
len...](http://bgr.com/2014/02/13/google-motorola-sale-interview-lenovo/)

2)
[https://en.wikipedia.org/wiki/Sun_acquisition_by_Oracle](https://en.wikipedia.org/wiki/Sun_acquisition_by_Oracle)

~~~
bitmapbrother
Perhaps, but it's not like Google lost much by buying Motorola.

"I think the Motorola transaction has been a success for us. Financially, we
bought the asset for $12.5 billion. It had $3 billion in cash; we were able to
sell the Home division for $2.5 billion; we ended selling the handset division
for $3 billion. There were some other tax assets as well. When you work
through the math, you realize we spent between $2.5 billion and $3.5 billion
for the patent assets. At the time, the nearest comparable transaction was the
Nortel patent auction where Microsoft and Apple teamed up to buy that asset
for $4.5 billion. And there’s a good argument that the Motorola patent
portfolio is a better portfolio."

~~~
robotresearcher
Nice informative quote is missing an attribution. Google finds it in an
interview in Forbes with Dan Harrison, Google's head of M&A.

------
patrickaljord
Title is confusing, OpenJDK does belong to Oracle and Google is going to use
it. It's just that the OpenJDK is GPL.

~~~
AnimalMuppet
And the GPL will make it really hard for Oracle to prevent Google from using
it in Android.

~~~
asddubs
also, it comes with a patent grant

~~~
tracker1
Thank you for this.. that was my question, in a different comment. I was
curious how using OpenJDK would prevent a similar lawsuit... Also, does this
mean that Dalvik will be enhanced to support Java's compiled modules directly,
or are they outright replacing Dalvik?

TFA doesn't make much of this all that clear to me. Though I admit I only
skimmed it.

~~~
on_and_off
Dalvik is already retired and replaced by ART.

Judging from the commits on AOSP, ART is still being worked on and has been
adapted to openjdk.

It looks like it is here to stay.

------
curt15
It's also interesting to note that this is essentially the outcome advocated
by the FSF in its amicus brief to the federal circuit.
[https://www.eff.org/cases/oracle-v-google](https://www.eff.org/cases/oracle-
v-google)

------
sauere
Question: why didn't Android use OpenJDK in the first place?

~~~
yarrel
GPLphobia.

This is a good study in why that's irrational.

~~~
yincrash
No, OpenJDK didn't exist when Android was in development.

------
JustSomeNobody
I wish they could get away from java. I like the language and the platform,
but maybe something like go would be better.

~~~
VeilEm
Completely subjective here but no Go would not be better. Java has generics.
Java has more support, more tooling and Android's existing eco system is fully
mature. If they started out from scratch it would result in worse language
with less tooling and a smaller ecosystem.

~~~
JustSomeNobody
Well, I did say I wish they "could".

------
narrator
This is a huge win for open source if Google is going to build on OpenJDK. The
implicit patent grants are huge! They can even pour resources into building a
better GPL'd run time. So much of Google's internals are written in Java that
they would certainly benefit from this.

Looks like another LibreOffice/OpenOffice Jenkins/Hudson split in the making.
You'd think Oracle would have learned by now.

I wonder if they'll fork the Java language standard? That would seriously
damage Oracle if it got traction. They couldn't use Oracle's trademarks but
people are familiar enough now with Dalvik that they could just introduce
Dalvik Server Edition and people would lap it up.

~~~
HappyTypist
OpenJDK is under GPLv2. There are no patent grants.

~~~
sangnoir
Your statement is confusing (and possibly wrong depending on how it's read).

There are no patent grants _in_ GPLv2. However, OpenJDK carries an automatic
patent grant (outside of GPLv2).

------
grizzles
It makes sense. It future-proofs androids ongoing legal viability. If they
haven't yet settled with Oracle then it also strengthens their negotiating
position on the issue of damages for copying API signatures. Thanks Appeals
court!

It also makes sense in light of Google's recent announcement that they are
going to be shipping a desktop android os with chrome on it soon.

Unlike in 2008, Google no longer has to worry if phone vendors care about
whether the runtime is GPL+classpath, which was probably the original
motivation for an apache licensed runtime.

There is still however, the mystery of why the commit is missing the openjdk
LICENSE file, or any mention of Oracle at all.

------
bitmapbrother
I thought this was rather interesting:

OCTLA Signatories List

The following organizations and individuals have signed the OpenJDK Community
TCK License Agreement (OCTLA) and been granted access to the JCK.

    
    
      Signatories for Java SE 6
      Azul Systems, Inc.
      CACAO - Christian Thalinger
      Cambridge Software Labs - Edward Nevill
      Canonical - Matthias Klose
      Google
      Red Hat
      Stratus Technologies
      tarent
      Yozosoft
    

[http://openjdk.java.net/groups/conformance/JckAccess/jck-
acc...](http://openjdk.java.net/groups/conformance/JckAccess/jck-access.html)

~~~
mike_hearn
Google has been an OpenJDK contributor for server-side stuff for a while.

------
deskamess
I am kinda surprised they have not proposed a language (new or existing non-
Java) yet for their phones. I thought this would at least be in the plans so
they do not have to rely on Java alone. A big task for sure.

Perhaps they are waiting for Web Assembly to become mainstream. Then do a
side-by-side:

1) Web Assembly -> new VM

2) Existing Java Apps -> Dalvik

With 2) eventually being phased out.

Edit: As pointed out below it is no longer Dalvik, but ART.

~~~
ufmace
Seems like it would be massively messy to move to anything but another JVM
language, considering the long history of Java-based Android. Matter of fact,
I'm having trouble thinking of an example of any major platform making such a
fundamental change and surviving. Maybe Apple switching from OS9 to OSX/Cocoa.
They started building the Carbon compatibility layer, what, 2-3 years ahead of
the switch, and IIRC the API is still available today, though considered
deprecated. And no version of MacOS had anywhere near the adoption level or
number of third-party apps as Android does.

~~~
brisance
Before that Apple had to move from Motorola 68K ISA to PPC.

------
Klathmon
So does this mean that Android will be licensed under the GPL going forward?

~~~
yonran
If you distribute OpenJDK, then only the modules that are “derived from or
based on” OpenJDK are required to be GPLv2[+CE] (the Classpath Exception
allows you to link the library with an independent closed-source library). So
I think it would only require platform/libcore itself to be released under
GPLv2+CE. Probably manufacturers don’t need to modify platform/libcore too
much anyway.

GPLv2+CE:
[http://openjdk.java.net/legal/gplv2+ce.html](http://openjdk.java.net/legal/gplv2+ce.html)

Again, the commit in question:
[https://android.googlesource.com/platform/libcore.git/+/51b1...](https://android.googlesource.com/platform/libcore.git/+/51b1b6997fd3f980076b8081f7f1165ccc2a4008)

------
scotty79
I'd like to see Google pouring vast resources into OpenJDK development and
making Oracle Java obsolete. That's the karma they should get for being
Oracle.

~~~
syjer
Oracle Java is based on OpenJDK and certified by Oracle. So I don't see how
pouring vast resources into OpenJDK would make "Oracle Java" obsolete.

~~~
scotty79
> Oracle Java is based on OpenJDK

I don't think that's exactly the case. Oracle Java has some features that
OpenJDK doesn't have. What if Google accelerated development of Open JDK
beyond what Oracle is brewing so far that at some point Oracle will have a
choice of just taking OpenJDK and stamping their brand on it (probably
illegal) or being forgotten Java-wise?

~~~
mike_hearn
Oracle _runs_ OpenJDK. They aren't separate projects.

~~~
sixbrx
Google would only need to fork and rename though, then Oracle wouldn't be
running it. If using the fork were a requirement to running on Android, that's
a _big_ draw.

I'm not sure Google is really interested in that though.

------
avz
This battle is very important: two questions it will answer are these:

1\. Are APIs copyrightable?

2\. If APIs are copyrightable, does providing an alternative implementation of
someone else's API (the way Android provided an alternative implementation for
some of the standard Java APIs) constitute a fair use [1]?

Google and Oracle settling this out of court would be very bad news: it would
leave the above issues in limbo. That is a lot of legal uncertainty for any
project that may wish to provide an alternative implementation of someone
else's API.

[1]
[https://en.wikipedia.org/wiki/Fair_use](https://en.wikipedia.org/wiki/Fair_use)

EDIT: formatting

~~~
wcummings
>So the only reason why you may object is that my lisp.a has an INTERFACE that
allows it to be linked to libreadline.a . As far as I know, only the readline
CODE is copyrighted, not its INTERFACE. (Would you object because my
libnoreadline.a has a similar interface?)

[http://clisp.cvs.sourceforge.net/viewvc/clisp/clisp/doc/Why-...](http://clisp.cvs.sourceforge.net/viewvc/clisp/clisp/doc/Why-
CLISP-is-under-GPL)

~~~
avz
This is very interesting and highly relevant! Thanks!

------
zackb
I'd love to see a bigger push for golang support for Android.

------
exabrial
Good news AFAICT! Hopefully Android:

1) Gets an updated kernel 2) Can run standard JVM bytecode 3) Switches to
CGroups 4) Allows for interop with desktop/server JVM

On a side note, I wish WebAssembly would just be JVM byte codes instead of
this huge NIH syndrome. No need for the importing the Java SDK, broken sandbox
mode, and all the other crap that made Applets fail... just the JVM itself.

~~~
Zigurd
It is unlikely that Android will run Java bytecode. The Dalvik runtime was
aimed at keeping bytcode compact and interpreting faster than a JVM. ART is a
pre-compiling (Dalvik bytecode to native) runtime. Using Java bytecode in the
runtime on the Android device would open a whole big can of worms again. With
open source APIs and no actual Java(tm) technology in an apk or on a device
once code is translated from Java bytecode to Dalvik bytecode, Android stays
clear of Oracle copyright claims.

~~~
yincrash
You can actually load Java bytecode on Android (since 1.x!) by manually using
a separate classloader at runtime[1]. There are even J2ME runners that have
been doing that since Android's early days[2].

[1] [http://stackoverflow.com/questions/60764/how-should-i-
load-j...](http://stackoverflow.com/questions/60764/how-should-i-load-jars-
dynamically-at-runtime) [2]
[http://www.netmite.com/android/faq.html](http://www.netmite.com/android/faq.html)

~~~
Zigurd
Those approaches "dex" the Java bytecode and run Dalvik bytecode.

------
rogerthis
I couldn't figure out exactly which version of OpenJDK code they imported, but
it's certainly less than 1.8.

~~~
syjer
1.7: as java.util.Objects is present (
[https://android.googlesource.com/platform/libcore.git/+/mast...](https://android.googlesource.com/platform/libcore.git/+/master/ojluni/src/main/java/java/util/Objects.java)
)

------
aceperry
Sounds good. I hope that OpenJDK improves, because it's been sluggish and
buggy in my experience. What Google should do is to move to something like
Kotlin, which might make the whole programming environment less tedious than
Java.

------
tracker1
How does this obviate the patent issues? Or is there patent indemnification
from Oracle(or formerly with Sun) with the OpenJDK license?

------
mtgx
Is this really Google's best move to protect itself from Oracle? How safe is
OpenJDK from Oracle?

~~~
gst
OpenJDK is licensed under the GPL. So as long as Google doesn't violate the
terms of the GPL it's quite safe to use it. In addition, the GPL provides an
implicit patent grant to the code: [https://copyleft.org/guide/comprehensive-
gpl-guidech7.html](https://copyleft.org/guide/comprehensive-gpl-guidech7.html)

------
namelezz
Will this introduce multiple version issues into JVM ecosystem like Python 2
vs Python 3?

------
0xFFC
I am so sorry, i was going to upvote you.but because of my small touch screen
i down voted you.i am really sorry.

BTW i have exact same question.

~~~
tedivm
I have upvoted to counteract your downvote. Order is now restored in the
universe.

~~~
Nilzor
I have also upvoted in case you wanted to upvote yourself. How's the balance
now?

------
stefantalpalaru
Relevant HN discussion, so we go full circle:
[https://news.ycombinator.com/item?id=10803775](https://news.ycombinator.com/item?id=10803775)

~~~
mbreese
Crazy... here we have a Hacker News comment on a Venture Beat article about a
Hacker News post about a Google code commit.

~~~
scrollaway
So full circle would actually be referencing this discussion in an android
commit. :)

~~~
ethbro
Don't forget creating a wikipedia article referencing both this discussion and
the commit as sources.

------
Eleutheria
I wish they had an agreement with Apple for the next 10 years for the use of
Swift so we could write our apps once and run everywhere.

But we all know the NIH syndrome, which is a shame since everybody is adopting
Google's web extensions standards and they should adopt whatever is best for
all in other technologies too.

~~~
Grazester
Swift? As an Android Developer I think it would not be a great idea. C# maybe
a better language(wasn't that open sourced?). It much closer to java than
swift is and would allow people like me to move cover over faster.

I started off as a C# developer and had not done any real work in java before.
I was able to move my C# code(couple thousand lines of code) over to Java in a
matter of hours.

Anyway I do not wish or hope for a language change period.

~~~
Reason077
Given that you know C# and Java, you should not have a great deal of trouble
learning other C-family languages, including Swift.

Objective-C was/is a bit of an exception to this, as it's "funky" syntax could
be a bit intimidating to developers coming from other languages - one of the
motivations for Apple's switch to Swift was to address this.

