Friday, May 25, 2012

Oracle and Google: Control over inventions has limits

Has it really been two years?

The verdicts are in: After Google used some Java-related standards (the language, and some APIs) in the Android operating system, Oracle has been told that Google did very little wrong, and so Oracle doesn't get to demand royalties from Google. Insofar as Google did violate intellectual property laws, well, the violations were extremely minor, mostly unintentional, and may not have even been illegal in the first place.

So where does that leave Java? Answer: stronger than ever. Definitely stronger than if Oracle had won.

Oracle appears to have bought Sun not because it sees value in Java, but because despite seeing Java as having very little long term future, it believes it has a window of time to milk the platform for all its worth. Filing a lawsuit against a company that's using some concepts and standards originating in Java makes little or no sense if you want Java to grow and want to reap the benefits of it growing. Sun, at the time, while unhappy Google wasn't adopting the entire platform, were happier to see Google adopt what they did than to have Google reluctantly adopt one of Java's competitors, such as .NET.

And it's not hard to see why. Take the C programming language.

C originated on Unix. A C purist would have argued, in the early seventies, that "C" is only "C" with certain libraries and possibly even the Unix API. But C was ported to platforms like CP/M, and later everything from MS DOS to AmigaOS, usually with only a subset of the standard C libraries. The result was massive popularity of the language, and arguably this, more than anything else, lead the way towards Unix's eventual popularity, in the form of its close clones like GNU/Linux and Mac OS X.

Given what Sun was trying to achieve, it's hard to see how Android could have damaged Java in the long run. Android has made legions of new Java programmers, who are as at home programming weather apps for Android as they are programming data processing front-ends for JEE applications. They use, for the most part, the same developer tools, and produce libraries capable of running under both platforms.

Indeed, without the lawsuit, it's not impossible to envisage a relatively near future in which Android phones end up coming with the full Java stack. Because developers demand it.

Android's pushing of Java technologies is happening in a context where Java is facing stiff competition as an enterprise technology platform. By the time of Android's first release, .NET was showing serious advantages over Java. .NET has a high degree of language agnosticism, which has proven important in environments that have large amounts of existing business logic code written in VB or worse.

Why then is Oracle suing? Why will they almost certainly appeal this verdict?

Because Oracle didn't buy Java to incubate it, to make it a popular platform that can compete with .NET and eventually become the platform of choice for developers everywhere. Oracle bought Java because they apparently saw an opportunity to make a lot of money in lawsuits, and to temporarily obtain royalties from the diminishing number of companies licensing JME.

I'm glad it looks like Oracle have failed. I'm hoping that a clear ruling in favor of Google will strengthen Java. Because Oracle winning can only kill Java, both by making it too toxic for third parties to touch, and by limiting the platform to one industry that, quite honestly, in the absence of third party and developer support, has way too many incentives to switch to Java's competitors.