
Oracle v. Google and the future of software development - nkurz
https://www.blog.google/outreach-initiatives/public-policy/our-fight-protect-future-software-development/
======
int_19h
A reminder that what the law says, and what is a good idea, is not necessarily
the same thing. The courts rule on the first point. Given that Oracle has
prevailed in court on this before, one has to at least entertain the
possibility that our law really allows for API to be copyrighted.

But if so, that law desperately needs to be amended - the nature of APIs, at
least public ones, is such that interoperability concerns override everything
else, IMO. If companies can copyright an API and block competitors from
implementing it, that would be very detrimental to the industry as a whole,
for the sake of a few rent seekers profiting.

~~~
curt15
>If companies can copyright an API and block competitors from implementing it,
that would be very detrimental to the industry as a whole, for the sake of a
few rent seekers profiting.

The practice of writing drop-in replacements for software products is as old
as the software industry, even those replacements that diminish the original
product's commercial value. E.g gnu/linux vs proprietary unix.

~~~
kadendogthing
Google didn't do this to be interoperable. There is no set of software
interoperable with Android's Java runtime. Not even the court bought this
argument, because not only is it ridiculous on its face, but it's technically
not true.

Why do people involved in tech keep repeating this?

~~~
sangnoir
> Google didn't do this to be interoperable.

This is a bold claim - but I suspect your definition of "interoperable" is
stricter than common usage (i.e. executable)

> There is no set of software interoperable with Android's Java runtime.

Countless 3rd party libraries _are_ interoperable with Android - the few that
aren't probably rely on sun.* - I suspect google did do this to be
interoperable with 3rd party libraries as well as Java developers' mental
model of where to find things.

~~~
kadendogthing
>This is a bold claim

No it's not. Google even conceded this in court.

------
crispyambulance
This multi-year legal battle seem like insanity to me.

What does Oracle, who practically prints money, expect to get out of this
other than exercising a fleet of expensive lawyers? At best the case was
always iffy and even if they "win" it's unclear what that really means for
them given the inevitable subsequent legal maneuvers. Even more puzzling is
how are they making the argument that Google has, in any way, harmed their
business?

It's just mind boggling. A slip-and-fall insurance scam makes more rational
sense to me.

~~~
toyg
Oracle doesn’t actually print money. They are cash-rich but are struggling to
convert long-suffering customers from on-prem products to their cloud
equivalents. Nobody trusts them; you can sort-of deal with a crocodile that
shows up once a year to collect, but when you go SaaS you are basically
walking by the crocodile all the time, hoping it won’t bite you with higher
prices at a day’s notice. And their support is not very good either, which
again is more critical in saas scenarios than on-prem.

In this situation, a significant new revenue stream ( an Android tax) is
definitely worth fighting for. And Ellison loves lawyers; he even sued to
compete in the America’s Cup...

~~~
AnthonyMouse
> In this situation, a significant new revenue stream ( an Android tax) is
> definitely worth fighting for.

Except that there is no hope of that ever happening. Even if Oracle won in a
big way, then Google would eat the one-time cost of deprecating the Java API
on Android, similar to what Apple did between Objective C and Swift. There is
no sustainable revenue stream there.

~~~
danjac
So Objective-C -> Swift, Java -> Go?

~~~
hardlianotion
Java -> Kotlin, surely?

~~~
usrusr
Still the same stdlib API, at least the way Google has introduced Kotlin to
Android. If they had any ambition to use Kotlin as their vehicle for
abandoning the Java API I would expect at least some visible efforts of
opening Flutter to languages other than Dart. But in typical Google fashion
they seem to deliberately avoid forcing their teams down in the trenches into
some unified grand strategy, giving them the freedom to build the best version
of their product that they can. Given Google's deep pockets and how badly
coordination overhead would scale to their project dimensions, this hands-off
approach seems reasonable enough.

------
thejerz
I've read all the Oracle v. Google decisions, with a strong command of
software and IP, and I side 100% with Oracle. It is not a question of whether
the world would be better if API's were open-sourced (in re: EFF amicus
brief), or whether Mr. Ellison needs a new yacht (in re: comments on HN), or
whether copyrights are a good thing (also re: HN). The question is whether the
copyright of the Java API is enforceable.

Here's the bottom line: Google didn't have to call it's resizable array
java.util.ArrayList<E> \-- it could have made android.data.ResizableArray<E>.
But they didn't. Google copied the method signatures, and more importantly
their organization into packages, to avoid the "drudgery" of defining their
own original API. While a function that finds the minimum of two numbers --
int min(int a, int b) -- can arguably only be written one way and may not be
enforcable, the issue isn't any one method's signature. The issue is that the
Java API is an original, curated taxonomy of classes, methods, and interfaces,
organized by authors. And taxonomies are protected under copyright. In the
case of the Java API, the whole API taxonomy is greater than the sum of its
method signature parts. Oracle owns that taxonomy.

~~~
lucio
If that holds. Intel will sue AMD into the ground. "The 8086 API and
instruction set, is an original, curated taxonomy of classes, methods, and
interfaces, organized by authors"

~~~
hajile
There's a cross-license agreement in place there that would certainly cover
such case -- even if they were ruled to be implicit.

~~~
stingraycharles
This is important: this shows that AMD and Intel agree that these instruction
sets are indeed protected and should be licensed.

~~~
pgeorgi
And yet there's fx!32 (WinNT for Alpha), x86emu (of XFree86), Bochs, VMware,
parallels, Plex86, QEMU plus numerous other implementations of i386+ in
software (one of them shipping in Windows 7 and newer to run PCI Option ROMs)
where nobody seems to care too much.

OTOH, ARM was rather adamant about not wanting to see ARM instruction set
implementations in software for a long time.

Either they saw the value in these emulators existing so that changed their
minds - or somebody didn't let themselves be bullied into compliance: just
because a company threatens you with lawyers doesn't mean they actually have a
case.

------
me551ah
Interestingly Microsoft also had it's own set of problems with Java when Sun
was at the helm. Windows used to ship with Java and Visual studio had java as
a first class citizen. Microsoft being microsoft, added extensions to Java
which only worked on Windows which Sun didn't like. Microsoft ditched java,
stopped shipping it with windows and created C#. Thanks to Microsoft , C# is a
far better language than what Java is today and developing on windows is a
breeze.

Google on the other hand, has not focussed on developers much. I've been
building on android for a few years now and the IDE is derived from IntelliJ (
Earlier you had to use eclipse which was even worse ). They could have easily
gone the MS way and used another language or one of their own. Major language
features are delayed, the code is incredibly verbose(kotlin tries to solve
that to a small extent) and they are fighting a lawsuit which if they lose
would be pretty expensive.

~~~
okr
Google does not sell to developers, which is fine by me. But i personally use
some libraries with google package names. Even the infamous Guava one.

~~~
tech_dreamer
Guava is a nice utility lib. Why do you consider it infamous?

~~~
okr
Guava is great, thats why its used often. And if you combine projects with
each other (hadoop, spark, etc..), they bring in their own guava API level
dependency. Normally that is not a problem, if you stick to non @Beta methods,
the highest version is used.

I did not find it on the spot, but i remember, there was once a written
promise made by the Guava people to remain compatible to a certain API
version. And then they broke that promise by changing public signatures or
removing methods. Vividly i have the Stopwatch example in my head.

Many projects went on to shade guava.

And thats what it is infamous for.

------
achille
How many projects would be affected if the Supreme Court sides with Oracle and
rules that APIs can't be reimplemented?

Java is open source, but copyright is retained by Oracle. Would this affect
say, Amazon's ability to rip off the MongoDB API? What about open source x86
emulators? (Intel IP) Hercules IBM emulator? Any of the Nintendo, SNES etc
game emulators?

