Hi Jim, you’re the author of several Java books, a community leader at java.net, Java Champion, developer, teacher, mentor and a JavaONE Rockstar speaker. A bit over a year ago you joined Oracle. How is life as an evangelist?
Life as a Java Evangelist (or Java Technology Ambassador) has been great! It combines three of my favorite aspects of work: Developing cutting-edge Java/JavaFX apps, interacting with a very talented and enthusiastic Java/JavaFX development community, and traveling internationally.
A Rockstar needs a guitar. You built your own in JavaFX, and you promised to bring it to JayDay:
Tell us a bit about the APIs and features you used, and what you’ll show us at JayDay.
My presentation is titled “Scratching the Surface with JavaFX” because I’ll demonstrate a variety of JavaFX apps running on a Surface Windows 8 Pro, pointing out capabilities in JavaFX designed to leverage touch capabilities. I’ll also teach some JavaFX 3D concepts as they apply to particular demos such as the ZenGuitar. Some of the APIs and features that I use with ZenGuitar are:
- TouchEvent , which reports when/where a node is touched, and whether the touch is pressed, released, moved, or stationary. A TouchEvent contains one or more TouchPoint instances, depending upon how many fingers are on the touch-enabled device at the time. TouchEvent is used extensively in ZenGuitar as the users fingers are playing the strings with various guitar-playing techniques such as slides, hammer-ons, and pull-offs.
- Scroll gesture and ScrollEvent, which continuously reports on the movement of a user’s finger across the touch-enabled device. This is used in rotating the Instrument Picker.
- JavaFX 3D features such as the Cylinder and Box primitive shapes, and wrapping textures (the wood grain image, and the image of the instruments) on primitive shapes.
- The JFugue5 library by David Koelle 
JavaFX 8 has a very rich API, including multi-touch and 3D features.
JavaFX is almost completely Open Source now. How do you – as a community leader – think individuals can help with shaping the future JavaFX?
One way that the community can help shape the future of JavaFX is to play with new features in JavaFX 8 and report issues in JIRA. Another way to help shape JavaFX is to provide input to the OpenJFX discussion forum . Some members of the community, such as Danno Ferrin, are actively contributing code fixes as well, which is very helpful in speeding up the development of JavaFX. A couple of very important community initiatives that together will help with the goal of running JavaFX apps on iOS and Android are being spearheaded by Daniel Zwolenski ( Maven Plugin for packaging JavaFX apps ) and Niklas Therning ( RoboVM ). Of course, an easy way to stay abreast of the latest innovations by JavaFX developers is to visit the JavaFX Community site  regularly.
Why do you think JavaFX will succeed in bringing Java back to the desktop?
Around the JavaOne 2012 timeframe there seemed to be a tipping point in which Java developers overwhelmingly realized that JavaFX really is the successor to Java Swing, and that it has incredible capabilities for client-Java development. Also, as the Java/JavaFX packaging and deployment story continues to improve, developers will increasingly influence the decision for application clients to be written in Java/JavaFX. There are two reasons for this:
- Developing browser-based clients is much more difficult and labor intensive than writing Java/JavaFX clients.
- Java/JavaFX clients have far more capabilities, and are much faster, than browser-based clients.
The core factor in both of the reasons stated above is that HTML began as a way to share documents and hyper-link text, not as an application execution platform as it has continually been force-fit to be. The JRE, rather than the varied and moving target of browsers, is best suited to be the client-side platform. In addition, because JavaFX has a fully featured browser control (WebView), developers may leverage the strengths of Java/JavaFX and HTML5 in the same application, with a consistent browser control rather than supporting the browser/version du jour. Sorry for the rant, by the way, but just trying to answer your question
Thanks for the interview and see you at JayDay!
My pleasure, and thanks for inviting me to present a session at this very special conference!