
My Thoughts on Oracle v Google - dochtman
http://blog.headius.com/2010/08/my-thoughts-on-oracle-v-google.html
======
yason
This brought myself into a grand realization.

I've always anticipated that the right thing for myself would be to pass any
opportunity to contribute to any patent applications should I ever "invent"
anything potentially "worth" patenting. I have seen that patents greatly harm
the software ecosystem and I don't think I would ever want to take part in any
of that.

However, _now_ that I think about it I will _never even consider_. I'll just
say "No" right out of the way, and walk away from the opportunity as quickly
as I can.

I announce that, as of today if my current, at any time, employer happened to
be patent-unfriendly, only file defensive patents, never litigate anyone, and
perhaps win some patent trolls because of their accumulated defensive
intellectual "property" I will still say "No" to getting myself involved in
any patent application. Even if I was offered a bonus for that. Or a job.

This whole Sun vs. Oracle thing made me realize that software patents are
_categorically_ undesirable.

Patents are like guns. Maybe so because I'm a pacifist. Now: sure, you can buy
a cabinet full of rifles, shotguns and pistols to defend your house on the
prairie should the evil gansters arrive. However, if they do and succeed in
taking over your house, then _they have the guns_. This is exactly what has
happened here. And with companies desperate for money, it's probably easier
than robbing a house.

Thus, there's no such thing as a defensive patent: patents are all offensive,
even if most of them (software patents) are bogus. While a good-spirited
company or person might choose to not exercise the monopoly granted by patent
law, it only postpones the inevitable unless the patent expires before that.

Similarly, there are no defensive guns. All guns are designed to wound or kill
people. All patents are designed to take away other hackers' freedom to make
the world better. I'll reconsider my stance when I see the first useful
software patent and when all the useless ones are revoked.

~~~
Twisol
While I think the gun analogy was a little superfluous - perhaps because we
clearly look at the gun situation differently - I completely agree with you
otherwise. Software patents, even if "unused", are a threat lingering above
your head like a guillotine. Even if the person in charge of that guillotine
promises you they'll never let it drop, you'll probably not put your head
under there for fear of what could happen.

Sun guarded the guillotine. Oracle "bought them out", and now they have the
guillotine. Google put its head under the guillotine. Now we get to see how
sharp it is, and whether Google brought body armor.

~~~
Tyrannosaurs
And you questioned his analogy?!

(Not questioning the point, just suggesting that we all go back to metaphor
school this afternoon for a little brush up).

------
donaq
Truly an epic post. Halfway through it, I had to come back and upvote it
before returning to the article.

