More than a decade ago, Google re-implemented the Java programming language as part of its new Android mobile operating system. Oracle, the owner of Java, then sued Google for copyright infringement in . Later this month, the Supreme Court will hear oral arguments in this epic copyright case that will have huge implications for the entire software industry — and that could cost Google billions of dollars.
Google says it has done nothing wrong. Copyright law specifically excludes “systems” and “methods of operation” from copyright protection. Google argues that the aspects of Java it copied — function names, argument types, and so forth — fit squarely into these exceptions. Google also argues that copyright’s fair use doctrine allows for this kind of copying.
The case is being closely watched by the software industry. Companies like Microsoft and (IBM) have warned that Oracle’s stance could create chaos for the industry. They argue that making this kind of copying illegal would not only create legal headaches for a lot of software companies — it would be bad for customers, too.
Software companies copy software interfaces — known in the industry jargon as application programming interfaces (APIs) —of their competitors’ products all the time. This allows competing software products to be interoperable so that a customer can take software designed to work on one platform and re-use it on another. That means lower switching costs for customers. It also means lower barriers for entry for software startups, since it’s easier to sell a new product if it’s compatible with a software product that customers already know and trust.
If anyone should understand the importance of such copying, it’s Oracle. After all, Oracle got its start in the s selling a database product based on the then-new structured query language (SQL) . SQL was invented by IBM. And Oracle doesn’t seem to have gotten a license to use it.
If Oracle wins its legal battle, one ironic result will be to make the software industry less hospitable to future startups like Oracle. Incumbent software companies would have a greater ability to lock customers into their own proprietary standards. Startups wouldn’t be allowed to do what Oracle did four decades ago: make its product compatible with an established competitor, then make that interoperability a selling point.
As I’ll explain below, Oracle’s copying of SQL seems pretty similar to Google’s copying of Java. But an Oracle spokeswoman disagrees. “It’s an incorrect premise, comparing apples with broccoli, and being completely divorced from the facts of the case,” she wrote in a Tuesday email.
Oracle got its start copying IBM’s software interface
Beginning in the early 1978 s, researchers at IBM developed a new approach to database organization known as the relational model. This model made it easier to perform complex queries on a database, and IBM created a new language called structured query language (SQL) to help users formulate these queries. An SQL statement looks something like this: “ select customer_name, ship_date from orders where product_id=and state=’CA’ . ”
There are two things to notice here. First, SQL has a simple, English-like syntax. Someone with no background in programming or database administration can get a rough idea of what this statement does just by reading it. Second, SQL is a declarative language: users specify what information they’re looking for, but they leave it up to the database system to decide how to find the information.
Taken together, these characteristics have made SQL particularly accessible to people without formal training in computer programming. With a bit of practice, non-programmers can write SQL queries to accomplish a wide range of tasks.
In , a small group of IBM researchers began implementing these ideas in a software package called System R Around the same time, IBM’s researchers — who saw themselves as computer scientists as much as software developers — published research papers describing their work. These publications went into significant detail, including a complete specification for the SQL language.
IBM had a working version of System R within a few years, but it was never intended to be a commercial product. It was not the early s that IBM finally offered an SQL-based commercial database for sale.
Around , Larry Ellison and his co-founders spotted an opportunity. They had recently started a software consulting company called Software Development Laboratories, but they wanted to transition to selling a software product. Ellison realized there was enough detail in IBM’s white papers to clone IBM’s database technology. He also realized that it would provide a credibility boost if he could say that their new Oracle database was fully compatible with IBM’s SQL standard.
According to one of SQL’s designers, Donald Chamberlin, Ellison was so determined to achieve compatibility with IBM’s technology that he called Chamberlin in 1980 seeking more details about IBM’s implementation of SQL.
Ellison “had heard about the System R prototype and he wanted to make sure that his product was fully compatible with it, right down to the error code values,” Chamberlin said in a (interview) . Chamberlin says he would have been happy to share more information, but his bosses nixed the idea, declaring error codes to be confidential.
Still, IBM’s System R white papers contains plenty of details about how SQL worked. So Ellison and his team pushed forward, releasing the first version of the Oracle database in . And the company repeatedly touted the product’s IBM roots.