
Google: Oracle Java win will kill software development, so SCOTUS must rule - rbanffy
https://www.zdnet.com/article/google-oracle-java-win-will-kill-software-development-so-supreme-court-must-rule/
======
indigochill
So here's a question: supposing APIs become copyrightable, doesn't that imply
there also must be a way to license API implementations, including issuing
free and open licenses?

So although the idea of copyrighting an API strikes me as generally stupid and
it could clearly be problematic for some developers in the short term, surely
this isn't really that much of a hassle in the long term? People will just
explicitly state whether or not they want to allow others to implement their
API?

I don't really consider that an improvement, but neither does it seem all that
disastrous.

I'm also curious how this will affect the geography of software development.
Since the SCOTUS' jurisdiction only covers the US but there are international
copyright treaties, will this decision affect development outside the US?

~~~
fixermark
In theory, the market will adapt to track this layer of copyright, but the
short-term shock effect is large. Since nobody's assumed APIs are
copyrightable 'til now, nobody's been keeping track. So every API currently in
use is under threat (especially since in the US, you don't have to file a
copyright claim to have copyright; if you can just prove your API came first
and there's reason to believe the younger API was familiar with your own, you
can claim statutory damages, IIUC).

It'll be exciting to see how many of Oracle's APIs are 100% derivative of some
software released under Copyleft licenses... ;)

------
mmusson
The problems will come when it is claimed that some other thing is really just
an API, and also subject to this ruling.

Is public inheritance and interface implementation no longer allowed in Java?
I can think of several ways to duplicate parts of the Java API. I don’t see
how courts will draw a legal distinction.

~~~
pron
IANAL, but there are several things going on:

> The problems will come when it is claimed that some other thing is really
> just an API, and also subject to this ruling.