~~~
DanielRibeiro
Stephen Colebourne's "Oracle, Google and the politics of money" is also a
great shed of light on this topic:
[http://www.jroller.com/scolebourne/entry/power_corrupts_abso...](http://www.jroller.com/scolebourne/entry/power_corrupts_absolute_power_corrupts)

I kinda agree with Stephen on the damage Oracle does to open source and the
added uncertainty for collaborators on the open parts of java. I think Charles
underemphasized this aspect.

------
alecco
<http://www.xkcd.org/743/>

------
gamble
Remember when NTP sued RIM and won over $400 million? Their patent for sending
email over RF seemed pretty silly at the time too. So, while this is a good
article on the whole, it may be a bit naive to assume that Oracle can't win
the case on a few simple patents. This case appears to be the only reason they
bought Sun, and I suspect they're smart enough not to place a $6 billion bet
without some very smart lawyers feeling like they've got a good shot at
winning.

~~~
nimrody
Regarding NTP vs. RIM: seems like the NTP patent was, in fact, _invalid_ as
will be determined by an ongoing patent office reexamination:

[http://spectrum.ieee.org/at-work/innovation/rim-v-ntp-yet-
ag...](http://spectrum.ieee.org/at-work/innovation/rim-v-ntp-yet-again)

~~~
gamble
Thanks for the link. I wasn't aware the patent was still in question. I don't
think it invalidates my point, though. RIM was criticized for waiting too long
before settling the case, and thus paying 10x what NTP originally asked for.
Waiting for the patent office to invalidate the patent takes long enough that
it has plenty of its own risks.

------
joe_the_user
_OpenJDK itself took years to gain acceptance from OSS purists_

Recent events seem to indicate the "purists" had a point...

~~~
headius
it's important to point out that OpenJDK actually _is_ safe. The Java
specification has a patent grant clause for compliant implementations, which
obviously includes OpenJDK. We can also hope that Sun did their due diligence
during the development of Hotspot and during the open-sourcing of OpenJDK to
ensure other patents not covered by the grant would not affect it (but of
course we can't be sure).

Outside of that, it's no more at risk of patent attacks then any other piece
of open-source software.

~~~
bad_user
> _The Java specification has a patent grant clause for compliant
> implementations, which obviously includes OpenJDK_

OpenJDK is safe because AFAIK the GPLv2 license also has a patent grant.

But if you want to take Apache Harmony and trim it down so it fits on a mobile
device or on a pen ... the very essence of open-source ... then you're fucked.

If you want to take some idea from OpenJDK and use it in Jikes; a cross-
pollination of ideas (not copyright infringement) which is again ... the very
essence of open-source ... then you're fucked again.

Java is not an open-platform. It never was.

~~~
delackner
Taking some _patented_ "idea" from a GPL'd piece of code and re-implementing
it in your own separately licensed code is not something that the GPL gives
you the right to do.

Your definition of open-platform requires that the code not be covered by any
patents. Anyway, the best thing that can come out of all of this is more deep-
pocketed players angry with the software patent system.

~~~
bad_user
But my point isn't about what the GPL gives you the right to do.

I don't see the Linux kernel devs getting sued or suing the *BSD kernel devs,
although they share ideas all the time.

Also, people scale/modify the Linux/BSD kernel to fit their needs all the
time. The Java patent grant only applies if you're not building a
subset/superset of Java or if you're extending OpenJDK. But these aren't
enough ... some people do not want GPL.

That's what I mean by "the spirit of open-source" ... it's a collaboration
effort from which everyone benefits.

And as of this recent announcement, OpenJDK is open-source only by license ...
if that wasn't clear already.

------
plinkplonk
"But I think the real damage will be in how the developer community perceives
Java, rather than in any lasting impact on the platform itself."

A change (for the worse) how the dev community perceives a platform _is_ (or
will lead to) a significant impact on the platform?

Or is he saying usage in big corps (where devs don't decide the platform,
mangers do) won't be affected?

Minor nitpicks aside, decent essay!

~~~
chc
I think he's saying it's not actually going to kill Android or any other Java-
based platform (like some people fear), but it might make some people a little
more skittish about embracing the platform and it might drive OSS development
to a platform whose rightsholder doesn't go around suing people for trying to
create their own version.

------
astrec
I think it's likely a strategic cross-licensing play, which is to say that
Oracle have found they read on one or more patents held by Google and are
knocking on the front door with a sledgehammer.

~~~
davidw
From what little legal knowledge I have, I think you don't go looking at your
own patents that way, because then you are _knowingly_ infringing, which means
you would pay more damages.

It's simpler: they just want to shake Google down for some cash.

~~~
joezydeco
I saw one interesting idea proposed on another blog: What if Oracle wants a
license to BigTable in return for letting the Java patents out?

~~~
jrockway
Then Google lets the court decide instead.

Imagine someone sues you for spilling coffee on them. They are willing to
settle if you cut your hand off. You disagree, go to court, and the court
awards the plaintiff twenty bucks. Same thing happens in the corporate world,
too.

Honestly, Oracle's patents should be easy to find prior art for. Nothing in
computer science is new, even if a patent examiner or some dude working 9-5 at
Sun say they are.

~~~
protomyth
RIM probably thought there was prior art too.

------
lucraft
Very good. The patents described really are laughable. An implementation of
"fork"? Really?

~~~
rdtsc
Patent lawyers who filed that patent would probably laugh at you for talking
about kitchen utensils in respect to such an awesome patent idea ;-)

~~~
bokchoi
On the subject of kitchen utensils...

One of my favorite patents is for the OXO angled measuring cup[1]. It seems
obvious now in hindsight, but was truly unique when it appeared on the market.
The uniqueness comes from seeing the volume from both the top and the side
otherwise the patent would probably not have been granted.

[1] <http://www.freepatentsonline.com/6263732.html>

~~~
rdtsc
I remember seeing those in the store and thinking -- why didn't anyone think
of this before !?

------
ohyes
I am not a Java developer, but how is this situation is too much different
from the Java/J++/C# issues that were had between Sun and Microsoft? It is a
different type lawsuit, and (arguably scary) patents are involved, but it
seems to be similarly motivated.

Sun originally developed Java to be a standardized, cross-platform development
tool.

The original intent (as I see it, anyway) was to get some market share away
from Microsoft/Intel by providing a tool that would allow a program written
and compiled once on one platform to run on any platform. (The actuality is
that you have to make small changes, but for the most part, this works).

So Microsoft started working on J++, and did/were doing the same thing that
they did in the web browser space. They built non-standard extensions that
would not be compatible from one platform to the next. Exactly the opposite of
what a vendor providing an OS/Hardware combination wants, when the entire idea
of the language is to make the OS/hardware a reasonable option.

Dalvik doesn't support certain parts of either SE or ME. I would have to
believe that this is the reason Google is unwilling to license; they would
then have to comply with one of the (bloated/inefficient) standards. (This
isn't because Google doesn't have the cash to pay up).

From Oracle/Sun's perspective, this could easily be seen as a long term threat
to the platform. If you have runtime compatibility issues, the ship is sunk.
You have reliability issues, as with early C++ implementations (can't use 1/2
of the features); Or you have compatibility issues, as with the current state
of Common Lisp implementations (many rock-solid implementations, but things
are subtly different from one to the next. Aside: subtly different is the
worst type). So from that perspective, that they do not want the JVM
fragmented, I sympathize with Oracle.

From the perspective of the patents as described in this article, as a
computer scientist and programmer, that these things can be patented is
shocking. What worries me, is that I will unknowingly build something which
has already been patented.

In particular, the hybrid compilation technique does not seem to be very much
different from the methods involved in having a lisp (for example) with both
an interpreter and a compiler. It is an interesting technique, and very
clever, but how can a compilation technique be patented? Specifically this
early in the history of computing. What if someone had patented using assembly
instead of machine code, or intermediate representations of code? What if
McCarthy had patented the AST? Or if the various ways of implementing regular
expressions had been patented? It seems morally objectionable.

I honestly, truly hope that Oracle loses this patent suit.

~~~
kragen
One difference between J++ and Dalvik is that Dalvik is free software. Another
is that the JDK is supposedly under the GPL at this point; this is probably
the first time a GPL licensor has sued a free-software compatible
reimplementation of their GPL code for patent infringement. It's a new level
of "shocking" in this area, although it may not really rise to the level of
the SCO case.

~~~
shadowfox
Being free in the copyright sense does not affect your patent status as far I
understand (unless there is a specific patent grant in the license)

~~~
gojomo
Even without an explicit grant, distributing a product includes an implied
license to use related patents. So even under an open source license with no
specific patent clause, a company would have a hard time releasing something
open source, then suing users for patent violations for using that same
something. (They might still be able to sue for violating those same patents
in other ways.)

------
mickeyben
Very good read. I'm not considering myself as a Java developer (even if I
wrote some java) neither an Android one and this really helped me to have
context and more background about this lawsuit. Thanks !

------
Tyrannosaurs
I suspect if the case was as open and closed and without merit as many are
thinking, Oracle wouldn't have bought it.

Google aren't some tiny outfit who are going to fold at the first threat. They
have very deep pockets and plenty of lawyers and there is no reason to think
that they'd give in easily.

Oracle will know this and therefore we can reasonably assume that they have
bought this case with the willingness to fight it (and spend the significant
amounts of time and money involved in doing so).

Certainly if the suspicion is that they spent $7.4bn buying Sun primarily so
they could bring this case it seems even more unlikely - you don't cough up
that sort of money unless you think your case is really pretty strong.

(Incidentally I think the suggestion that this is the primary reason they
bought Sun doesn't really add up - it's far too big a gamble and the damages
award would have to be vast, way beyond the Microsoft / Sun damages to justify
it. Oracle are a proper company with proper products, generally speaking
they're not patent trolls and have better things to do with the money than
take this sort of punt.)

I'm not saying that they will win it, just that the frequent claims from
technologists that their case is without merit fail to explain why a bunch of
smart people (because whatever you think of them over this the evidence is
that the people running Oracle are not stupid, they are not SCO) with a lot of
very smart, very well paid lawyers, were willing to take such a punt when
their case is evidently so weak.

------
davidw
This one: "System And Method For Dynamic Preloading Of Classes Through Memory
Space Cloning Of A Master Runtime System Process (7,426,720)"

Sounds fairly similar to one of the tricks that ETLinux used:

[http://www.linuxfordevices.com/c/a/Linux-For-Devices-
Article...](http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/The-
Architecture-and-Development-of-Etlinux/)

~~~
DougWebb
Circa 2000 I and another developer at my company implemented two systems which
are very good examples of prior art for this patent. Both of those systems are
still in use today, and I consider the mechanism to be a standard design
pattern for robust SOA components. Reading the claims, the only ones that
don't match what we did are the claims that say the system is implemented in
Java; ours are C++ and Perl. That should be sufficient to invalidate the
patent though, at least in a reasonable world.

~~~
kragen
It's possible to invalidate only certain claims of a patent with prior art. In
theory you would think that if there's lots of prior art of people doing XYZ,
then someone doing XYZ in Java because their project uses Java would be
obvious and therefore not patentable. In practice the Federal Circuit has
taken an absurdly narrow view of "obvious".

~~~
nooneelse
I guess that might also answer something I've been wondering since this began
(well actually before, but this case has brought it back up in my mind). If
you take some people skilled in the relevant art, and just describe a problem
to them and tell them that someone did solve it but not how it was solved, you
lock them away to do a clean room implementation of something that solves that
problem, and then their solution happens to be the same as in some patent...
then isn't that a bit of evidence that the solution in the patent isn't non-
obvious?

~~~
CERTIORARI
Exactly. In fact not only could you say it isn't non-obvious, you might go as
far as to say it is obvious.

------
mark_l_watson
Charles' main take-away point, at the end of the article, is that for 99% of
Java developers this law suit should have no effect at all, except that it
might stifle the future of the Java platform. So, maybe we just have JDK 6
forever.

Since I find myself switching between Java/Clojure, Common Lisp, Ruby, and
Scheme (and would like to be better at Haskell), I am not losing any sleep
over this law suit. If Java stagnates, I'll just slowly migrate to new
languages.

------
alecco
Even if Oracle and Google settle in some peaceful way (best outcome out of the
likely ones), it is very likely Oracle will continue this avenue of profit.
Perhaps IBM is next, given the long time hostilities among both. Or the
Android-based handset manufacturers and sellers. There's a lot of shakedown
money to be made for Oracle. And it is probably even lawful in spite of it
being labeled as morally wrong. Good luck.

~~~
headius
IBM is safe, since they've played by the rules and since they have an even
bigger patent bat than Oracle does. There may be tensions, but probably
nothing we'll ever see from the outside.

I think other OSS Java implementations are safe too, because: a. they don't
harm Oracle's business in any substantial way (nobody's using them), and b.
there's no profit in going after them.

