Hi all. I’m currently sitting in a hotel room in Tokyo, but I’ve been waiting to publish this interview until Jim and Steve made their announcements this week. Now that the news of their employment at Oracle is out, here is the interview. Enjoy! 🙂
Hi Jim and Stephen, would you please introduce yourselves?
Jim: Hi Jonathan, I’m Jim Weaver, long-time application developer with a particular interest in rich-client Java/JavaFX development.
Steve: I am also a JavaFX client hacker and enjoy working on several different open-source projects related to this.
You’ve both been involved with JavaFX for a long time. What drew you into JavaFX in the first place, and what keeps you going with it?
Jim: Rich-client development should be simple and elegant, but the post-1994 trend has been to force-fit the browser into being an application execution environment. Consequently, many rich-client applications are comprised of Rube Goldberg machine-esque combinations of HTML, JavaScript, XML and other technologies. JavaFX is an elegant and powerful technology for creating rich-client applications that run on the Java Virtual Machine (JVM).
Both of you have been involved in writing the recently released JavaFX 2 book. Would you mind telling the readers about it?
Jim: Weiqi Gao, Stephen Chin, Dean Iverson, Johan Vos and I wanted to create a definitive resource for JavaFX developers that would help them get up to speed quickly on JavaFX. We believe that our 600-page tutorial-style Pro JavaFX 2 book does just that.
Steve: That may seem like a lot of authors for one book, but it gives us a unique advantage. We were able to not only cover a lot of topics, but also reach a variety of different skill levels. Whether you are just getting started in JavaFX, or are a long-time JavaFX hacker and want to know expert details, we have all the bases covered.
What do you think of JavaFX 2 now that it is Java-based?
Jim: Implementing JavaFX as a Java API removes the barriers to adoption associated with the JavaFX Script language. Those barriers were: learning a new language, and using new development tools. The JavaFX Script language is still alive, by the way, as the Visage project founded by Stephen Chin.
Steve: I was skeptical of the move to pure Java APIs… not because I thought it was a bad idea, but rather the timing of the change and what it would do to the platform. However, after a year of development on the new APIs, Oracle released JavaFX 2.0 as promised and it is better than ever.
Stephen, I presented with you about JavaFX on alternate languages a few years ago at JavaOne 2010 I believe, but since then you’ve taken that talk around the world a few times! What is the current state of JavaFX on alternative languages?
Steve: The new Java APIs unite the JavaFX development community, because it is now possible to write JavaFX code directly from Java or any other JVM language. There is a very active Groovy API library for JavaFX called GroovyFX that is being developed by Jim Clarke, Dean Iverson, Dierk Konig, and others. Also, there is a lot of momentum behind ScalaFX, which is a Scala library for writing JavaFX applications. As Jim mentioned, I am leading up the future JavaFX Script development with the Visage project, which is yet another JVM language you can choose to develop your applications with.
Prior to developing with JavaFX, did you use Swing? What are your thoughts on JavaFX compared to Swing in terms of performance, functionality/features, and ease of development?
Jim: I used Swing prior to JavaFX, and it (coupled with Java 2D) was the best way to create rich-client applications before JavaFX became available. The scenegraph-based and hardware-accelerated capabilities of JavaFX enable developers to easily create performant rich-client application that have UI characteristics that today’s users have come to expect.
Steve: Yeah, Swing… and before that AWT… and some custom toolkit work in the middle. Towards the end of my Swing dev days I was impressed by zooming user interface toolkits, such as Piccolo2D, because they let you manipulate a scene graph of UI objects to create interactive user interfaces. Fast forward to JavaFX, and one of the primary advantages it has over prior graphics toolkits is the scenegraph-based development paradigm that Jim mentioned. In fact, the early prototypes of JavaFX were built on top of Piccolo (and later replaced with a highly-performance scene graph the JavaFX team built from the ground up). As the JavaFX platform has matured, having business focused controls, rich capabilities for audio and video, and a wide set of authoring capabilities from direct code APIs to declarative markup to UI builder tools, such as the newly released JavaFX Scene Builder set it apart.
You’re both members of various open source projects. What have you been doing in the community for JavaFX?
Jim: I have been involved in various JavaFX open source projects, including the JFXtras project. I’ve written many articles on JavaFX for Oracle Technology Network and Java Magazine to help developers learn to use JavaFX. It has also been my pleasure to highlight the work of other JavaFX developers in my blog and on Twitter.
Steve: I have also been helping out with various open-source projects including JFXtras, ScalaX, and Visage. In addition, Keith Combs and I run the Silicon Valley JavaFX User Group, which is one of the only user groups in the world that streams all of their events live. As a result, you can join and participate in our sessions even if you are halfway around the world!
You’ve both probably got favourite areas of JavaFX? What are they?
Jim: My favorite areas of JavaFX are its powerful scenegraph, the ability to dynamically bind properties, and the ease of expressing the UI via builder classes.
Steve: I would have to say I am a big fan of the new controls (and not just because you are in the controls team, Jonathan!) For any real business applications, the breadth and quality of the controls makes a big difference in the functionalty that you are able to provide. In particular, one of the big improvements over Swing is the ability to style controls directly via CSS, which provides a tremendous amount of customization!
What would you like to see improved in future releases of JavaFX?
Jim: I’d like to see classes in the API for communicating with RESTful services and parsing JSON/XML. I’d like to see 3D primitives, which will make 3D UI application development easier. I’d also like to see JavaFX running on the mobile devices that I carry around.
Steve: Mobile, mobile, and mobile. 🙂
Jim and Stephen – I’ve been ignoring the elephant in the room – congratulations on your recent announcement about joining Oracle. What exactly will you be doing?
Jim: Thanks! Joining Oracle as a Java Evangelist is a natural progression of my passion for helping rich-client Java and JavaFX become preferred technologies for new application development. It will enable me to devote full attention to moving Java/JavaFX forward, teaming up with Engineers and Evangelists at Oracle. As a Java Evangelist, my interaction with the Java/JavaFX community through speaking and writing will greatly increase.
Steve: I will be continuing the community involvement, open-source hacking, and JavaFX evangelism activities that I am known for, and looking for ways to innovate on the platform and make it useful and accessible to all Java developers.
Thanks for taking the time to chat with me. Do you have anything else you’d like to say to the readers?
Jim: Thanks Jonathan. I’d like to express to the readers that you, Jonathan Giles, have been a champion and disruptive force in moving JavaFX forward. I’m very pleased and proud that I’ll be in a position to work directly with JavaFX engineers like you, Richard Bair, and Jasper Potts, who share my passion for restoring sanity to rich-client application development.
Steve: I would just like to mention to the readers that I am *not the least bit* jealous that our interviewer, Jonathan Giles, and his peers Rich and Jasper are having a vacation in Japan doing some amazing outreach in Japan right now. I heard that Rich’s JavaFX technical keynote was amazing, as was the huge announcement of the JavaFX Scene Builder developer preview that Jasper showed off!