Like many people, I was very concerned about Java's fate when Oracle acquired Sun two years ago. Even though the Redwood Shores-based giant had previously invested heavily in Java via its purchase of BEA Systems the leading Java server vendor at the time the future direction of the language under its new masters was far from clear. Scenarios ranged from Oracle turning the language and JDK into a proprietary thing that hewed exclusively to corporate dictates, to benign scenarios in which the company would leave things more or less as they were with a Sun-equivalent investment in advancing the platform.
Either way, things did not start out well. James Gosling, the putative father of Java, left the company rather vocally, assailing its treatment of Java and open-source communities. His concerns were realized almost immediately by Oracle's ham-fisted handling of the Open Solaris and Hudson projects. (The former died after numerous attempts to get direction from Oracle; the latter broke off and successfully relaunched the continuous integration server under the Jenkins handle.) At the same time, Oracle sued Google for its use of Java in Android.
With all that happening in the foreground, the 2010 edition of the JavaOne tradeshow was an otherworldly affair. Google had just pulled out, and so long-planned sessions were suddenly cancelled. The vendor space was small and confused and jammed into an unfamiliar locale. The whole thing had the feeling of a movie set in which the environs look normal, but you know your eyes are being tricked into believing that the facades are the real thing, rather than trompe l'oeil replicas. Many vendors and attendees lamented that this would surely be the last of the JavaOne conferences a great tradeshow lain low by an uncomprehending new master.
In 2011, Oracle did not fare much better. The welcome release of Java 7 was marred by the revelation that it included serious defects that the company knew about.
Like many people in the community, I decried this cavalier handling of important issues in a company that was repositioning itself as an enterprise platform vendor. But from that point on, it seems Oracle has begun to "get it," and is moving in the right direction. The Java 7 release contained a crucial innovation
invokedynamic which enhanced the friendliness of the JVM to other languages, thereby broadening its appeal and ensuring its longevity.
The company also released a completely redone version of JavaFX, the rich UI portion of Java. At the time Sun was acquired, Oracle CEO Larry Ellison specifically singled out JavaFX as a technology the company would commit to. This seemed like an odd choice, but Oracle has stuck with it, including completely rewriting the product and turning it into a useful and usable UI development tool. The company expects to get it running on iOS, at which point, JavaFX will run on all major desktop and most mobile platforms. This will make it what Qt and Adobe Flash once were widely ported, highly programmable UI development products. JavaFX aficionado and Dr. Dobb's blogger, Eric Bruno, will keep us all up-to-date as JavaFX continues advancing.
As for tools, Oracle has certainly stepped up investment in the open-source NetBeans IDE. Since the 7.0 release, each version has added new capabilities while maintaining the product's historical light and usable feel. The upcoming v. 7.3 looks to continue the trend. This, too, is a bit surprising because Oracle already has a free (but not open source) IDE, JDeveloper, that it promotes to its customers, as well as an Eclipse offering, which it inherited via the BEA acquisition. In a three-way competition, you'd expect NetBeans might have been left to the community, but such has not been the case.
As to Java itself, at the recent JavaOne conference, which had more on-site buzz than any in the last four or five years, the company made clear its upcoming plans, which continue to push Java onto new platforms, notably ARM and iOS. The language itself is evolving as well with Project Lambda (closures and enhanced type inference) in JDK 8, and modularity promised in JDK 9. And Java EE, the behemoth once known as J2EE, is on a slimming regimen that, I'm told, should significantly reduce its footprint and complexity.
Taken together, I'm inclined to agree with James Gosling's revised opinion of Oracle's stewardship, that it's been good for Java. So revised, in fact, that Gosling even appeared on stage at a JavaOne keynote this year.
However, the record is mixed in other areas. The biggest growth in Java undoubtedly comes from Google's adoption of the language for Android. So the lawsuit that Oracle filed (and lost) against the search giant is a howitzer shell fired at one of Java's biggest users and most important evangelists. Given the personalities of the two corporations, I expect this is a stand-off that will endure for a long time. Java will have to grow despite it, rather than through it.
Oracle's ambiguous relationship with the JCP and the OSS communities remain two other weak points. Except for its work with NetBeans, the OpenJDK, and the GlassFish server projects, Oracle's open-source presence is low profile, in direct contrast to Google, which is a continuous and enthusiastic contributor to OSS. And the JCP remains in an undefined state, accused by some of being a rubber-stamp to Oracle plans. Recent changes have brought a greater transparency to the deliberations of its experts, but the role of the JCP itself is unclear, as is Oracle's larger relationship with the community of users.
Neither issue, I expect, will be brought to resolution soon. Nonetheless, in the two years since Oracle acquired Java and alienated a lot of the community, it has taken many steps in the right direction. While I doubt it will ever know the love that both Sun and IBM enjoyed from the developer community, if it continues to develop the language, the platform, and supporting tools well, it will be successful enough and Java and the JDK will continue to occupy a preferred place in the development firmament.