| 
               
                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.
               
             |