~~~
throw_away2
Or, say, an S3 compatibility layer for your cloud storage system:
[https://docs.cloud.oracle.com/iaas/Content/Object/Tasks/s3co...](https://docs.cloud.oracle.com/iaas/Content/Object/Tasks/s3compatibleapi.htm)

I'm not surprised by Oracle's hypocrisy. I'm surprised anyone with a soul and
functioning sense of right and wrong still works there.

~~~
colejohnson66
If Oracle succeeds and Amazon proceeds to sue Oracle for that, that would be
some sweet schadenfreude. Granted, I’d still be pissed at the decision, but to
have Oracle’s tactics used back at them would feel really nice.

~~~
PetahNZ
Oracle would just sue them back for Aurora's MySQL compatibility. If not sue
them first.

~~~
jhall1468
They'd lose for the very same reason that Android is within the confines of
the law via the Android Runtime. Dalvik violated the Java license, Android
Runtime isn't. Aurora's compatibility layer isn't violating the MySQL license
either.

~~~
wtallis
> Dalvik violated the Java license, Android Runtime isn't.

Can you elaborate on this point? What license for what copyrightable work did
Dalvik violate, and why does Android Runtime not violate that same copyright
license?

~~~
jhall1468
The issue at hand was licensing. In the Android Runtime, Google is linking to
the OpenJDK libraries rather than using it's "reverse engineered" runtime.
OpenJDK is GPL with a classpath exception, which Google is utilizing.

The caveat for Google is any changes to the OpenJDK itself has to be
upstreamed. But the Android Runtime itself doesn't have to be GPL due to the
classpath exception.

In all honesty, this is how they should have done it in the first place.

~~~
wtallis
That sounds more like an allegation that Dalvik was lacking a required license
from Oracle, not that it was violating any existing license.

~~~
jhall1468
It was violating the open source license, thus required a commercial license,
which it didn't have, which in turn makes this copyright infringement. At
least that's the position of the courts so far.

------
bithavoc
I'll appreciate links to previous discussions about the subject but let's say
I create the next big thing in the JVM world(the next Kotlin compiler or
something like that), it targets the JVM and I happen to replace the
implementation of `String.getBytes` at linking time while keeping the same
method signature. How big do I have to be for Oracle come after me and ask for
royalties of any Enterprise services I could be selling on top of my product?

~~~
gcbw2
> How big do I have to be for Oracle come after me

Depends on Oracle balance sheet that quarter. Or if they have sold/licensed
the patents to other trolls.

------
chimen
There was a story on the fp 2 months ago by someone who went to an interview
at Google to present her work (didn't work out) only to find out that a patent
was later filed by Google covering much of the presented material.

Reminds me of the McGreggor vs Khabib fight - "it's only business"

~~~
evanjd
[https://patentpandas.org/stories/company-patented-my-
idea](https://patentpandas.org/stories/company-patented-my-idea)

------
lawrenceyan
It was slimy moves on Oracle's part through and through. It's like the only
reason they chose to have acquired Sun Microsystems was so they could go and
patent troll with it. Some seriously sad future that Oracle is heading towards
if this is their definition of continuing innovation and growth.

~~~
j1vms
Also, don't forget that Ellison was a former Apple board member, and probably
not entirely unbiased on giving Google a rough time, and thus rallied behind
Jobs when he vowed: "I'm going to destroy Android, because it's a stolen
product. I'm willing to go thermonuclear war on this." [0]

Of course, it was maybe just Ellison shrewdly leaping on a opportunity to
profit off an undervalued ecosystem (Java) at the time. Going on almost a
decade now, things certainly proved to be not so clear cut in Google favor,
and might still pay off.

[0]
[https://www.bbc.com/news/technology-15400984](https://www.bbc.com/news/technology-15400984)

~~~
monocasa
Seriously him and Jobs literally would wear matching "best friend" t-shirts.

------
temp-dude-87844
This blog post is laundering history. The choice quote: "With smartphone apps
now common, we sometimes forget how hard it once was for developers to build
apps across a wide range of different platforms. Our 2008 release of the open-
source Android platform changed the game." This could be equally said of Java
itself, a good eight to ten years prior, which brought a serviceable userland
onto desktops of all kinds, mobile phones of the day, and embedded devices
too. They lifted that API to bootstrap the developer ecosystem for Android
after their efforts to license Java from Sun failed, and did a different
cleanroom implementation underneath.

In the gold rush to develop Android apps, their frozen-in-time copy of the
Java ecosystem rose to prominence and sought-after Java libraries were held
back for years to lag behind official Java's versions. Differences between
Android's facsimile of Java and real Java (from plenty of other vendors)
caused confusion and divergence to the Java ecosystem, as Oracle's own efforts
to leverage Java faltered too. Android's popularity de facto forked Java for
years and did so without the permission of the rightsholder. If the
copyrightability of APIs isn't the answer we want in the field, what
instrument do we need to prevent the same from happening to other products
too?

~~~
ori_b
> what instrument do we need to prevent the same from happening to other
> products too?

...We don't need such an instrument, because the outcome you mentioned is
desirable.

If we had such an instrument, Linux would not have been possible, because it's
compatible with the Unix APIs. OSX would not have been possible, for the same
reasons.

~~~
temp-dude-87844
The difference between a blob storage system that implements an
"S3-compatible" API, and AWS S3, is that no one is mistaking the other
offering for S3. Dozens of libraries that implement the S3 API as a client,
and offerings that implement it in the server aren't under pressure to diverge
between fake S3 and real S3, because the API is feature-complete, and doesn't
change in meaningful ways. There may be monetary harm to S3 from the
competitor cloning their API and competing with them on price, but there is no
reputational harm to S3.

It would be revisionist to claim that there was no reputational harm done to
official Java by Android's lookalike Java -- irrespective of any mismanagement
by Oracle of the Java platform. How does one prevent _that_?

~~~
toyg
“Reputational harm” comes from trademark infringement, not copyright.

And no, you cannot prevent this sort of scenario without losing the right to
interoperate with most software.

------
mmaunder
There is a view that WordPress plugins are open source because they inherit
the WordPress GPL by using the WP plugin API. This case seems to apply in that
the question is whether APIs are copyrightable. In other words, is one able to
apply a license to an API that affects code and devs that use that API.

So if Oracle loses, I wonder if that will have the unintended consequence of
making WP plugins not inherit the GPL, which currently forces them to be open
source. It could have similar effects on other projects.

~~~
belorn
The wordpress argument is about the question if a court would see a plugin as
an independent work, or as an modification of wordpress. Copyright law allows
for independent works to interface with each other without permission from
both authors, but do not allow modification of a work without permission.

The distinction between a modification and a interface is an interesting
legally gray area, but it is not relevant to the claim that Oracle is making.
They say that the interface itself in Java was artistically made and thus made
the header files copyright-able. If the courts agree with Oracle then it makes
it impossible to write software that have compatible interface, since it is
(almost) impossible to do so without creating copies the interface.

~~~
wtallis
Is there anything in the Federal Circuit's ruling that restricts the
consequences of API copyright to independent implementations of APIs, and
ensures that consumers/users of the same APIs are not treated as derivative
works of the API?

~~~
belorn
Not that I know of, but in general the idea of independent implementations of
a compatible API is practically impossible. In order to be compatible it need
to match, and while you can make a independent implementation of the libraries
you will still need to copy the API definitions in order to be compatible.
That is the part that Oracle sued for.

------
sbr464
If anyone hasn’t seen oyez[1], I highly recommend it. It’s a simple web app
that plays back Supreme Court proceedings, showing the current speaker etc.
It’s somewhat intoxicating to listen to history in the making. If you click on
the oral argument link, you get the dialogue experience[2].

[1]
[https://www.oyez.org/cases/2018/17-204](https://www.oyez.org/cases/2018/17-204)

[2]
[https://apps.oyez.org/player/#/roberts10/oral_argument_audio...](https://apps.oyez.org/player/#/roberts10/oral_argument_audio/24778)

~~~
hoerzu
This amazing!! Better than podcast

------
ahyattdev
Would this make the WINE project in violation of copyright for MS Windows?

~~~
raymond_goo
Yes

------
m0llusk
Sorry if this dumb, but what does a fossil like Oracle have to do with the
future of software development?

~~~
_bxg1
Oracle bought Sun, the company that created Java. Android was designed in such
a way that code written for the Java Virtual Machine could run on it without
modification, though the implementation itself is totally original. Oracle is
claiming that even the set of vocabulary used by Java programs to talk to the
JVM - not just the JVM itself - is copyrighted. This vocabulary is otherwise
known as an API. APIs live between every piece of software and every other
piece of software it talks to. If the precedent was set that you could
copyright an API, it would be a catastrophe for people's ability to build
software on other software.

~~~
Forge36
If Oracle wins what would that mean for a project such as WINE? My
understanding is that Microsoft could cite precedent and request WINE pay
royalties as a standard install of windows.

~~~
_bxg1
Precisely, unless they decide to continue their recent good-guy streak.

------
valleyjo
So Oracle is saying that google violates copyright by implementing certain
java interfaces for android? I’m not sure how java and android work together.
Does google provide a java wrapper and then go under the hood and implement
those APIs for the android device?

~~~
snarfy
They use the same signatures in the header files, e.g.

    
    
        int add(int, int); //adds two numbers
    
    

Oracle is claiming copyright on a similar bit of text. If Oracle wins, any
developer writing a method with that signature is violating Oracle's
copyright. It's insanity.

~~~
treis
That's not true. If you independently come up with that then there is no
copyright violation. Especially if it's a single method out of a large API.

~~~
blihp
But there's the rub: they are claiming the API is copyrightable, not just the
code that implements it. Independently coming up with the code is irrelevant
if the API being (re)implemented is copyrightable.

~~~
treis
Yes, I understand that. My point is that simply defining add(int, int) isn't
infringement. You have to actually copy something for it to be infringement.
Independently coming up with a small portion of an API is not copying and not
infringement.

~~~
dralley
There's not much of a difference, practically speaking.

If you can copyright the structure and organization of an API, then
interoperability becomes impossible. If every API has to be unique enough that
it doesn't violate the copyright of anyone else in the same problem space, you
can no longer create compatible reimplementations.

~~~
treis
>There's not much of a difference, practically speaking.

It means you can come up with your own API design without infringing on
someone else's copyright.

>If you can copyright the structure and organization of an API, then
interoperability becomes impossible.

It doesn't become impossible. It simply means that people need to follow the
license that the API has. If the Java API was valuable to Google then they can
pay the creators a license fee to use it. If the license fee is too expensive
or comes with unacceptable terms then don't use it. Write your own or use some
other API with a more permissive license.

------
AnimalMuppet
Appealed to the Supreme Court? That's good news. They've shown more sanity
than many other courts on intellectual property issues. Maybe we can get the
idea of copyrighting APIs finally shot down...

------
cco
I've followed this case a bit and read a few articles for each side, given our
current legal framework I haven't seen a good argument against Oracle.

Is there something obvious I'm missing?

~~~
zmmmmm
Do you understand copyright? Copyright protects the specific expression of an
idea, it doesn't protect immutable facts. An interface is an immutable fact.
That's the essence of the argument.

~~~
empthought
It's a shit argument, because software interfaces are no more and no less
"immutable facts" than software implementations. Oracle is correct here; fair
use and copyright law need legislative intervention to fix the problem.

~~~
jhall1468
It's a Table of Contents at best. There's nothing "original" about System.out
or StringBuilder.append. The only reason this case has seen success is because
the appeals court ruled that an API is akin to a taxonomy and that a taxonomy
is copyrightable. The problem I have with that is that facts _aren 't_
copyrightable.

You can append to a string. You can prepend to a string. You can reverse a
string. And that's all API's are. There definitions of things you can do to a
given structure. If the API was "Shazam.PowerBuilder.AwesomeThing()" I'd
understand this position. But it wasn't. It was obvious lists of "facts" about
given structures.

~~~
treis
>You can append to a string. You can prepend to a string. You can reverse a
string. And that's all API's are. There definitions of things you can do to a
given structure. If the API was "Shazam.PowerBuilder.AwesomeThing()" I'd
understand this position. But it wasn't. It was obvious lists of "facts" about
given structures.

But in Java I can't add to a string. I can't prefix a string. Nor can I invert
a string. So the things you mention aren't mere definitions or facts about
things you can do to a string. They're methods specifically chosen by the
language designer to be useful and those choices are a big part of what makes
Java different from Ruby, for example.

------
shmerl
EU ruled that APIs are not copyrightable because they are too abstract. It's
really bizarre, US courts didn't yet come to the same logical conclusion.

~~~
colejohnson66
The court did. But the appellate courts (who are known for being pro patent)
said the ruling was wrong

~~~
shmerl
Well, let's hope Supreme Court will restore sanity in this case.

------
tzs
I'm a bit confused about why Congress made appellate jurisdiction with CAFC
work they way it does with patent cases.

The usual justification for giving courts supplemental or pendant jurisdiction
over subjects for which they normally lack subject matter jurisdiction when a
case involves both something they do have subject matter jurisdiction over and
something they do not is that there they will usually be arising out of the
same facts and involve the same witnesses.

If they were heard in separate courts, many witnesses would have to appear to
both and that could be a hardship on them.

For appellate cases there aren't witnesses. It's just the lawyers arguing from
the record from the trial court.

If the original case involved both patent infringement and something else, the
patent aspects of the appeal are going to be handled by patent specialists,
and the other aspects are likely to be handled by different lawyers.

Thus, I don't see why the appeals should be bundled together and all sent to
CAFC. Why not send the patent appeals to CAFC, and the appeals for other
aspects to the ordinary appellate court they would have went to if there
weren't also patent appeals?

Furthermore, in the Google vs. Oracle case the second trial was just on the
issue of copyright fair use, wasn't it? Apparently even though the trial court
there was just dealing with copyright, because the original action why back at
the beginning had a patent claim, it goes to CAFC even though there is now
nothing involved that they normally handle.

If we are going to have this screwy appeals path, how about allowing CAFC
decisions on matters that are normally out of their jurisdiction, such as
copyright, to be appealed to the regular Circuit Court of Appeals they would
have normally gone to? CAFC is supposed to follow the regular Circuit Court of
Appeals for precedent on such matters, so it seems crazy that the appeals path
does not go through that court. As a general principle, if court X is supposed
to follow court Y's precedent for something, court Y should be in the appeals
path of court X.

~~~
dragonwriter
> I'm a bit confused about why Congress made appellate jurisdiction with CAFC
> work they way it does with patent cases.

Economy of justice; otherwise, an appeal of a mixed case would often actually
be two separate appeals to separate circuits, each of which would often make
some legal decision and remand to the trial court, which would potentially
have to wait for both appellate decisions before proceeding, especially if
either required a new trial, since those new trials would have overlapping
witnesses, etc.

------
scottlocklin
Can't they both lose?

~~~
microdrum
Exactly. Kent Walker's post oozes unearned righteousness. Does _anyone_
believe Google will not be doing the exact same thing with its (moribund)
technologies in, say, 5-10 years?

~~~
dragonwriter
> Does anyone believe Google will not be doing the exact same thing with its
> (moribund) technologies in, say, 5-10 years?

I expect that they won't, if they win at the Supreme Court in this case, since
there will be unambiguous controlling precedent that they _can 't_.

------
throwaway415415
I know for a fact that Oracle has weird rules targetting doing business with
specific companies because someone from these companies did something bad to
them at some point. It usually involves suing them as well. The culture is
really weird there as management is some sort of monarchy. I wouldn't be
surprised if this one has similar roots.

------
xedrac
So if I write a small API that for all intents and purposes is identical to
one that Oracle owns, but I write it in a different language, is that still
infringing on their copyright? It seems that would have to be the case in
order for a pro-Oracle ruling to make sense. If not, then everyone has a good
reason to stop using Java.

------
raymond_goo
Here is a great analogy for Software APIs:

They are the same as the ingredient lists in a "100 traditional recipes" book.

Recipes have a name, they have ingredients and they have detailed instructions
how to make the end result out of the ingredients.

The detailed instructions are copyrightable but the recipe name and the list
of ingredients are not!

------
sathishvj
The primary loser in all of this is Java.

Companies must be actively reconsidering their involvement with Java - I know
a handful.

Google, on their part, is pushing Kotlin to avoid the Java branding. Next is
Flutter to entirely get off Java. There seems to be some evidence that they're
also beginning to avoid the Android brand in places.

------
linkmotif
I’m not a legal person or a supporter of Oracle but intuitively I’ve always
felt their side of the story. The Java APIs are interfaces, but they’re the
result of tons of work which Oracle bought, and it doesn’t make sense to me
why those interfaces aren’t their intellectual property.

~~~
monocasa
> The Java APIs are interfaces, but they’re the result of tons of work which
> Oracle bought, and it doesn’t make sense to me why those interfaces aren’t
> their intellectual property

Just because something takes work doesn't mean you get a government monopoly
on it. Sewing patterns and recipies aren't granted copyright for instance.

~~~
empthought
The trouble with this line of thinking is there's no viable way to make a
legal distinction between interface and implementation. So either interfaces
are copyrightable, or code isn't copyrightable.

~~~
ApolloFortyNine
>So either interfaces are copyrightable, or code isn't copyrightable.

Needs citation?

I don't know where to start, but no, this case ruling in Google's favor would
not make code uncopyrightable. The general idea is that there is only one way
to copy a method's signature. There are many ways to implement the actual
logic. It's hard to find a direct source since no one else is jumping to this
extreme conclusion. So the test is, could you have done it another way? And
since you can not have a function with the signature System.out without having
a function with the signature System.out, it would be considered fair game.

------
sharmi
Food for thought:

Say Oracle wins. Now android comes with a price tag.

Doesn't that mean, some open source alternatives like FirefoxOS or
PostMarketOS will get more mindshare?

A cursory look at all the open source alternatives, shows that they are all
based on Linux. So interoperability could be achievable.

It could be whole new world!

~~~
zanny
Google would only be able to sell new versions of Android, mainly starting
with 10. They can't revoke the Apache license on Android through version 9.

On top of that, Android 7 already switched to OpenJDK. It no longer uses
Harmony as a result in addition to their custom rewrites. So even if Oracle
wins, Android hasn't been in violation of any API copyright they have for
about two years now.

------
dzonga
not forgetting an infamous HN comment: "lawyers are profit centers at Oracle"

------
Mikeb85
Well, the end result will be Google replacing Android with Fuschia, Java with
Go and Dart, and Java no longer being relevant in the mobile space.

------
edem
There was an article on a blog which I can't find now where the author
explained this situation in depth. Do any of you have a link to it? I think it
would be useful here.

------
pjmlp
Same old Google.

Had they not tried to screw Sun and then left it to die instead of acquiring
it, this would never had happened.

"James Gosling Triangulation's Interview on Google vs. Sun"

[https://www.youtube.com/watch?v=ZYw3X4RZv6Y&feature=youtu.be...](https://www.youtube.com/watch?v=ZYw3X4RZv6Y&feature=youtu.be&t=57m42s)

Even with their switch to OpenJDK, they keep cherry picking standard Java
APIs, forcing Java library developers to write two versions of their libraries
or make do with minimal common denominator.

~~~
dlubarov
> they keep cherry picking standard Java APIs, forcing Java library developers
> to write two versions of their libraries

Can you give some examples of what Android is missing? I know it doesn't
implement various packages like awt, swing, javafx, etc., and of course
sun.misc.Unsafe. But I wouldn't consider any of that "core Java", and a lot of
it doesn't exist in Java ME either.

Are there any disparities in "core Java" libraries, like java.util?

~~~
pjmlp
They don't exist in Java ME, but a large majority does in Embedded Java,
depending on which compact profiles are supported.

They also existed in SavaJe OS.

As for examples, just use the API diff tool and search for java.lang*
modifications.

[https://developer.android.com/sdk/api_diff/<version>/changes](https://developer.android.com/sdk/api_diff/<version>/changes)

Or play around with the API level on the reference docs.

To be more concrete:

\- Locale.Builder, Java 7, introduced in Android 21

\- java.lang.invoke package, Java 7, introduced in Android 26

\- java.nio.file package, Java 7, introduced in Android 26

So one needs to do API hunting or just target the very latest versions to be
on the safe side that an APK won't just blow up on user's device.

~~~
wtallis
> To be more concrete:

> \- Locale.Builder, Java 7, introduced in Android 21

> \- java.lang.invoke package, Java 7, introduced in Android 26

> \- java.nio.file package, Java 7, introduced in Android 26

Should the legal status of Android _really_ depend in any way on whether or
not it is _done_? Is there any practical way to define public policy that
allows a work-in-progress reimplementation for competitive purposes but
prohibits an incomplete reimplementation that you don't intend to flesh out to
100% compatibility?

~~~
pjmlp
Yes, Google Android J++ should be slammed 100% the same way as Microsoft one
was.

Google has created a fork in the Java community.

~~~
wtallis
Can you please try to address the distinction between work in progress vs. not
even trying for 100% compatibility? Are you saying that neither should be
legal, but a complete and 100% compatible reimplementation should? Or are you
saying that reimplementations should not be legal regardless of how complete
and compatible they are?

~~~
pjmlp
I am saying that Google has done exactly the same to the Java community as
Microsoft did with J++ and should suffer the same outcome in court as
Microsoft did.

It was wrong for Microsoft, it is just as wrong for Google.

Implement whatever Android specific APIs they feel like, but just like ISO C
or ISO C++, don't fork the Java standard library.

~~~
wtallis
> I am saying that Google has done exactly the same to the Java community as
> Microsoft did with J++ and should suffer the same outcome in court as
> Microsoft did.

As far as I can tell, Sun sued Microsoft for trademark infringement, and
Microsoft settled. Which part of that applies to Google?

It really seems that you've decided you want Google to lose regardless of the
legal basis used by Oracle. Whereas I think Google should win _because_ of the
legal basis Oracle is attempting to use. I don't actually care whether Google
ends up having to pay Oracle some money; I just don't want the entire legal
foundations of the software industry to be retconned by this case.

~~~
pjmlp
Sun sued Microsoft for changes to the Java platform, making it not compliant
with the trademark.

I want Google to loose because they succeed where Microsoft failed, forking
Java eco-system, and having a bunch of people that call Microsoft the evil
empire, actually supportive of Google's actions.

------
narsins
Wait a minute. Oracle acquired Sun. And Google acquired Android. Oracle trys
to lock down API of Java. Google locked down their services and PlayStore by
Google account. Oracle sued Google for Java API usage. Am I missing something?
:)

------
profalseidol
Google should've definitely paid Sun for licensing.

------
liveoneggs
is Java a standard now? Did ECMA/ISO pick it up?

------
BucketSort
This is a really good case for the supreme court. As much as we may wish to
side with Google because it benefits the typical developer, it is a nuanced
case that requires some serious legal study. I can see the argument for these
API's being in the public domain due to their widespread use, but at the same
time, that sets a precedent for making success anti-competitive. I'm reminded
of the cases where brands lose their trademark because their brand becomes the
generic name. Can that be seen as a precedent in favor of Google's case? I.e.
that once something becomes so widely used it becomes generic and free game
for others to use freely?

------
fxfan
Lots of FUD here. Please see cwyers's answer on this page to see that a ruling
in favor of Oracle will change little in terms of where software stands today.
Almost all the use cases we see are fair use- except Google's where they
deliberately harmed the Java ecosystem, the way Microsoft tried in 1998 (PS:
Their JIT actually beat Sun's so in that particular case better technology
lost because it was illegal)

~~~
throwaway67215
(IANAL, this is not legal advice.)

I wish you, and cwyers, would provide better reasoning as to why this is all
FUD before decrying it as such.

I'm not seeing how "doesn't harm the ecosystem" is a fair-use defense. What
logic are you using to arrive at a fair use argument for Linux's copying of
Unix APIs that doesn't apply to Google's case?

I'll pose the same examples to you as I did in another thread: IIRC (it was a
_long_ time ago) Window's APIs closely resemble or are exactly like OS/2's PM
APIs. Windows, one might argue, _definitely_ harmed OS/2's "ecosystem", since
the latter is virtually extinct in the mind of the public. Is that a violation
of copyright?

Especially since _nobody_ thought APIs were copyrightable right up until
Oracle decided to declare them as such, nobody has put anything regarding them
in licenses. Nobody has thought that they even _needed_ a license, much less
obtained one, and a lot of effort has been built on top of products that are
backwards compatible with things from many decades ago.

~~~
fxfan
You know the great thing about copyright? Nobody has to say anything. If it's
creative work then you automatically have a copyright. You don't need a (c)
1988-2019 for that.

------
gok
On the one hand I feel bad for Google. On the other hand, if this is what
ultimately ends the twin blights of Java and Oracle on our industry... so
worth it.

------
fastbmk
Oracle is right. Google & Android hinder and split Java with their outdated
Java version support. If you write code in Java - now you have to decide
whether you want it to be Android-compatible, then you need to limit your code
to the outdated API available on Android. Or you can write sterling Java code
which can use modern Java API. I hope Oracle wins and Android dies or switches
to some other programming language, like Dart or whatever Google is capable
of.

------
gpsx
I don't think Sun should have protected the code for Java. But I think it
should be possible to protect it. Most people here may hate the Jaa language
but it took a ton of work and expertise to invent it. And it took something to
make the ecosystem as large as it is today. This seems to contain as much
intellectual property as something like a book. And when it come down to it,
the intellectual property is in the method signatures anyway. There is no big
trick to the code inside them. An intern could write that.

As the lesser of two evils, I prefer Google to Oracle. And I hate patent
trolls, especially this instance of it. But at the same time I don't want to
reduce the legal value of software. If java is not protectable, is a program
like Micrsoft Word or Autocad?

~~~
sam0x17
All of that said, if Google had to pivot by rewriting android in, say, Go,
that could be extremely good for the Android ecosystem.

~~~
monocasa
Given that Oracle is claiming copyright on the public API, they can't do that
without also removing support for literally the entire app store. It doesn't
matter if it's in Go or Java.

~~~
sam0x17
Yeah, that's the exciting part :D

------
armini
While I don't endorse the sneaky way Oracle purchased the rights only to sue
Google it does highlight what happens when you become complacent and lose
focus on what's important.

In an open market Google also had the change to buy those intellectual
properties but at the time, they thought they are too smart for everyone with
silly bids like the Pi bid
[https://www.theguardian.com/technology/2011/jul/02/google-
pi...](https://www.theguardian.com/technology/2011/jul/02/google-pi-auction-
bid)

If you're serious about an industry, you work to reinvent it like apple has
done with their operating system and hardware. If you take shortcuts then you
need to face the music and in this instance Google has been out smarted by
another industry competitor.

If we support open competition and we believe in Darwin's theory of evolution
then Google is the inferior because they took shortcuts & didn't make serious
investments in owning the mobile landscape.

~~~
dantheman
This lawsuit is nonsense. Do you think that APIs can be copyrighted? This will
kill innovation and competition.

~~~
Spivak
I don't see why they shouldn't. They're definitely creative works that take
skill to produce.

I think using an API for the purposes of interoperability should be allowed
under fair use.

However! My controversial opinion is that Google's use of the Java API _wasn
't_ for interoperability. They didn't use the Java API so that Java programs
could run on Android, they used it so that Java developers could transfer
their skills to a new platform which is precisely the value of a cleanly
designed API -- value that Oracle doesn't want to provide for free.

~~~
barrkel
_I don 't see why they shouldn't. They're definitely creative works that take
skill to produce._

You're missing an argument in there that joins your two assertions.

The fact that something is creative or requires skill to produce doesn't mean
that it should be copyrighted.

Copyright is a government enforced monopoly. In order for society to enforce
that monopoly on behalf of private enterprise, there has to be a quid pro quo.
The usual one is to promote creation and distribution of new works.

The question then is: would no APIs exist if they weren't copyrightable?

~~~
empthought
You have made a good case for adjusting fair use legislation to accommodate
the general practice around software APIs vs. implementation.

Unfortunately courts generally can't write laws for the legislature.