This is not so simple. The court ruled only about a particular case that
concerns an API under the "traditional" definition (the only thing we used to
call API until not long ago) -- an API that is actual code -- and not other
things that some are calling APIs, such as protocols (so-called REST "APIs").
One cannot simply claim that the ruling applies to other kinds of things, like
protocols, regardless of whether programmers think they are similar or even
"essentially the same." For example, in the US programs are protected by
copyright but not patents while algorithms are protected by patents but not
copyright. I imagine that at least part of the reason for this distinction can
be found here:
[https://www.law.cornell.edu/uscode/text/17/102](https://www.law.cornell.edu/uscode/text/17/102)

 _(a) Copyright protection subsists... in original works of authorship fixed
in any tangible medium of expression..._

 _(b) In no case does copyright protection for an original work of authorship
extend to any idea, procedure, process, system, method of operation, concept,
principle, or discovery, regardless of the form in which it is described,
explained, illustrated, or embodied in such work._

A program (and an API) are some text "fixed in a tangible medium of
expression" while an algorithm (and a protocol) are an _idea_ described in
some text (although the description text itself may be copyrighted; an
algorithm book, including the pseudocode of the algorithms, is copyrighted,
but the algorithms themselves are not). Ideas can be covered by patents, not
copyright.

> Is public inheritance and interface implementation no longer allowed in
> Java?

Leaving aside the fact that Java is 100% open source and the license
explicitly allows this kind of use (and in a non-viral way thanks to "the
classpath exception")[1], your question is similar to, if a recording is
copyrighted, is listening to it no longer allowed? One can make _fair_ use of
copyrighted works. This would not only apply to subtyping or calling APIs,
which, like listening to music, is obviously their intended use but even --
and this is implied in the discussed ruling -- copying them and implementing
them in order to enable third-party interoperability (the court ruled that _in
this particular case_ Google did not make fair use of the APIs[2])

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

[2]:
[https://en.wikipedia.org/wiki/Oracle_America,_Inc._v._Google...](https://en.wikipedia.org/wiki/Oracle_America,_Inc._v._Google,_Inc.#Appeals_Court_and_finding_of_non-
fair-use)

~~~
pulse7
> This is not so simple. The court ruled only about a particular case...

But this case would be a very significant precedent...

~~~
rbanffy
This seems dangerous to anyone reverse engineering an API to, say, port it to
another language or runtime. Is the Win32 API copyrighted? If so, is the
ReactOS project in danger? Is Haiku?

~~~
pron
First, porting to another platform may well fall under fair use:
[https://en.wikipedia.org/wiki/Oracle_America,_Inc._v._Google...](https://en.wikipedia.org/wiki/Oracle_America,_Inc._v._Google,_Inc.#Appeals_Court_and_finding_of_non-
fair-use)

Second, companies don't sue you just to make a point or to show they're right;
success is never guaranteed, and corporate lawsuits are expensive -- not only
in direct monetary cost but in PR costs as well. Companies use lawsuits when
there's actual serious damage done to them which they want to recuperate, or
to prevent such imminent danger of serious damage.

If you cause serious damage you should expect to be sued regardless of whether
you did something wrong or not, and even if you do something wrong but don't
cause serious damage, chances of a lawsuit are low[1]. So while certain things
may certainly increase your exposure, what puts you in danger is the harm you
do more than the rules you break.

Projects that mimic or port the Windows API would be in danger -- whether now
or before the lawsuit under discussion -- when they can cause serious damage
to MS.

[1]: This may be different for trademark violations; I think trademarks
require vigilant defense or they could be lost.

------
endofcapital
This case has been going on so long it's funny to think about how differently
I used to perceive both Oracle and Google back when it started.

~~~
exabrial
I was thinking the same thing. At the time Google was the unsung hero
defending our rights. Now Google won't let you subscribe to podcasts in their
app unless you turn on location history storage, like those two things are
actually mutually exclusive.

It's unbelievable that Oracle is still pursuing this, despite the obvious
consequences _for its own survival_. Their main product copied APIs and even
the SQL language itself.

~~~
fixermark
Quick question: what is their podcasting app?

I use BeyondPod, so I wasn't aware Google had any offering in this space.

~~~
astura
You can subscribe to podcasts with Google Play Music:

[https://support.google.com/googleplaymusic/answer/6343833?hl...](https://support.google.com/googleplaymusic/answer/6343833?hl=en)

They also apparently have a standalone podcast app:

[https://play.google.com/store/apps/details?id=com.google.and...](https://play.google.com/store/apps/details?id=com.google.android.apps.podcasts&hl=en_US)

~~~
SketchySeaBeast
I see google doing the same thing twice. Now... which one do I gamble won't
reach EOL first.

~~~
amaccuish
They actually had an app way back called Google Listen, which was EOL'd...

[https://www.androidcentral.com/google-listen-officially-
dead](https://www.androidcentral.com/google-listen-officially-dead)

------
dylan-m
Anyone else irked by the keyboard shortcut analogy Google's lawyers keep
using? It clearly didn't help them last time they used it. I think if I was a
judge I would feel … insulted by such an obvious oversimplification. And the
result is both vaccuous and debatable. Keyboard shortcuts _aren 't_ perfectly
consistent, many people don't actually use them very much anyway, and many
more people wouldn't care if they were different between different "computers"
(?!) because they only use one and feel lost in the other kinds anyway. Surely
Google's team of lawyers, in the space of nine years, can find a better source
for analogies here…

~~~
skh
The evidence suggests that they can’t come up with a better analogy. Perhaps
there are legal principles at play that prevent them from using something
seemingly better. They are smart people. I think a better a question or
observation would be, “What prevents them from using X as an analogy?”. Or
maybe the case isn’t so clear cut in favor of Google that its lawyers have to
traverse a minefield of legal traps and this is the best they can come up
with.

------
umvi
If Oracle wins, it will just solidify my resolve to never use proprietary
languages, EVER.

~~~
BossingAround
Luckily, Java is fully open source now, with OpenJDK. I concur though with
never using proprietary languages (which is a part of me not using C#--of
course, that is now also open source, but C# is still kinda bad on Linux
afaik).

Edit: _sigh_ The downvotes without any reason hurt. See [1]. Since OpenJDK is
GPL v2, and since TCK tests have been open sourced and Java EE given to
Eclipse, I would call the Java ecosystem fully open source. Feel free to
correct me if I'm wrong of course.

[1]
[https://openjdk.java.net/legal/gplv2+ce.html](https://openjdk.java.net/legal/gplv2+ce.html)

~~~
shawnz
OpenJDK is an open source implementation of the Java API. However the question
here is about the openness of the Java API itself, not any particular
implementation of it. Google already uses a totally separate implementation
which is different from both Oracle Java AND OpenJDK.

~~~
BossingAround
Does that make Java/OpenJDK any less open source? If I take OpenJDK and start
selling it, how could Oracle get me if OpenJDK is GPL?

We're not talking about re-implementing the JDK/JRE spec; the author mentioned
he/she wants to use only open source languages...

------
amatai
This is similar to what AWS recently did with providing MongoDB interface with
its DocumentDB offering.

If Oracle wins, it logically goes then AWS would not be allowed to provide
MongoDB interface to DocumentDB.

If I think back in time, Java was just reference implementation of the API.
Sun JDK VM being one implementation of it, OpenJDK being the other. By that
extension, Google wrote its own VM for it, that worked on mobile phone OS.

~~~
altmind
ironically, I remember AWS ramblings that providing s3 compatible api was
violation of amazon IP rights.

------
tynpeddler
Let's say Oracle gets everything they want. What impact would this have on the
legality of certain programming practices in commercial settings like
inheritance and the wrapper pattern?

------
rb808
Google should just do what Microsoft did with dotnet. Fork their Java
projects, change method names from lowercase to uppercase then give it a new
name.

~~~
shawnz
Better yet, why not adopt .NET as the runtime for Android? :)

~~~
jplayer01
Because Microsoft is just as eager as Oracle to extract whatever money they
can through patents that they hold.

~~~
shawnz
Microsoft has issued a legally-binding promise to not assert .NET patents
against standards-compliant .NET framework implementations.

See:
[https://raw.githubusercontent.com/dotnet/corefx/master/PATEN...](https://raw.githubusercontent.com/dotnet/corefx/master/PATENTS.TXT)

~~~
jplayer01
Oh, sorry. I guess I've woken up in a magical parallel universe where
Microsoft didn't just spend the better part of the past decade extracting
billions of dollars every year from Android phone manufacturers.

------
richsinn
... and thus out of the ashes rose Rust lang...

~~~
tudelo
As someone who has recently tried Rust and uses Java in his day job, why do
you think that Rust is the obvious successor? Wouldn't C# be a better fit for
people looking to leave Java?

~~~
foober23
Ya. Rust is for C++ refuges.

A Java programmer would be so confused by Rust.

~~~
0xffff2
I really hate this view of the world. I'm a developer, not a "C++ developer"
or a "Java developer". I write code in C++, Java, C#, Python, Matlab, Rust,
and other languages.

My current project has me working primarily in a mix of C++ and Java, and I
would love nothing more than to rewrite the whole thing in Rust. Sadly, I did
my job too well the first time around, and it's hard to justify a full rewrite
of a codebase that already works.

~~~
richsinn
Precisely. In this world view, A Java programmer would also be confused with
Scala, which is a JVM language.

(Or I guess you could write Scala in a non-functional, Java-y way, but that
would defeat the purpose of using Scala...).

------
meddlepal
Google starting to hit the presses about this probably means they realize they
are fucked. This is an attempt to steer public opinion in their favor in order
to influence either the outcome or start the discussion about mitigation for
the expected outcome.

~~~
wrs
I don’t know how they could steer the relevant public opinion any _more_ in
their favor--is there anyone in the industry who doesn’t work in Oracle’s exec
suite who thinks this is anything but an incredibly stupid and destructive
precedent?

------
jokoon
I like open source, and I don't like how patents and proprietary software has
made the life of the developer difficult, but to be fully honest I don't like
java either, I would really prefer to see languages like C++ thrive instead of
java, especially today with the new iterations of C++.

I just don't understand what makes java more appealing than C++. I guess the
garbage collector? I just wish python was just in the same league of
performance of java...

~~~
jplayer01
You realize the ruling on this case would affect everybody using every
programming language, and not just Java?

------
kodablah
> Google positions a decision in favor of Oracle as a disaster for all
> developers.

That's a bit of hyperbole, because it requires a company to sacrifice
developer good will (if it has any, unlike Oracle) to claim ownership/copying.

Also, where they reasonably can, people need to stop building on tech owned by
companies they despise. Of course this is not reasonable in many cases, but
for me, I won't use Graal and will actively tell others not to because it's
easy not to. I don't have a problem w/ Google or FB like many others on here,
but if you did, not using Go or React is probably unreasonable, but not using
Google Cloud might be reasonable.

Also, we need to start holding privileged developers accountable for their
chosen employer. I'm not talking about the underprivileged intern, I'm talking
about the Oracle engineer that continues to work there at this time. If it's
on your resume of late, I won't hire you. I also might not accept your PR if
you are employed there.

~~~
MBlume
> If it's on your resume of late, I won't hire you.

Then they can't leave. I'm not sure that's what you want.

~~~
kodablah
> Then they can't leave. I'm not sure that's what you want.

It is, my statement is about industry-wide stigma henceforth, not specific
literal effects on existing employees.

~~~
fixermark
I'm not sure how your clarification addresses MBlume's concern.

A mass culture of "If you have X on your resume, I won't hire you" puts
pressure on people who have X to stay in the space where X is true rather than
try to exit it. It _could_ put pressure on incoming software engineers to not
join X, but if X's perks are good enough, will it? I'm reminded of the fact
that undocumented immigrants in the US rose after the beginnings of tightened
border security during the "war on drugs"\---if the flow back and forth is
easy, people flow back and forth. But if the flow is blocked, people will tend
to stay where they are (or, worse, migrate to where the perks are better...).

~~~
kodablah
Sorry, I was unclear and didn't address the concern specifically. I meant it
is still overall what I would want even with that downside. Granted I
recognize that there will likely be no observable effect to such a limited,
hard-line stance on these principles, but that's the case with many other
principled choices too. I wouldn't suggest it if it was hard or unreasonable.

