As much fun as the juicy details of the Oracle-Google lawsuit are, the meaning of the suit for enterprise application development managers is, well, philosophical. Aside from sweating over the legal status of your Android phone (if you own one), the lawsuit won’t create drama for your shop. But the long-term implications are serious. Henceforth, Java will be a marching band rather than a jazz collective. Oracle’s action will reduce the independent innovation that has made Java what it is, causing developers to seek new ideas from sources outside of Java. Your Java strategy, as a result, will get more complicated.
A little background: Since the late ’90s, the primary source of Java innovation has been open source projects that either fix Java limitations or provide low-cost alternatives to vendor products. But Java’s position as a wellspring of innovation has been declining in recent years as many Web developers shifted their attention to dynamic languages, pure Web protocols, XML programming, and other new ideas. This trend has been particularly pronounced in the client tier for Web applications, where alternative rich Internet application technologies including Ajax frameworks like Dojo and container-based platforms like Adobe Flash/Flex have replaced client-side Java. Java virtual machines are a foundation of these efforts, but the enterprise and mobile Java platforms are not.
In choosing Java’s future course, Oracle had two philosophies to choose from.
- Reinvigorate Java as a focal point of Internet innovation, starting a second golden age of Java.
- Supercharge Java as a money machine.
Oracle chose #2, and knowing Oracle I’m not surprised. (My comment isn’t meant as a knock on Oracle.) Java – the language, the runtimes, the frameworks – is mature technology. Companies across the economy are too committed to Java to quit and move to something else. Most enterprises aren’t interested in rapid Java innovation – they want stability and predictability. Open source Java alternatives like Apache Tomcat and JBoss are interesting to enterprises primarily because they promise lower costs, less because of the innovations those products bring.
And Oracle is all about 20% annual growth. So Java now must produce lots of profits for Oracle. Google Android’s use of Java is a fork of the standard Java that Oracle now owns. I’ve seen several reports in recent weeks pointing to Android’s fast growth in smartphones. And it is destined for iPad-style tablets as well. So it was on the cusp of generating a lot of revenue, and because Google doesn’t own a Java license, Oracle wouldn’t share in that bounty.
Sun Microsystems never went after Google about its unlicensed Java work. On the other hand, Sun’s last CEO, Jonathan Schwartz, dearly hoped to sell many truckloads of servers and storage products to Google, and so suing over Android would have been bad for business. Oracle read the Google relationship differently.
The lawsuit will turn on whether or not Google’s Java development practices are found to violate patents that Oracle now holds. Did Google observe accepted “clean-room” practices in implementing features like class loading? Did Google observe accepted open source licensing practices? If Google prevails, its Android Java fork will become the standard for Java smartphones and tablets, and Oracle’s Java franchise will lose value. If Oracle prevails, it will obtain a hefty settlement from Google and also probably force Google to acquire a Java license.
Whatever the result of the lawsuit, Oracle’s action will result in slower innovation in Java from this point forward. This is the long-term result of the lawsuit: Less innovation in Java. We’ll see lots of innovation on top of JVMs and the Java Web container but no more independent innovation in JVMs, compilers, and memory management. Oracle will decide how Java addresses scale-out cloud environments. Oracle will decide how to make Java’s memory management more flexible and forgiving and how to adapt Java to new devices like tablets. Oracle may also consider such contributions from the handful of Java license holders, but we won’t know about that until Oracle decides what to do with the dormant Java standards-setting process.
We don’t think developers will be motivated by Oracle’s new posture; they will look elsewhere for great new stuff. Enterprises buy for stability, but developers adopt the technologies that make them most productive. Developers have driven adoption of Apache Tomcat, VMware’s Spring, and Google Web Toolkit (GWT) (a popular Ajax framework that preserves Java syntax for client-side development by cross-compiling it into Ajax). It’s developers who have shifted the Java battle for market share from the commercial vendors like IBM and Oracle and tipped the balance in favor of open source frameworks developed at companies like Google and foundations like Apache and Eclipse.
This means your Java strategy has to be about much more than the “official” Java platform and language releases. Start thinking about Java like an operating system. Those great new ideas in languages and development frameworks? They’ll run on Java but evolve outside of it.