You probably are already aware that JavaFX Script is no longer to be developed, by Oracle Corporation, beyond JavaFX 1.3.1 release. This is a cost-benefit decision and purely pragmatic business decision. JavaFX is now re-branded to Java API, in order it is JavaFX with Java API. I believe in the long term that Oracle has made a very wise decision. They are looking at the long-tail of computer development, especially in the consumer electronics and portable device space. JavaFX is a client side technology, so they are going aggressively to the TTM (Time-to-market) launch and also answering in one fell swoop two questions that have always been difficult to respond regarding JavaFX. Personal disclosure: yours truly has been aware of Oracle's decision to change JavaFX 2.0 for a few weeks now.
Two Fundamental Questions Answered TodayHow can I integrate JavaFX with existing Swing applications? You have an answer now. JavaFX will be ported to Java. All of the current existing features of the JavaFX runtime and language, version 1.3, the scene graph, the ability to bind between object properties will have a Java API. You will be able to create a FX Stage in Java and add scene-graph components and layout container to it.
How can I use JavaFX in other alternative JVM languages? You also have an answer now. Oracle's long tail solution, and this is evidence of the business heads make decision about the existing JavaFX product, is to reinforce the mother language, which is Java. By providing a Java API, a library and framework, which allows ordinary Java developers to invoke JavaFX Script current features, then therefore these features are immediately available to other alternative JVM languages: JRuby, Clojure, Groovy and, best of all, Scala. I am incredibly pumped up that I could get Scala and FX features working together extremely soon.
New Business ModelIn summary, paraphrasing Oracle's official slides: Java is the next primary language in JavaFX 2.0. Binding and sequences will be available as Java API
Oracle is emphasising the ability to embrace all JVM languages to use FX. Unfortunately the JavaFX Script language wont be updated to FX 2.0 library, however we have asked for it to be handed over open source completely. Existing JavaFX 1.3 programs will continue to run on the next runtime. [However your mileage may vary after the furthers updates on the JavaFX 2.0 product line. Stephen Chin has an important announcement for JFXtras concerning JavaFX Script language].
During Larry Ellison opening keynote on Sunday, I went to the Hilton Hotel to see the live stream of the event. I had to a chance to meet with Brian Goetz whilst the keynote video wall was playing. I spoke to him, he talked about JavaFX as Java API library framework, the reason for this decision was because "lack of resources and we needed a considerable amount of time to build adequate tooling". Brian said that, "Look at the way Microsoft delivers it new products, for example SilverLight, Expression Blend or Visual C#. Every new product that Microsoft produces come with a tool [tooling], that is the Microsoft way and we [Oracle] have to learn how from that [business] model."
The Future of JavaFXOracle intends to evolve JavaFX 2.0 from the current FX 1.X product line. As for JavaFX Script the scenegraph, expression language and event model are mostly feature complete. So they aim to provide Java analogues of the current programming model, maybe they might consider the builder object idiom to cope with JavaFX Script declarative syntax will be missing. The current implementation of JavaFX stylesheets and styling of components using HTML / CSS will be ported to new JavaFX 2.0 for Java API
Oracle realises it need extremely good Java API Designer. They intend to release early, provide beta releases to key partner. They also intend to create build blueprints, samples, and demos in parallel. They clearly want to show JavaFX is intended for the enterprise and at this conference, at least, talked a very good game, of supporting the mainstream developers and engineers get into JavaFX. Make no mistake, this is the change the user desktop community have been looking for, JavaFX 2.0 effectively is the new way to develop modern user interface application.
There is one question that I did not see at the keynote, which absolutely fantastic for demonstrating the PRISM graphics pipeline. What has happened to the designer tool? There were slides on the developer and designer work flow shown at the event, however the code of the authoring tool, which I last saw was still using JavaFX Script. Here is the verbatim slides information, which dictate into Notepad++.
Developer oriented workflow
RAD tool, SVG import, UI CSS
Designer " "
Designer produces media assets
Developer produce modules (e.g. access web services)
Web Integration with JavaFX
Embed HTML in JavaFX
WebBiew node in the scene graph is embedded browser
Allow all Text nodes to have HTML content
Seamless DOM integration
Embed JavaFX in HTML
using traditional plugin technology
Seamless DOM integration
Adapt to use HTML 5, local storage, browser history, etc
Adopt more web standards
Improve CSS and add accessibility for HTML
2D and 3D scene graph
DirectX 9 on Windows XP, Vista
DirectX 11 on Windows 7
OpenGL on Mac, Linux, Embedded
Software (Java2D) when necessary
Hardware accelerated pipeline
Embed in Swing
c.f Java3D, JOGL
Allows Swing applications to add JavaFX scenes, charts, media and controls
High Definition Media
Simple, Rich, Useful
Highly customisable via CSS
Complete working out of the box
Data binding and tooling
Performance Small & Fast
Measure, measure, measure
AudioBoo Related InformationPlease go and visit my specific website http://audioboo.fm/peter_pilgrim
Java Champions and Networking Opportunities
Here are some photographs around the time we were gathered to me up with Apolo Anton Ohno, the celebrated American Olympic speed ice skater. We all had to a chance to see the amazing set up Audio/Visual equipment to goes into making a keynote presentation for JavaOne, Oracle Open World.
This is Peter Pilgrim, who in San Francisco for the JavaOne 2010 conference. Out