We knew that Sun had to be bought eventually by some other giant. There were only four names that could be interested in acquiring Sun, in order of "importance": IBM, Oracle, Microsoft and Google. From these, Microsoft would never pass an anti-trust evaluation of the deal, and Google really doesn't need anything from Sun (owning Java and MySQL could be nice, but not needed).
This leaves only two major players: IBM and Oracle. Given the failed negotiation with IBM it was just a matter of time for Oracle to make the move. I just never expected it to be so soon.
Obviously people are asking "what now?", and the web is filled with speculations and analysis. So here is my take.
From my point of view, Oracle just made one of its best acquisitions of all time.
First of all, they have Solaris and ZFS (and the corresponding teams). Solaris is the OS where the Oracle RDBMS runs better, and ZFS is THE best filesystem to date. We can expect Oracle to take advantage of having the three development teams (RDBMS, Solaris and ZFS) working at the same place to make the RDBMS take full advantage of the Solaris/ZFS stack.
Combine a Solaris/ZFS-optimized RDBMS, the low-power/low-heat Blade servers and Sun storage offering, and you get a killer box for all database needs. All under the Oracle brand. This, by itself, is worth the $9.5 a share that Oracle paid, and positions it on par with IBM.
As a side note, the Solaris/Oracle on Sun servers is a quite common configuration, so Oracle is also expanding the offering to its existing customer base (meaning more money flowing in the Oracle direction).
Then, we have Java. A language, a platform, that is a monster by itself. No other platform beats its ubiquity (yes, not even Windows, if you count the smart phones).
Java is at the center of Oracle's middle-ware strategy. The possibility of IBM controlling Java may have been the trigger for Oracle to pick up the ball and buy Sun less than a month after the IBM-Sun deal was broken.
But, what Oracle did exactly bought regarding Java? The brand, surely. But does it really matter? Not much. Google is already distributing Java that is not Java in Android and Google Apps.
What else? A permanent seat on the JCP? That is also a nice thing to have, as it has veto power over the features of Java The Language. But Oracle itself has proposed that the JCP should be an "open independent vendor-neutral Standards Organization where all members participate on a level playing field", that "veto power" may disappear.
And the code is "free" as in both "beer" and "speech": all you need to do is go to the OpenJDK project, take the code, fork it, and you have your very own Java as long as it complies with the Java Language Specification and passes the TCK (the Java Technology Compatibility Kit).... wait...
Here comes the issue, why Oracle didn't want IBM to get complete control of Java: Sun controls the IP of Java, and only grants it to a third party implementation if it passes the TCK, which is freely available to everyone but will poison the license of any code that is tested under it to make it non-OSS friendly. Yes, this means that the resulting code cannot be released under Apache, GPL, LGPL, BSD or any other other OSI approved license. Also, a TCK code can only run on non-secluded PCs, ruling out servers, cellphones and PCs in booths and kiosks.
Do you want to make an implementation of Java, claim that it is Java compatible and distribute it? Pay Sun for the commercial use of the TCK. IBM and Oracle did this.
The latest Sun stunt on Java was to announce the release of the JDK 1.7 without a JSR (Java Specification Request), which means releasing a version of Java without a language specification or TCK, the two components necessary for an independent implementation, this effectively blocked all non-Sun Java implementations from upgrading to JDK 1.7. Who where the two most affected companies by this stunt? IBM and Oracle, the only two serious alternative JVM implementors.
So, what Oracle actually buys from Sun is the Java IP. They can now upgrade JRockit to the next Java version without needing a language spec or a TCK, and claim it is a Java compatible implementation, because now that they own the IP they can call a "Java compatible implementation" anything they feel like it.
This puts them in a very unique position: Either they stay true to what they wanted to do on December 2007, creating an external standard body for Java and giving the TCK for free and without ANY licensing burden, OR they can continue the Sun strategy and release the JDK 1.7 without a TCK, which could hurt IBM's middle-ware business.
As a final note, the lack of IP on a "Java" implementation, even if it does not claim to be Java (like Project Harmony) may not seem very important to us mortals. But it is critical to corporate lawyers. For a more detailed analysis of the Java IP, how it is acquired by third parties and how it may be a risk, please read these posts: