I have always felt, despite the competition coming from .Net and the great strides made by the CLR, that Java’s future prospects as a [more or less] general purpose development platform were still pretty good because of its robust ecosystem. However, the acquisition by Oracle, I believe, spells the beginning of the end for this technology.
Sun’s financial troubles meant that selling to Oracle was a proposition very difficult for the former’s shareholders to resist. Oracle’s products have a strategic dependence on Java so it also made a lot of sense for Oracle to do the acquisition (ownership of MySQL just made the whole package an even sweeter deal.) However, I don’t see how Oracle’s corporate culture can be compatible with Java’s future as a general development platform. Oracle is focused as a database company and will most certainly drive Java’s development in directions that mainly benefit the Oracle product ecosystem. This can’t help but be to the detriment of the Java platform’s abilities in areas that don’t directly have to do with these ends. Many have blogged about the exodus of Sun’s top architects post-Oracle. This, to me, just paints a pretty clear picture of the overall trend.
It’s going to be a long time before Java completely fades away, and it is going to remain entrenched in the “enterprise” sector, but as a platform for all-purpose development, Java has been losing appeal for sometime now and I think this is the final nail in its coffin.
This clears the way for Adobe’s Flash/Flex and .NET to duke it out in the desktop space. Nibbling at their heels (more like slithering up their feet already), are Apple’s iPhone/iPad OS and Android. Android developers can take heart in the fact that Android is only Java in the slightest sense such that Oracle owning the standard will barely matter to them. But of course, at the same time, Android is so barely Java that the ecosystem of the latter only has the slightest intersection with and of benefit to Android. If a technology like Clojure for the CLR eventually overtakes the maturity of Clojure for the JVM, I’d consider the prediction – and the fate of Java’s relevance to general computing – sealed.