App Development Managers Should Care About Oracle’s Suit Against Google

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.

  1. Reinvigorate Java as a focal point of Internet innovation, starting a second golden age of Java.
  2. 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. 

Comments

"In choosing Java’s future

"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.
"

Eh, no... how can they reinvigorate the java platform without making money from it?

Reinvigorate

Hi Ninja; thanks for your comment. I reply: Not by suing people! Oracle *is* making money from Java via its middleware and apps. To reinvigorate Java, Oracle would have had to maintain Sun's loose governance policies. But it's too late for that now.

Patents and Clean Room

John,

I'm glad to see that many people are seeing this as about much more than simply Java ME, which is how I think Oracle would like to play this. A clarification because IANAL, but I keep seeing these two things elided:

"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?"

Clean room only matters for copyright issues, right? I mean, I can see how licensing practices might be somewhat indirectly involved, but won't the central issue be simply wether or not Google violated the patents?

If that is the issue, and given that the patents seem to apply to JVM technology in general, and given that the license for the JVM is GPL, and that only gives patent protection to other GPL developers, doesn't that mean that Oracle could potentially extract licensing fees from anyone making money off the JVM stack as well?

Further, in terms of the decisions Oracle has just made, haven't they signaled that they are willing to step over accepted community practices with respect to license enforcement? As Sun holds a lot of patents on Java related technologies, it seems to me that many people playing anywhere around the Java stack, including outside of the scope of lower level issues? This is the really great lurking concern, and I think could have much more far reaching impact than the single issue of Java.

cheers,

Miles

Is there a lawyer in the house?

Hi Miles; thanks very much for your comments. And please pardon our attempt to briefly summarize the legal issues Oracle's suit will turn on. We appreciate yours and all others who can help us all understand the legal fine points. I love your last comment about how many developers will interpret Oracle's suit, as chilling as I find it. I hope for the sake of customers everywhere that the sprawling enterprise of innovation on top of JVMs continues. It would be so convenient. If not, I am a firm believer that innovation will find another way -- outside of Java.

Java is finished

Java is finished.

From indications so far, Google is not willing to pay license fee to Oracle for something Google have developed. That means seven years of litigation. (typical time for a patent fight all the way to SCOTUS). Discovery alone will 2 years, and the laywers will ask for every single document in Google's archive since the beginning of mankind : not because they need it, but because they can. The uncertainty in outcome will stop any further development on Java. Google is a Sun customer, and they licensed the 1.5SE and the 1.3ME. The reason why they went their own way is not because of cost : it is because ME is just not 'good enough' for mobile phones, so they have to do their own thing. The only license Google can buy would be the patent, and after Biliski, software patent is on flaky ground.

Even if Google wins in the end, Oracle America will still controls the Java standard, so Google will have every incentive to move away from Java. Sun did not sue Google over Java for 2 important reason : it's bad for business to sue your customer, and the Java programmers will revolt. Programmers in general don't like software patents, and open source programmers HATE software patent even more than they hate Microsoft. The action by Oracle means any Java developer will have a sword of Damocles hanging over their head : what if Oracle decide Java 7 will not be open source anymore? Java was never released in GPLv3, so it's not 'patent proof'. Further more, just like how SCO became the most hated tech company in the world, you can expect a similar effect on Oracle.

Google will simply say 'stuff it' and use another language instead. Google doesn't need Java at all, andtThey can use another language like python or even C# to compile the codes for Android and bypass the patents in question. The share of Java programers have been in decline when compared to .NET for a while, and Android was going to revitalize Java. With the lawsuit, Oracle killed Java. It will take a while for Java to be flushed out from the ecosystem, but in 10 years time, it'll only exist as a legacy programming code like COBOL.

I hope you are wrong

Wow; great post. Thank you. I hope you are wrong about Java being "finished." That would hurt a lot of people.

Microsoft can sue over .NET

Microsoft can sue over .NET (Mono) if they wish, Python does _not_ include a VM, it's a language, it can be run over .NET or Java. Nobody complained when Sun sued Microsoft, it seems everyone here is just biased because it's Google being targeted, just because Google does something, it doesn't make them right.

Making a half-ass library implementation and an incompatible VM only hurts Java. The whole reason JVM exists is so it can be used by the same binary interface _everywhere_. There are thousands of languages that target the JVM, and none of them work on Android because Android has its own version of JVM. How anyone can think what Google has done here is innovative is beyond me.

They should be sued just for doing something so stupid and harmful. If they wanted to innovate, they would have made their _own_ VM from scratch using more modern techniques, and perhaps that could have became something better than what JVM is now, thus superseding Java technology with something better. Instead, they just ripped off JVM and made something that isn't really better, yet is incompatible with everything else.

This is like when Microsoft decided to reinvent the Internet thus leading to it being impossible to write a correct website that will run properly in Internet Explorer.

I doubt Oracle will sue any legitimate implementors of Java technology... in that case, Java would be 100% dead within a day or two. Switching to .NET is obviously _NO_ solution, rather, it would be an irrational rebellion; Microsoft is just as likely if not more likely to cause legal problems.

If Java technology becomes closed, developers should come together and create something that is new and better, addressing all the issues with the old JVM; creating something that is inherently more secure and robust while dropping all the legacy problems.

Java and Standards

You are more than charitable to Sun/Oracle. Sun WITHDREW Java from the standardization process when they learned they must a) give up control of the developement process to a committee of Java users and b) Transfer copyrights on the material to be standardized and license all patents in a non-discriminatory manner (as Microsoft has done with C#/CLR, Microsoft retaining control only of that portion that directly interfaces with Windows since it would have to have released Windows specific patents).

To try to paper over the lack of openness, Sun started the Java Community process, where we developers (and I include myself in this group), spent a lot of time and effort improving Java, submitting it to overlord Sun to be blessed and put into the product. It would now appear that Oracle is going to expropriate all of our good work, not compensate us, and extort money from people who dare to use Java.

Well just as I can not tolerate the arrogance and capriciousness of Apple and will no longer develop for their platforms, I can now say the same about Oracle and Java. At least with C#/.Net there is a known and defined economic and use relationship, not an extorted one.

Microsoft? Are you kidding me?

Pardon the facetious heading. Isn't it amazing that Microsoft, the Evil Empire of the North, the Borg, the My-Way-Or-The-Highway Vendor, comes off looking more open here? Then again, Microsoft has always understood what matters to developers pretty well. I'm not sure how much Oracle cares about developers.

The end for Java?

It is certainly very worrying that Oracle has decided to attack developers in this fashion. I'd now see the JavaVM, as controlled by Oracle, as a very high risk platform for which to develop.
Oracle is hardly the kind of fast moving innovator that can keep up with the pace of development of the .NET platform. This track record of bloated, and borderline unsatisfactory software does little to inspire confidence in the future. I think this spells the end for Java, as Oracle is effectively killing all third party VMs - where virtually all progress for the java platform was occurring.
I doubt that this will pose any real problem for google, as they will simply dump the poisoned Java platform, and go elsewhere. Personally, I'd like to see C++/Qt as the primary development platform for Android.

.NET has the same problems.

.NET has the same problems. "think this spells the end for Java, as Oracle is effectively killing all third party VMs" Huh? Dalvik isn't a JVM, it's a rip off of the JVM. Do you really think Oracle is going to sue someone for making a compliant Java implementation? Say.. Apache Harmony, GNU Classpath... In that case, Java _would_ die, it would probably be a bad business move for Oracle.

C++... brb 1970