Channels ▼
RSS

JVM Languages

Oracle and the End of Programming As We Know It


Oracle is a company that's never particularly cottoned to developers. While Microsoft and Google have developer DNA wired deeply into their genes, Oracle is first and foremost a database company that prides itself on ruthlessly pursuing its business agenda with a take-no-prisoners approach. Whether its reckless approach to technology appeals to developers or any other community matters little to the company. Because Oracle stands for nothing but its own interests and because of its long history of aggression, it is feared by all market segments it touches: suppliers, competitors, and its own customers.

More Insights

White Papers

More >>

Reports

More >>

Webcasts

More >>

There is little surprise then to see it in court in San Francisco fighting Google, claiming patent infringement due to the latter's development of the Android operating system. Google, certainly no stranger to pushing the legal limits in its quest to access as much data as possible, is hardly a friend to licensing and copyright. Its fights with the publishing industry over copyrights are legendary and have generally forced Google to backtrack. Its expansive view of its access to data is at the heart of current uproars over Street View and the newly announced GDrive.

So, it seems almost inevitable that the two behemoths would meet in court one day. Initially, Oracle's suit and Google counter-suit looked to be one of those slow-moving affairs that was fascinating to watch from a distance in much the same way as the trial pitting the U.S. Department of Justice against Microsoft a decade ago.

However, events in San Francisco quickly took a sinister turn when Oracle posited an ominous theory: that Google had violated Oracle's Java copyrights by reimplementing Java APIs in Android. The question of the copyrightability of APIs is the hinge on which the first part of the trial now rests, and it provides a disturbing vision of how software development might look should Oracle prove this claim.

In a nutshell, if the jury sides with Oracle that the copyrights in the headers of every file of the Java source base apply specifically to the syntax of the APIs, then Oracle can extract payment and penalties from Google for having implemented those APIs without Oracle's blessing (or, in more specific terms, without a license).

Should this come to pass, numerous products will suddenly find themselves on an uncertain legal standing in which the previously benign but now newly empowered copyright holders might assert punitive copyright claims. Chief among these would be any re-implementation of an existing language. So, Jython, IronPython, and PyPy for Python; JRuby, IronRuby, and Rubinius for Ruby; Mono for C# and VB; possibly C++ for C, GCC for C and C++ and Objective-C; and so forth. And of course, all the various browsers that use JavaScript might owe royalties to the acquirers of Netscape's intellectual property.

Essentially, every language implementation not issued forth by the copyright holder will be suspect until the copyright owners announce a permanent statement dispensing with any threats to enforce the copyrights. There is no reason to believe that copyright holders will naturally act with such restraint. As we know, Oracle certainly has not. And who's to say the owners of Bell Labs care enough about the negative programming consequences of enforcing language copyrights when they can see possible licensing fees of tens if not hundreds of millions of dollars are a possible result?

The problem does not stop with languages, of course. Would Linux be at risk for all the UNIX APIs it recreated? Or would any of the ports of various libraries be similarly in danger? Probably so.

During the trial, Sun's last two CEOs provided conflicting evidence. In a nutshell, Jonathan Schwartz testified for Google's view (and his email congratulating Google on Android is a crucial piece of testimony), while Scott McNealy testified unequivocally that APIs were copyrightable, copyrighted, and not open to duplication by unlicensed third parties. Both views are in character. McNealy fought the UNIX wars on behalf of Solaris precisely on the basis of the extra libraries and APIs that distinguished it from HP-UX, IRIX, and AIX. I have no doubt that if this case had arrived 15 years ago, McNealy would have testified precisely the same way. Specific libraries and their attendant APIs were crucial means for companies to establish and maintain a competitive advantage.

This role for APIs tends to support Oracle's view that they are the property of the owners and are not intended for free use by unlicensed parties wanting to implement them. And Google's internal deliberations that show an awareness that a license might be necessary would also support the idea that the APIs are property. On this basis and the careful copyrights in each document, I am unwillingly led to conclude that the jury might not deliver good news when it returns from its deliberations. Of course, I deeply hope I'm wrong.

However, a silver lining could present itself: The jury could affirm that the APIs are copyrighted but that the syntax of the function signatures are a fair use exception. This would safeguard the right to reimplement APIs forever without fear of suit for copyright violation. And it would not be an unreasonable finding.

Trials are troublesome events in the course of computing history. They have delivered odder verdicts than one that would side entirely with Oracle. You might recall that the Lotus v. Borland suit (1990) originally resulted in a ruling affirming the copyrightability of a menu hierarchy. Not until the case reached the U.S. Supreme Court in 1996 was that bit of nonsense definitively overturned. Let us hope that there's no need for that much litigation to ensure forever that APIs can be freely copied.

— Andrew Binstock
Editor in Chief
alb@drdobbs.com
Twitter: platypusguy


Related Reading






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 

Comments:

Video