While I've talked to Tara Aaron a number of times, I'd never
encountered the other half of Aaron Sanders until today. Rick
talked excitedly about the big code case of the decade over the
Java language. Code is at that weird legal intersection of
copyright, patents and trade secrets. Rick's analogy of software
as the platypus is particularly good. Since the erosion of
patent protection, copyright law is the main legal protection
for software.
Copyright only protects expression, so the legal challenge is
agruing that software is expressive. Interoperability is code's
version of "fair use", which lies outside protection.
The story starts at Sun, who invented Java in the 90's and
placed the language as well as the virtual machine (VM) to run
it in the public domain. They did, however, keep the copyright
on the APIs for whatever reason although they never enforced
that copyright. Later on Oracle bought Sun and, as is well
known in the tech world, Oracle enforces its pereived legal
rights to the fullest extent possible.
Fast forward to the dawning of the smartphone, where Google
found itself playing catchup to Apple. Google figured the best
way to do that was to use Java as the language for their
Android phone. To that end they entered into negotiations with
Oracle to use the Java API for Android. Oracle wanted more
money that Google was willing to pay though, so Google decided
to go its own way and rewrite the Java API for Android. This
they very successfully did and soon everyone was programming
for Android phones in Java.
Google recreated the exact API organization that existed in
Java, and this became a small part of a larger lawsuit Oracle
persued againest Google. The main focus of the lawsuit hinged
on patents rather than copyright though, because monetary
damages awarded there can be much higher. Software copyright is
rarely part of lawsuits because the cost of suit is usually
larger than any potential payoff.
Google argued that there was only one way to reasonably organize
the Java API and one. The example used repeated in the case was
that of java.lang.Math.max(x,y) because, really, is there a
more natural way to organize it? The judge decided that a
legal concept called "merger" applied and ruled in favor of
Google.
On a appeal, however, this decision was reversed on the grounds
that merger must be from the creator's point of view. The case
was sent back to a jury trial and we'll have to wait and see
how it turns out. From a business perspective, however, Google
is the clear winner. They got Android to market fast and now it
is one of the dominant players in the market. Even if they lose,
the potential monetary damages awardable are puny for Google and
reorganizing the API wouldn't cause developers to stop developing
for their very lucrative platform.
|