Pages

Friday, June 01, 2012

Oracle v Google ruling a win for Google

Judge Alsup has issued an Order re Copyrightability of certain replicated elements of the Java Application Programming Interface. I like the way he opens, describing the case as "the first of the so-called “smartphone war” cases tried to a jury."

An interesting element of the case, evident in his summary of the ruling and the substance of the decision, is that the judge actually learnt some java to help him come to a decision. A technically literate judge - that's something of a rarity. It would be nice if policymakers and the courts generally made such efforts in relation to technology.
"SUMMARY OF RULING
So long as the specific code used to implement a method is different, anyone is free
under the Copyright Act to write his or her own code to carry out exactly the same function
or specification of any methods used in the Java API. It does not matter that the declaration or
method header lines are identical. Under the rules of Java, they must be identical to declare a
method specifying the same functionality — even when the implementation is different.
When there is only one way to express an idea or function, then everyone is free to do so and
no one can monopolize that expression. And, while the Android method and class names could
have been different from the names of their counterparts in Java and still have worked,
copyright protection never extends to names or short phrases as a matter of law.
It is true that the very same functionality could have been offered in Android
without duplicating the exact command structure used in Java. This could have been done by
re-arranging the various methods under different groupings among the various classes and
packages (even if the same names had been used). In this sense, there were many ways to group
the methods yet still duplicate the same range of functionality.
But the names are more than just names — they are symbols in a command structure
wherein the commands take the form
java.package.Class.method()
Each command calls into action a pre-assigned function. The overall name tree, of course, has
creative elements but it is also a precise command structure — a utilitarian and functional set
of symbols, each to carry out a pre-assigned function. This command structure is a system or
method of operation under Section 102(b) of the Copyright Act and, therefore, cannot be
copyrighted. Duplication of the command structure is necessary for interoperability.
I wonder if the comment that
"copyright protection never extends to names or short phrases as a matter of law"

is a dig at the 2005 Bridgeport music decision where the US Court of Appeals for the 6th Circuit ruled that a 2 second sampling of 3 notes constituted copyright infringement.

And how about this on APIs:
"An API is like a library. Each package is like a bookshelf in the library. Each class is
like a book on the shelf. Each method is like a how-to-do-it chapter in a book. Go to the right
shelf, select the right book, and open it to the chapter that covers the work you need. As to the
37 packages, the Java and Android libraries are organized in the same basic way but all of the
chapters in Android have been written with implementations different from Java but solving the
same problems and providing the same functions. Every method and class is specified to carry
out precise desired functions and, thus, the “declaration” (or “header”) line of code stating the
specifications must be identical to carry out the given function."
 Mark Lemley at Stanford (and owner/coordinator of the excellent Cyberprof list) gets a mention.
 "the number of software patents in force in the United States has dramatically increased from
barely a thousand in 1980 to hundreds of thousands today...This has caused at least one noted commentator to observe:
As software patents gain increasingly broad protection, whatever
reasons there once were for broad copyright protection of
computer programs disappear. Much of what has been considered
the copyrightable “structure, sequence and organization” of a
computer program will become a mere incident to the patentable
idea of the program or of one of its potentially patentable
subroutines.
Mark Lemley, Convergence in the Law of Software Copyright?, 10 HIGH TECHNOLOGY LAW JOURNAL 1, 26–27 (1995)."
Whereas it's true copyright causes all sorts of problems for programming I remain as unconvinced as Donald Knuth was in 1994 that software should be subject to proprietary patent rights.  I find the idea that software is mathematics too convincing for that.

Most notably in this case, though, Judge Alsup is pretty scathing about Oracle's claims in concluding:
"In closing, it is important to step back and take in the breadth of Oracle’s claim. Of the
166 Java packages, 129 were not violated in any way. Of the 37 accused, 97 percent of the
Android lines were new from Google and the remaining three percent were freely replicable
under the merger and names doctrines. Oracle must resort, therefore, to claiming that it owns,
by copyright, the exclusive right to any and all possible implementations of the taxonomy-like
command structure for the 166 packages and/or any subpart thereof — even though it 
copyrighted only one implementation. To accept Oracle’s claim would be to allow anyone
to copyright one version of code to carry out a system of commands and thereby bar all others
from writing their own different versions to carry out all or part of the same commands.
No holding has ever endorsed such a sweeping proposition.
CONCLUSION
This order does not hold that Java API packages are free for all to use without license.
It does not hold that the structure, sequence and organization of all computer programs may be
stolen. Rather, it holds on the specific facts of this case, the particular elements replicated by
Google were free for all to use under the Copyright Act. Therefore, Oracle’s claim based on
Google’s copying of the 37 API packages, including their structure, sequence and organization
is DISMISSED. To the extent stated herein, Google’s Rule 50 motions regarding copyrightability
are GRANTED (Dkt. Nos. 984, 1007). Google’s motion for a new trial on copyright infringement
is DENIED AS MOOT (Dkt. No. 1105)."
It's a 2-1 win for Google on the merits of the case which, given a jury recently decided Google didn't infringe Oracle's claimed patents, is a killer blow to Oracle's bid to extract multiple truckloads of cash from Google's coffers.

Apologies for the formatting issues with the extracts from the ruling.

Monday, May 28, 2012

The universality of organisational stupidity

1.   Knowledge = Power [sic]

2.   Time = Money [sic ditto]

3.   Power = Work/Time [Science]

Substitute 1. into 3. to give:

4.   Knowledge = Work/Time

Substituting 2. into 4. demonstrates:

5.    Knowledge = Work/Money

Re-arranging 5. leads to the conclusion that

6.     Money = Work/Knowledge

Hence we derive and/or demonstrate the universal nature of organisational stupidity. I was thinking of using this in opening my book on the convergent evolution towards insanity of large organisations.  But insanity, at least in a legal sense, is to do with a person's capacity to be responsible for their actions in the context of a loss of contact with reality. Stupidity is a feature of the insanity of large organisations but I'm wondering if it is a sufficiently important feature or emergent property of the insanity to merit inclusion in the introduction? Answers on a postcard (or electronic equivalent) please...