Sun released its long-awaited JavaFX SDK this week. In this interview with Artima, Sun's Octavian Tanase explains how JavaFX helps designers and developers work closely together, and what types of applications JavaFX is especially suited for.
Frank Sommers: What are the main components of the 1.0 JavaFX release?
Octavian Tanase: The Java FX 1.0 platform includes the runtime, developer tools, tutorials, about fifty examples, some showcase applications, and libraries. JavaFX is a new extension to the Java platform: It complements the platform by enabling people to build expressive, rich Internet applications for what we call “all the screens of your life.”
Frank Sommers: Java has been around on the desktop for a long time. In fact, it was applets that originally got Java’s popularity started. What makes it timely to develop a rich-client Java extension now?
Octavian Tanase: Several market trends make JavaFX very relevant today. From a consumer’s perspective, there is an awareness of, and a desire of, rich-media applications. Much of the content people create needs to be contextual, but is still expected to run not only on the desktop, but on other devices and media through which we connect to the world.
There is also a trend where authors and designers are no longer just developing content, but are, in fact, developing applications. That’s assisted in part by a boom in developer tools that make development much easier. There is also a trend for developer tools to be rather participatory in nature, for developers and designers to cross boundaries on each others’ turfs.
The JavaFX platform has rich media capabilities, with libraries that allow you to embed video and audio, graphics, animation, individual Web services, have transformation that filter rich text, and more. JavaFX also allows you to unify the development and deployment models, where you can easily set a configuration, and deploy your application not only to the desktop, but to the browsers and mobile devices and, in the future, to TVs.
Initially, the target audience is Web developers, Java developers who work with Java already. We foresee that in the future you’ll have more scripters and designers. Likely, by 2011, visual and creative designers will be the primary audience for JavaFX.
Frank Sommers: What sorts of applications do you envision developers building with JavaFX that’s hard to create with prior Java UI tools, such as Swing?
Octavian Tanase: You can build many types of applications with JavaFX. For example, you can build browser-based video playback applications, we bundle a codec [for video], and that enables you to distribute and play back media on one of the target platforms. It enables you to build applications from browser desktops to mobile devices, and you can leverage your Java investment to build your business logic and reach into that with the new programming model that JavaFX is introducing, which is a scenario-based programming model.
Octavian Tanase: You are able to leverage the ubiquity of Java, the secure sandbox, you have the ability to access system and network capabilities via your Java layer. You also get integration with the browser, and can break free of the browser as well: If you deploy a JavaFX application on a system that has Java 6 Update 10, you also have the ability to drag and drop an applet from the browser onto the desktop. That facility also allows you to distribute widgets on someone’s desktop.
JavaFX is the rendering engine for graphics, and allows you to do all sorts of complex capabilities. You can also use JavaFX script to build cloud applications, leveraging Java on the back-end, and the ability of the client to invoke Web services and other services through the network.
Frank Sommers: You said that by 2009, JavaFX’s primary users would be designers. How do you expect designers to learn a programming language and work with that, instead of their design tools?
Octavian Tanase: Designers will primarily interact with JavaFX through their own design tools. We are providing integration between Adobe’s Photoshop and Illustrator and JavaFX. But many designers want to be enabled with some interactivity in their work, so having a language at their disposal that actually allows them to do that is very helpful. We believe that the JavaFX language is targeting the visual paradigms designers are used to working with.
We have a very simple developer-designer workflow that starts with a series of plug-ins for Adobe Illustrator and Photoshop , something we call JavaFX Production Suite, and was previously called Project Nile. That tool enables you to export assets from these tools, and leverage them in NetBeans as well as in the Eclipse IDE. The Eclipse part is also something we didn’t have in the earlier preview release. In order to enable you to deploy, in addition to the browser and the desktop, a mobile emulator is included as well. Perhaps later on, in the Spring, you will see JavaFX on mobile devices as well.
Do you plan to master JavaFX in the near future? To what extent do you think it's important in your day-to-day work with Java?