If you start to look at everything Oracle does through the lens of "profit
above all else" the clouds become a little less cloudy.

~~~
alecco
Safe now, but for how long? What about upcoming versions? What about
relicensing? What if they are breaking some fine print? It's not that easy.

------
senthilnayagam
I think the patent "Interpreting Functions Utilizing A Hybrid Of Virtual And
Native Machine Instructions (6,910,205)" is a important arsenal, dalvik or
alternate implementation would need to grow to this level some point in the
future.

cutting access to a growth path can hold back development of the android
platform

~~~
brazzy
It sounds to me like it would be easy to circumvent, just like JRockit does
(as describe in the article): instead of mixing interpretation and JIT
compilation, have different levels of JIT compilation: cheap and unoptimized
vs. slow and highly optimized.

------
rufugee
Could someone explain what the heck "One of the big contentious items is the
addition in Java 5 of parametric polymorphism as a compile-time trick without
also adding VM-level support for reifying per-type specializations as .NET can
do." means for a language implementation layman?

~~~
ecoffey
"parametric polymorphism" is fancy way to say "I'm declaring a type that is
composed of other types".

The canonical example is a set.

In C# (that's what I'm familiar with) we have IEnumerable<T>. It represents
enumerating over some homogeneous set of type T.

so when you write "var myList = new List<int>() { 1, 2, 3 };" the type that
gets written down in the bytecode is List<int> (which implements
IEnumerable<int>).

