Sunday, July 18, 2010

Has Java reached a point of inflection?

I've been wondering about this for a while. As far as languages go, Java has experienced a good run, remaining in the number 1 or 2 spot for the better part of a decade. The language came along as the Web was really growing from its fairly basic roots as it's arguable that Java influenced the development of it more than many languages. It certainly took over from the likes of Pascal and C/C++ in universities and as a result most new software developers have more than a passing knowledge of the language. Of course it's never been a perfect language (I'm not sure such a thing will ever exist, except for very domain-specific languages); it's also never been my favourite language (C++ still holds that position.) However, I think that Java has had an overall positive affect on the industry.

The Java platform (formerly known as J2EE) took a few years to emerge after the first releases of Java (aka Oak) and initially competed with CORBA in the non-Microsoft camp. Once it was clear that J2EE would dominate, CORBA tried to embrace it more closely (the CORBA Component Model, for instance) but was never quite the force it once was. However, J2EE wasn't perfect and a lot of that could be traced to its CORBA roots. It wasn't really until EE5 and EE6 that it managed to escape those shackles, but even despite those problems it dominated the industry. Of course it's precisely because of some of these issues that frameworks such as Spring sprang (!) up, but even then a lot of those deployments ran on J2EE to simplify development.

During its life Sun was a pretty good custodian of the language and the platform. Yes there were issues, particularly when Sun moved from being a neutral party to one that competed in the vendor landscape. But when you think about how one other company in a similar position handled a similar position in the 80's and 90's, things could have been a lot less open. In fact I'm certain that the success of both the language and the platform is due in no small part to this relative openness that Sun managed to juggle, despite their conflicts of interest. Towards the end of their life as an independent company, with the likes of the Apache License issue, it was obvious that Sun couldn't quite make the necessary leap that was/is required to continue the dominance of the language/platform (and you could argue to revitalize it).

And of course that brings us to the present and Oracle. If Java was at a point of inflection prior to their acquisition of Sun, it continues to be there today many months afterwards. Myself and others have argued that this is a good opportunity for Oracle to "do the right thing" and make good on their previous statements in that regard. To continue without such change risks pushing us over that tipping point, with fragmentation, vendor specific options and the end of the world as we know it. (OK, that last point is unlikely to happen!) As I've been saying around Cloud, we really shouldn't be looking at turning back the clock: it won't do anyone, including Oracle, any good.

Now maybe Oracle are considering making some positive announcements at the forthcoming JavaOne. I hope so. Continuing to make Java open and fast moving will benefit everyone, customers and vendors alike. And hopefully Oracle can make the leap that Sun never seemed to be able to make. What's that they say about Nixon and China?

No comments: