Oracle, Google, Patents, & Open Source Software
One of the problems of dealing with the tech world is that the disputes often involve complexities that render understanding exceedingly difficult. This does not prevent pontification, however, often hideously wrong. (See, e.g., net neutrality, passim, to the continuing frustration of those such as my colleague George Ou, who do understand the underlying technical issues.)
So it is with Oracle’s patent infringement lawsuit against Google, which involves intersecting complexities of patent doctrine, computer coding, open source software licenses, and the shifting tectonics of the smartphone market. Each of these topics is in itself daunting, so the combination is formidable indeed. Nonetheless, the suit is important, so some comments are in order, though offered tentatively.
Java was developed by Sun Microsystems before its recent acquisition by Oracle. Java is described in various ways, but seems best described as a platform, a collection of programs, and a language, all designed to allow developers to make their programs work on a variety of computing devices without rewriting. It comes in several versions, so as to allow it to be used on computing devices of varying power; one of the variations is Java ME (Micro Edition), designed for mobile devices and embedded functions. Java ME is a stripped down version of the standard edition.
Sun did not regard Java as itself a money-making product. A company such as Microsoft makes its money from licensing its software, such as Windows, but Sun adopted a different theory, under which software is made available at no cost in furtherance of a broader plan. Sun’s 2009 10K describes its approach; by making its software available at no charge, Sun encouraged demand for its hardware and services. (Some sources say Sun has been collecting up to $1 billion per year licensing Java, but no such figures show up in the 10K, which makes this unlikely. What may be meant is that Sun was making good money providing professional services connected with the use of Java, or implementing Java on behalf of customers, or that Sun was making this before it made Java into an open source program.)
Java was released under a software license called the General Public License (version 2) (GPLv2). One of the main features of this is its “viral” nature. Anyone who uses code licensed under the GPL to create a program, and who then distributes that program to others, must make his additions available to all others on the same no-restriction basis as the original GPL’ed code. A couple of subtleties are important here:
(1) A user can make all the tweaks it wants and keep them secret as long as the altered program is not distributed to others. Google is a major beneficiary of this doctrine, in that it relies heavily on GPL’ed (and thus costless) code as the basis for all of its heavy duty computing, but adds sophisticated additions which it does not share because it does not redistribute its code. This greatly annoys many members of the “open source” community, but Google has the clout so this rule stands.
(2) A major issue concerns application programs that interact with GPL’ed code. How much interaction is allowed without an app becoming subject to the duty to subject itself to the GPL? There are differences of opinion on this, with the Free Software Foundation, which controls the GPL and which hates all non-open software, pushing for broad inclusiveness. This “linking” issue has generated considerable argument.
Google wanted to create Android as a mobile phone operating system that is amenable to proprietary tweaks by manufacturers and ISPs and that enables the development of a robust apps-for-sale market. Were it to rely on Java as the basic platform, these GPL issues would create huge problems. The viral nature of the GPL would make it impossible for manufacturers/ISPs to make proprietary tweaks, since distributing the phones would be distributing the revised code, which would then have to be revealed and made available and no cost. Apps writers would be uncertain as to whether they actually retained control over their apps; they could learn that under the FSF’s interpretation of the GPL, an app was so intertwined with the operating system that, again, the code had to be made publicly available at no cost.
Apparently, Google avoided these problems by sort-of using Java, and sort-of not. As explained in Stefano’s Linotype in 2007, Sun created Dalvik, a basic system that is very much like Java without being exactly Java:
But Android’s programs are written in Java, using Java-oriented IDEs (it also comes with an Eclipse plugin)… it just doesn’t compile the java code into java bytecode but (ops, Sun didn’t see this one coming) into Dalvik bytecode.
So, Android uses the syntax of the Java platform (the Java “language”, if you wish, which is enough to make java programmers feel at home and IDEs to support the editing smoothly) and the java SE class library but not the Java bytecode or the Java virtual machine to execute it on the phone . . . .
Google then put Android under a different open source license, the Apache, which does not contain the viral elements of the GPL, and which allows for proprietary tweaks and commercialization, and for the attachment of proprietary applications.
One can see why this upset Sun/Oracle. Google, famously, does not buy outside servers, nor does it need to buy any computer expertise from Sun/Oracle, so Android leaves Sun/Oracle’s basic business plan in tatters. Sun/Oracle made massive investments to develop Java, and bears the continuing cost of maintaining it and financing an open source community surrounding it, while the benefits go to numerous other companies. (Thanks a lot, sucker!)
Obviously, Sun/Oracle has decided not to take this lying down, and one really cannot blame it. Google is engaging in blatant free riding here, apparently without even a shred of returning to the creators of Java. (With regard to other open source programs, such as Linux, Google does contribute money and coders to at least some degree.) On the other hand, Google is absolutely correct to regard the GPL as an unacceptable license for the smartphone market, and the true error may have been by Sun President Jonathan Schwartz when he chose the GPL as the license to use in making Jave open source.
As to how the lawsuit will turn out, who know? Software patenting is an esoteric field, and I have no way of telling whether Google managed to stay on the right side of the line. Some who know more than I think the case is weak.
There is a larger moral here, though. The dispute illustrates the pretensions of the claims of the communitarians, who think that if only we eliminated property rights the tech world would immediately make great leaps forward. The reality is that we cannot all cross-subsidize each other. Should it turn out that Google has found a clever way to get the benefits of software innovation without incurring the costs, the result will be to inhibit innovation rather than encourage it. It will also put a substantial dent in the philosophy of the open source software community, which relies heavily on the idea that the software developer can make money by giving away the program and selling the ancillary hardware and services.
But the suit also presents the whole smartphone world with a quandary. The penalties for knowing infringement of patents are draconian, and everyone is now on notice that there may be a problem with Android. So does a manufacturer go ahead and install Android? Does it ask its patent lawyers and go with their best guess? Does Google offer a guarantee? Some commenters note that the major beneficiary here may turn out to be Microsoft, with its forthcoming new mobile program – did Larry Ellison really to this to help Steve Balmer?
There are also interesting questions of licensing. As noted, the Apache license clearly allows proprietary adaptations and add-on apps, while the GPL does not. So, if Android infringes on Java patents, does this mean that it is a derivative program that should have been licensed under the GPL? If so, what is the legal effect on the downstream users, who thought they took under Apache when they actually should have been subject to the GPL? Can the Free Software Foundation now enforce the GPL against the entire smartphone world? This seems unlikely, but again there is a notice problem. Are Android users now on notice that they may be subject to the GPL, and thus that they might have to open source their new code and their apps?
Damned if I know the answers to these questions; but I bet a lot of IP law firms billed some hours last weekend.
For some interesting analyses, see:
Groklaw, Oracle America’s complaint against Google, as text – Updated 3Xs & Timeline page (where masochists can go to find all the filed documents, on a continuing basis) & The Oracle-Google Mess: A Question – Are Any of the Patents Tied to a Specific Machine? – Updated 4Xs: Google Speaks
Charles Nutter, My Thoughts on Oracle v Google
Daniel Eran Dilger, How Oracle might kill Google’s Android and software patents all at once
Jason Hiner, Tech Republic, The dirty little secret about Google Android
End Soft Patents, Oracle v. Google (2010, USA)
CNet News, Why Oracle, not Sun, sued Google over Java
Dana Blankhorn, ZDNet, Oracle aims to destroy open source software industry
Matt Asay, GigaOm, Oracle’s Java Lawsuit: Free Markets, Not Free Software