So the statement "typeof(myList) == typeof(List<int>)" returns true. The type
you specified at compile time doesn't loose information at runtime. (For
instance you can also do typeof(IEnumerable<>).MakeGenericType(new[] {
typeof(int) }), which gets the Generic Type Definition and then you can fill
that in at runtime).

The Generics implementation in Java 5 however was all a compiler trick. All
the benefits only existed in the AST of the compiler, they never got down to
the runtime. So it was easy to check that you couldn't add a int to a strongly
typed list of strings, but only in source. (I think, I'm not as well read as
javac / JVM internals)

Hopefully that helps.

~~~
jhck
_So it was easy to check that you couldn't add a int to a strongly typed list
of strings, but only in source. (I think, I'm not as well read as javac / JVM
internals)_

You're right. Here's Jim Waldo's explanation from _Java: The Good Parts_ :

"the inability to change the VM or bytecodes [due to requirements of backwards
compatibility] meant that parameterized types could occur only in the source
code. The type system of the runtime hasn’t changed, and doesn’t include
generics or parameterized types. What we see in our code as a Set<Player> is
seen in the bytecodes as simply a Set of objects."

~~~
ecoffey
I think read part of that as well, I just don't do Java dev day in, day out is
all :-)

But this got me thinking about compiler tricks in general, and how they can be
a good thing.

For instance in C# the keywords foreach, and using are just compiler tricks,
as well as the notion of closures.

------
stralep
Something hit me:

BSD history is repeating itself...

~~~
gecko
That was rather markedly different, since it was a copyright suit, not a
patent suit. AT&T never claimed that they had patents that forbade using BSD;
they simply claimed that BSD could not possibly have been written without
violating AT&T's Unix copyrights.

In this case, as far as I'm aware, Oracle is not claiming that Google
misappropriated any Java source code, but rather that they violated numerous
patents that cover JVM-like technologies. This would be akin to AT&T saying
that Linux was illegal because it violated patents it held on Unix.

------
dochtman
Huh? Someone changed the title. Is that customary around here?

------
adamilardi
That was an epically long post. It was good.

~~~
jemfinch
It reminds me of the apt quotation (I can't get an authoritative source on it
in 30 seconds of searching), "If I had more time, I would have written a
shorter letter."

~~~
russell
Blaise Pascal: I have made this letter longer than usual because I lack the
time to make it shorter.

(There are several variants on WikiQuotes,)

------
pvg
If there was a word for 'text bukkake' it would likely summarize this post.

