Tuesday, September 21, 2010

JavaOne 2010 Opening Keynote

I know that I'm completely biased, but I thought that tonight's JavaOne Opening Keynote was significantly more interesting than last night's Oracle OpenWorld Opening Keynote.  The first real day of JavaOne 2010 was great and this was a nice keynote to cap it off.


Oracle Executive Vice President of Product Development Thomas Kurian had several guests cover demonstrations displaying Oracle's vision for Java in the enterprise, on mobile devices, on the web browser, and on the desktop.  Sun always seemed to announce grandiose visions at JavaOne and some (like Enterprise Java) seemed to work out better than others.  I'm hoping that Oracle is able to deliver on even a significant percentage of their announced plans.  If they are able to do so, Java will have a very bright future.

The JRockit Flight Recorder demonstration showcased JMX (MBean) as part of its analysis capability. It was stated (and I agree) that the intermittent problems make for an even more useful use case for this tool than static problems. The tool will also be available for HotSpot as part of the effort to converge the two Oracle JVMs. It is available for preview in the Demo booth.

Kurian stated that Oracle is committed to delivering Java 7 in 2011 and Java 8 in 2012. He also said that Oracle is committed to delivering the best JVM and to delivering OpenJDK.  This essentially reiterates what we heard from Mark Reinhold in this morning's JDK 7 and Java SE 7 presentation.

Related to his slide on "Design Objectives," Kurian said it is time for Java developers to have the toolkit to build the best user interfaces for various platforms. He described the envisioned Java programming model that combines the "power of Java" with the "ease of JavaFX." This programming model will include native interoperability between Java, JavaScript, and HTML5. The plan, as shown in the "Java: Client Architecture" slide, is to provide a single programming model. Oracle envisions common programming model across browser and native applications.

The "ease of JavaFX" is planned to be provided via JavaFX controls and APIs. Kurian said that these controls will be available in open source. The runtime components "do the heavy lifting." Anyone familiar with Java should be able to use this model. There will be Java programmatic access to HTML 5 tags from within Java code. The plan is to also make it possible to manipulate Java Scenegraph from JavaScript.

The "high-performance graphics engine" called Prism (and used with JavaFX and discussed at last year's JavaOne) will be made available. It renders 2D objects today, but will eventually support 3D objects. It will support new hardware Accelerated 2D and 3D Graphics Pipeline. This will be made available in open source via NetBeans.

It was stated that the demonstrations shown this evening will be able to be written in standard Java with standard Java APIs without needing to learn new scripting language (I read "without JavaFX Script necessarily" here and others call it dead already), but will be available for invocation from any language on the JVM (Groovy, JRuby, Scala).  My read of this is that one of the biggest complaints about JavaFX might be addressed now: true integration between Java (specifically Swing) with JavaFX APIs. All demonstrations shown tonight used vector graphics and media and without use of images.  They were impressive and my only complaint was that they used the movie Scott Pilgrim versus the World; I'd rather have seen Ironman 2 clips.


The graphics/media demonstration also included describing how consecutive application of simple effects makes impressive shapes and colors. The demonstrated steaming coffee cup based on Bessian curves was impressive as well. The air hockey game does not use a static image and it was commented that SceneGraph makes it easy to attach nodes to native multitouch events via JNI.

The 3D and Media demonstrations included 160 individual screens on a Media Wall. Accessing metadata for each screen was also demonstrated. HotSpot JVM and Accelerated Hardware Pipeline make this performant. The Java client team plans to deliver this "in feature and function" next year. Tooling will be delivered via NetBeans (which has seen a twenty percent increase in NetBeans in last six months) in two releases in 2011. All JavaFX UI controls and components will be available to developers in open source this coming year. The detailed feature roadmap is available at netbeans.org/community/releases/roadmap.html. Kurian stated (roughly paraphased): We want the 9 million Java developers worldwide to never again have to choose a non-Java framework to deliver impressive user interfaces.

Oracle plans to make application servers more modular through dependency injection. The newly provided lightweight web profile for web applications allows developers to not need to use EJBs. POJO programming is now much easier for Java developers. Will focus even on EE level with scripting interaction.  The Enterprise Java roadmap is available at glassfish.dev.java.net/roadmap and there are two planned releases of GlassFish for 2011.

After talking about deskptop and enterprise, Kurian discussed plans for Java Mobile.  He stated that it is Oracle's goal to deliver Java applications to ALL mobile devices going forward. Plan to modernize Java to work better on mobile devices and to integrate web technologies in mobile devices. Their goal includes delivery of new device APIs to access features of hardware and operating system.

The demonstration for the mobile devices/web was Star Wars the Old Republic (Star Wars + Bioware). Bioware uses GlassFish and Oracle Coherence to support online gaming. Java is used in many other aspects of their online games as well. They combine social networking features with role playing games features. All of the revenue-generating aspects are Java-supported.

I'm again roughly paraphrasing, but Kurian stated something along these lines: We're really excited about Java and we're committed to giving you the world's best programming language, the world's most popular deployment platform, and the ability to deploy amazing clients in Java regardless of target platform.  He ended his keynote with this quote, "The future of Java is not about Oracle or any one company. It is about you, the Java developers who create great applications with it."

Overall, I think this keynote provided hope for Java developers regarding the future of Java.  The real question is to what degree Oracle can deliver on these grand visions.  However, it is refreshing to see great plans for all aspects of the Java world and it definitely feels that Oracle has made commitments tonight to Java and to the Java community.

I enjoyed the entire presentation, felt like I got a large percentage of what I wanted from it, and particularly enjoyed the greater decisiveness and clarity on a vision for the future of Java client technologies.  In my opinion, Oracle's plans for client side Java (or at least my interpretation of those plans) are right on the money.   I never thought it a good idea to force Java developers to learn an entirely new language when Java and other JVM languages were already available.  By providing standard Java APIs, Java developers and developers who prefer alternate JVM languages (and many of us fall in both categories) can apply the APIs more easily.  The common ground and common approach has to benefit adoption.

I really enjoyed my first day of JavaOne 2010 alternating back and forth between the Hilton and Parc 55 (back and forth for all five sessions) and then attending a keynote that was a pleasant surprise.  I had worried about the timing getting between JavaOne hotels, but it has turned out that I have enjoyed the opportunity to go outside to go between sessions.  Today has been a great first day of JavaOne 2010.

No comments: