Today all eyes are on Apple, which is expected to announce the next iPhone, and Oracle, which continues its OpenWorld event.
Apple has a tendency to get us excited about the future and what’s possible. But that future is always tightly controlled by Apple. These constraints can be good for some developers’ creativity and we’ve seen some great innovations built on top of Apple’s technology. But there’s always been a need for a more open alternative to give innovators room to create new technology. Android has emerged as the defacto “open enough” alternative to Apple’s iOS and it’s opening up new possibilities in mobile and the post-PC era, moving us forward to the era of the Internet of Things.
But Android is in danger from Oracle. And for an event with a name like “OpenWorld,” we’re hearing a lot about closed, proprietary products. Many have commented on how Oracle is trying to become more like Apple with its new line of tightly integrated hardware and software tuned for optimal performance. It’s also a lot like Apple in that it’s obstructing Android and trying to rule the Java development stack with an iron fist.
But Oracle isn’t just obstructing Google and Android with its lawsuit, but the future of technology in general. Everyone’s waiting to see how the lawsuit plays out and how it affects Java, Android and the copyrightability of APIs. This uncertainty is putting the future of open source, mobile, the Internet of Things and many other next generation technologies on hold. Oracle’s not alone in this obstruction, but by targeting the Android operating system itself and not just the hardware implementations, it is perhaps the biggest threat to an open technological future.
From what I’ve seen, Oracle has a strong case against Google. Google has even admitted that it probably should have sought a Java license as its competitor RIM did. And as for the copyrightability of APIs, intellectual property law analyst Florian Mueller makes a strong case that Oracle has a strong legal case for ownership of those APIs. But what about the moral and practical case for its licensing scheme?
Java: The Anti-Open Source Open Source Project
Oracle’s licensing for Java, inherited from Sun, goes against the spirit of open source. Other open source projects, ranging from Linux to Hadoop to WordPress give users the right to modify the source code of a project, build on top of it and distribute their derivative work so long as those works follow the same open source license. Some licenses, such as the BSD license, are even more liberal, allowing derivative works that aren’t open source.
There are two common ways to commercials such projects. One is to sell enterprise support, a model that Red Hat has become famous for. The other is to create so-called “open core” projects. An open core project is one with a free open source foundation with proprietary features built on top. MySQL and Eucalyptus are famous examples. A combination of both open core offerings and enterprise support has probably become the most common approach.
Oracle takes the exact opposite approach: although the majority of Java is open source, there remains a core set of patents and copyrights that must be licensed from Oracle, and can only be licensed if it follows a precise set of compatibility guidelines. It’s not clear that Google could have acquired such a license if it had tried.
Oracle makes money off Java by selling these licenses to companies like RIM. Its Berkley DB product, on which the new Oracle NoSQL product is based, is similar: you can embed the open source database into an application, but you can’t redistribute that application. If you want to distribute an app that includes BerkleyDB in it, you must buy a commercial license. Again, this is the exact opposite of most open source applications, where you can build derivative works based on the core technology and only pay for the advanced features or support.
Another common element of open source is community. Companies often sponsor open source projects by paying developers to contribute, but the projects are developed in the open and accept contributions from developers outside the sponsor company. Google’s open source projects like Chrome and Android fly in the face of this tradition, and as Mueller points out Google very much as a “do as I say, not as I do” approach to openness and intellectual property. But that’s beside the point in this case.
The Consequences for Oracle
Oracle has every legal right to continue to pursue its current Java strategy and its lawsuit against Google. But what’s in it for Oracle? It appears the company is trying going after licensing fees from Google, and the ability to maintain control over Java. What Oracle seems to be worried about is that an Android future is a mobile future that doesn’t contain Java.
But Oracle might be setting itself up for failure. By hindering Android, it’s helping iOS and Windows Phone 7 encroach on Android’s gains. And an Apple/Microsoft mobile duopoly will certainly be a Java-less mobile market. Perhaps Oracle thinks that fighting Android will bolster RIM, allowing it to make up some licensing fees that way. But RIM’s new QNX-based operating system is prioritizing Flash and C/C++ as development stacks, not its traditional Java Runtime Environment. Amazon.com is licensing Java for the Kindle, but for how long? The forthcoming Kindle Fire is based on Android, but Amazon.com is reportedly in talks to acquire WebOS from HP. That would give Amazon its own non-Java dependent mobile OS. And if Oracle’s lawsuit is successful, even Google could ditch Android in favor a more WebOS-like HTML5-centric operating system, or to acquire WebOS itself.
Meanwhile, the lack of a standard free open source operating system will slow down technology innovation. Until the lawsuit, Android and Java seemed like safe bets for developers wanting to build applications with a wide appeal. Now Cocoa and HTML5 seem like much safer bets. And if Oracle, Microsoft et al are successful in killing Android as a free-as-in-beer operating system, that creates an opportunity for the near-dead MeeGo project, or for whoever ends up owning WebOS to give that away for free instead.
The Consequences for Everyone Else
If the lawsuit is successful it will obviously cost Google a lot of money, both in licensing for Android devices already sold and for licensing for Android devices in the future (unless Google builds or acquires another operating system, which will also cost the company money). But it certainly won’t kill Google. But the impact on developers, startups and small ISVs could be huge.
Having a free operating system as the starting point provides a spring-board for new devices and applications that wouldn’t be possible if the creators had to worry about licensing fees up front. Android has the potential to do for mobile and the Internet of Things what the LAMP stack did for Web applications. A new standard free-as-a-in-beer mobile operating system could and probably will eventually emerge if Android ends up costing money, but it would take time to emerge, setting back new innovations.
What Can Oracle Do Instead?
In many ways, the on-rush of HTML5 is inevitable and Java will simply be less relevant on mobile regardless of the outcome of Oracle’s lawsuit. It’s the best way to build cross-platform applications.
However, what’s further down the stack from HTML5 is still up for grabs And the opportunity is still there for Java to be the standard development language for Android devices, which could still potentially be the most widely used mobile operating system in the world.
In order to take advantage of Android’s potential, Oracle will need to create a new business model for monetizing Java. Instead of selling the platform and giving away what sits on top, Oracle will need to come up with some compelling features and/or services that companies are willing to pay for. Other than its own distribution of Android, I don’t yet know what those could be. But they would also need to be marketed not just to Google, but to all vendors selling Android related products. Oracle has a tremendous opportunity, but it needs to monetize that opportunity with carrots instead of sticks to avoid irrelevancy. That’s going to mean giving the Java Virtual Machine and Java APIs real open source license and building a fresh business model – including, possibly, its own distribution of Android.