Just months after celebrating Java’s 20th birthday (and the qualities that made it the most used mainstream programming language), the programming world is abuzz with rumors that Java is doomed. In September, it was widely reported that Oracle had laid off a significant number of its Java evangelism team, and then, in October, InfoWorld ran a gloomy article about an e-mail from a “former high-ranking Java official,” with the subject line “Java’s planned obsolescence.”
The claim is that Oracle, which took over Java when it bought Sun Microsystems in 2010, has been a bad steward of the language and, with typical Ellisonian ruthlessness, is abandoning Java while it reinvents itself as a cloud computing business. Sigh. This is just par for the course for Oracle, whose developer relations have always been defined by something in between neglect and contempt.
(Related: Java turns 20)
Oracle has always emphasized sales relationships with executives and managers over the opinion of developers, and it has a long history of producing buzzword-laden initiatives and pie-in-the-sky promises. Oracle has a reputation for abandoning unprofitable or redundant product lines, but it’s these new projects—not proven technologies—that Oracle has a history of giving up on. While this is guaranteed to lead to dissatisfaction among elements of the technical rank-and-file, it’s worked out fine for Oracle’s bottom-line.
To be fair, Oracle itself is somewhat responsible for talk about Java’s declining prospects. According to Oracle, Google’s use of Java in Android has “destroyed Java’s fundamental value proposition as a potential mobile device operating system.” This claim comes from Oracle’s lawsuit against Google, which has been ongoing since about five minutes after Oracle acquired Sun.
When Google first released Android in 2007, Sun was delighted. But it apparently never “specifically and affirmatively” granted permission for Google to use Java and its libraries in Android. Oracle bought Sun, but six months later negotiations broke down, and Oracle sued Google.
Ultimately, a U.S. District Court found “Google’s equitable defenses rest primarily on a November 2007 blog post by Sun’s CEO congratulating Google on the release of Android, as well as similar positive statements by Sun executives thereafter. Congratulatory statements do not fall under the narrow circumstances proscribed by our court of appeals.” Like every other techie, I start from the presumption that the company suing for infringement is the bad guy, but a multi-hundred-billion dollar company pointing to a blog post as its justification is pretty pathetic.
While the truth of the lawsuit is the desire to extract rent from Google for using Java on phones, the legal battle centers on whether Google has performed copyright infringement on the Java API. From a developer’s perspective, it seems clear that APIs should not be covered under copyright. Even if one believes, as I do, that the law should give creative people an incentive to invent, a group of function signatures should not be protected the same way a novel is protected. APIs are not experienced and put on the shelf to be periodically revisited; their value is entirely dependent on implementation in a fast-changing environment. If anything, APIs should be protected with something closer to patents. (Yes, I understand that patent law is even more screwed up and subverted from its original intent than copyright law. And I am not a lawyer, so please do not sue me if it turns out that copyright law is worse.)