Frankly, I think Sun finally did this because it had no choice in the matter. My only question, as someone whos followed Java closely at times, isnt "What took them so long?" Its: "Did Sun do it in time?"
Sun took its own sweet time about open-sourcing Java, because for the longest time Sun has been of two minds about open-sourcing anything.
Suns golden years were when it made billions from proprietary hardware, SPARC, and proprietary software—first SunOS, and then Solaris.
It took the company a long time to finally realize that Windows and Linux on cheap x86 hardware were ripping its profits right out from underneath it. Sun would play at open-source and x86, but the company would then sabotage its own efforts.
For example, Sun spent 2 billion smackers on Cobalt Networks, a one-time leading Linux appliance builder that used AMD processors. Three years later, the Cobalt line was dead.
In 2002, then Sun CEO Scott McNealy dressed up like Tux—no Im not making that up—and proclaimed: "We love Linux." The next year, Sun president Jonathan Schwartz said that if Linux users were looking for protection from SCOs then hot and heavy attack on Linux, "If you use Linux on the server, even if we sold the distribution to you, you are on your own."