Consequences of Oracle v. Google

We're a long way from any kind of resolution in the Oracle v Google suit, so it's really anyone's guess how the case will unfold.  Regardless of the ultimate outcome, I think the consequences of Oracle's actions will likely have far reaching implications for Java development.

The future is not looking bright for Java.

I understand that Oracle now has a mobile platform they are trying to protect, but lets be honest here: Regardless of the revenue Java ME may or may not provide, it can't compete with either Android or iOS in terms of capabilities and its decline is all but certain given current trends.  Java ME will likely die in its current form, and it would take years for Oracle to even come close to making it competitive against either of the current popular platforms.  And if by some small chance Oracle managed to have Android taken off the market, it would just end up having handed Apple the entire mobile space -- lock, stock and barrel.  Java ME is dead meat either way.

Of course, it's highly unlikely that Android will get pulled from the market completely (not without an extremely long and protracted fight with Google), so by all appearances Oracle is just trying to get some cash out of Google over the patents in question. As others have already pointed out, it's more likely that they'd go after some sort of large sum payout rather than licensing fees for the patents: If Oracle succeeded in getting some form of licensing agreement out of Google -- either via settlement or court ruling -- that would only be a short-term victory since in all likelihood Google would just change Android to avoid those patents completely and kill any opportunity for Oracle to suck money out of future versions of the platform. 

So, all indications are that this is Oracle trying to shake down Google for succeeding with Android where Java ME (mostly under Sun's stewardship) failed. 

No good deed goes unpunished.

There's another angle to this lawsuit as well: In addition to trying to extort some money from Google, Oracle may be signaling its intent to exert more control over Java than even Sun had dared.  The lawsuit has already raised a few questions regarding the impact it may have on current open-source implementations of the Java platform. Coupled with Oracle's latest move in their decision to effectively kill OpenSolaris, and given Oracle's general lack of enthusiasm (if not outright hostility) towards open-source in general, it wouldn't be hard to imagine them trying to lock up the Java platform in a similar way for their own business needs and trying to make it more of an Oracle-centric technology. 

This would obviously have dire consequences for the Java community if it were to come to pass.  It's no secret that a lot of developers are already starting to question Java's future, given the rediculously long time between major updates to the platform (Java 7 is years overdue) and the alternative technologies that have gained mind share in areas where Java once dominated.  This lawsuit has only added more uncertainty to the mix for many in the community.  And, if Oracle is really trying to move Java into more of a closed system than it is currently, we could be looking at a dramatic shift in the landscape for Java development.  I wouldn't be surprised if we started to see a massive migration away from Java as a result of Oracle's recent moves, because many developer simply don't want to be a part of this sort of arrangement...particularly if it's coming from the likes of Oracle.

And If that's not enough to make Java developers worry, there is another potential wrinkle that seems to have been overlooked that's tied to this whole mess: Google's future path for Android post-lawsuit.  Putting Oracle's possible locking-up of Java aside, the choices made by Google following this lawsuit could potentially signal a decline in Java all on its own.

The rise of mobile computing has already started a shift away from the web -- a place where Java has enjoyed the most success.  But since Android leverages Java (the language, not the platform as a whole) for application development, it has still managed to enjoy some success, and stay on developers' radar, despite the major changes going on in computing.

But, if Google executes "The .NET Option", all of this could come screeching to a halt.  And developers will have no choice but to abandon Java completely as the mobile computing revolution marches on.

No, I'm not talking about Miguel de Icaza's wishful suggestion that Android move to .NET.  The likelyhood of that happening is exactly zero: Google would not willingly partner with one of their biggest competitors in the industry.  It's foolish to ever think they would.

What I'm talking about is something that's been mentioned frequently since Oracle's lawsuit was announced: The similarity to the lawsuit that Sun launched against Microsoft back in 2000.  Many in the blogosphere have focused on the similarities between that case and the current one as an example of how Oracle may be successful in their suit against Google.

But what seems to have been overlooked is what happened after the lawsuit back in 2000: It's the consequences of Microsoft's loss and their course of action afterward that are more interesting, and could portend the future for the Android platform, and for Java development as a whole.  Because, unlike the Sun v Microsoft suit -- where Sun managed to save Java from fragmentation and possible failure in the marketplace -- this suit could at the very least marginalize Java to the point of irrelevance.

I haven't really seen anyone consider that Google could very well do what Microsoft did following their loss in 2000: Ditch Java completely and create their own tailor-made language and runtime from the ground up.

By all accounts, Google already has a key piece in place: The Dalvik VM is Google's own custom virtual machine, built from scratch, that runs it's own bytecode and is (patent challenges notwithstanding) completely different from the Java platform's JVM.  Java programs written for Android already get compiled to this new bytecode format in order to run on the system, so in all likelihood the only thing Google would have to do is create a new programming language -- different enough from Java to avoid legal problems, but close enough to be familiar to existing developers (just like Microsoft did with C#)-- that could be used in place of the Java that's currently written, and build a compiler for this new language that targets the Dalvik VM.

Google has already tried their hand at creating a new language before, and given that Microsoft managed to be fairly successful with C# and the CLR, I'm pretty confident that Google could succeed as well if they chose this path.  And considering the amount of time that this lawsuit will take to wind its way through the courts (several years at best) it's possible that Google could make the move off of Java completely and shift Android development into a new direction before everything is even settled, thereby bypassing any attempts by Oracle to either extract money from them, or lock up the Java platform.

Now, I admit that there's very little evidence that Google would go this route, but it seems pretty clear that this option is available and has a high likelihood of success -- and it would probably be even easier for Google than it was for Microsoft, since they already have the runtime in place.

Unfortunately, a move like this would likely have a huge negative impact on Java development: As stated before, the shift to mobile computing is well underway.  And if Google ditches Java in favor of their own home-grown language, then it's a pretty good bet that Java will be relegated to the world of legacy systems, targeted at servers and the enterprise, and not much else.  This would play right into Oracle's potential plans for Java, since this appears to be what they want for the platform given all that's happened up until now, but it would be a bit sad to see Java relegated to an enterprise-only existence given the platform's remarkable life in so many areas of computing.

No matter what happens between Google and Oracle, the future for Java development isn't looking all that good right now.  I won't say that Java is going to die, or is dying, but I can't really see where people will want to continue using Java with the uncertainties Oracle has (intentionally or not) introduced as a result of this lawsuit against Google.  And unlike Sun -- a company that always tried to do the right thing for developers (even if they stumbled a bit) when it came to Java -- it's become clear to many at this point that Oracle will not have the same approach towards the Java platform as they did.  And that alone is enough to make many developers consider alternatives.

The really sad part is, with Android's quick rise in popularity this past year, Java development got a much-needed shot in the arm in terms of attention and mind share -- something that was not only to Google's benefit but Oracle's as well.  Now, Oracle's move threatens to kill that mind share completely, and scare a lot of people away from Java development.

Way to go, Oracle.