Review of JavaFX Script at the AAJUG

Review of meeting from June 5 (and a celebrity sighting)

On Tuesday, Rags Srinivas, CTO of Technology Evangelism at Sun Microsystems looking at new technology directions and trends, presented at the Ann Arbor Java User Group.  It was a great meeting.  He went into detail on JavaFX Script, touched on new features of Java 6/7, and on the Consumer JRE.  I'll try to summarize all here.

JavaFX Script is hot right now.  I was thrilled that Sun sent Rags out to present on it.  With the announcement at JavaOne, and then 2 separate podcasts including JavaFX Script discussions by the JavaPosse (episode #121 talks about the announcement, episode #124: JavaFX Mobile interview), and after having read numerous blogs (like this one) and threads on the Java Posse google group, on the topic in the past few weeks, I was definitely interested in Rags' talk.

JavaFX Script, for those who haven't been following it as fervently as I, was previously called F3.  Some smart Sun lawyers and marketing people got their hands on that name (F3 = key on the keyboard, eh?) and changed it to something more searchable.  Whew!  Good idea.  Anyhow F3 is for "Form Follows Function".  The "function" comes from Java itself, but it's often hard to make into a useable form. Having done lots of Swing programming, I agree that it would be nice to have some "help" in the form of JavaFX Script.

Objectives:

Improve Developer Productivity:

  • Streamline edit/compile/debug cycle
  • Provide instant feedback
  • More expressive/more flexible

Allow developers to use whatever applets, applications, etc., they are already using. 

Avoid the complexity of the layouts and layout managers

So, JavaFX script is a scripting language for Java that is object-oriented, statically typed, and uses a declarative syntax.  It provides automatic data binding (important for dynamic languages) and provides an extensive widget library for building applications.

Furthermore, you can use JavaFX Mobile to provide applications for mobile devices.  Rags didn't talk about that in detail, but the Java Posse interview does.

JavaFX Pad is a simple editory (borne out of the F3Pad) that allows you to do editing but also provides a WYSIWYG view.

Everyone agrees that designer tools (for the non-programmers) are absolutely critical in order to compete with Flash, or Silverlight.  One such tool has already emerged (yes, the JavaOne announcement was just a month ago and already the ReportMill team has provided a nice tool for generating JavaFX script).  Very cool.

JavaFX will be open sourced, but it hasn't been yet.  Sounds like the Java 2D encumberances are a limiting factor on this as well, and Rags also suggested that the cell phone software vendors may have some input regarding security, etc. for JavaFX mobile.

Ah, that was the majority of his talk.  He touched on some new language features of Java 6 and looked forward to Java 7.  He also described the goals of the newly announced plans for the Consumer JRE, to address some of the shortcomings in the JRE (modular download, improved speed for load, improved installer, modern look and feel).  The consensus is, as we hard at the Java Posse Roundup, that if we have to wait for Java SE 7 for these changes, that's too late.  Sun agrees.  This is going to come out for Java 6, hopefully by the end of this year, beginning of next.

Oh, and that celebrity sighting I mentioned?  Charles Lowell of the Drunk and Retired Podcast and I had a fun conversation about NetBeans 6 and JRuby support. I knew he was in attendance at James Ward's Flex talk at the AAJUG in April (I saw mention of that on the D&R's website), but I didn't know for certain that he was local, and I had no idea who he was.  I'm pleased to have met him. 

Now, wouldn't it be fun to look at JavaFX Script and Flex head-to-head, maybe toss in a little Silverlight?  Rags, James, Bruce, Scott?  Hmm, I can see a FUN Open Spaces event or Jam on the horizon! 

JavaFX Script
Obligatory Wikipedia entry
JavaFX project page
Your source for JFX stuff
Report Mill's JFX Builder

Concept of a Jam