Oracle's Larry Ellison focused on Java in describing the rationale for the investment, saying "Java is the single most important software we've ever acquired." While there have been conspiracy theories that Oracle bought Sun to kill MySQL, or as a favor to his friend Scott McNealy, public companies just don't work that way - Oracle picked up a lot of valuable assets in the acquisition, and clearly Java is one of the most significant.
What should Oracle do with Java? Well, as a public company in what is still at least purportedly a free-market economy, Oracle should use Java to maximize shareholder value. But how? Can Oracle learn from the mistakes made by Sun in running the Java ecosystem? After all, it is a well-known Silicon Valley joke that Sun's software strategy is to buy all the software companies who do not run on Windows, and kill them (Netscape, NetDynamics, Forte, ...).
Clearly, Sun did not use Java or its other software assets effectively to maximize shareholder value. And just as clearly, Oracle thinks it can do so better.
- Oracle should develop a better mechanism for monetizing Java than did Sun. I'll come back to this one.
- Oracle should clarify who it is targeting with Java. Today, Java positioning is a mess - and this has led to a product architecture that is far too complex and simultaneously unsatisfying for many developers. Oracle should jettison a lot of the "cruft" that has built up on Java under Sun's stewardship.
- Once Oracle is clear on which developers it is targeting with Java, it should simplify the product suite for those developers. For example, the core product should be simple, complete, and useful across a broad range of deployment options. Then, there should be dedicated product sets for classes of developers, such as embedded device developers, server-side enterprise application developers, web site/property "cloud" developers, and desktop client-side developers. A good developer targeting one of these platforms should be able to learn and use the suite effectively in a couple of days, and should reach a reasonable level of expertise in less than a month. Other issues of concern to these developers, such as performance, size, portability, etc. should be addressed quickly.
- Oracle should clarify which related components are "in," and which are "out." For example, Oracle should make clear which development environment(s) will Oracle support, or enable support for. And which third party or open source projects (e.g. OSGi) will Oracle support.
- Once Oracle is clear on who it is serving, and has a roadmap to do so, then it can look at competitors using Java much the same way Microsoft looks at Windows ISVs. Although Microsoft wants to crush these competitors in their respective businesses (through superior product offerings), it also wants to learn from them how to better serve them - this makes the entire Windows ecosystem more powerful and has allowed Windows to overcome competitors in many markets. Oracle should do the same with its newly expanded ecosystem. And in doing so, it will find opportunities to improve monetization and drive shareholder value.