JavaFX Script

This JavaOne 2007 session was originally titled Form Follows Function (F3), after the code name for what was marketed as JavaFX Script. JavaFX Script (JFX) has been one of the most hyped up technology announcements here at JavaOne. According to the marketing literature from Sun, JavaFX Script is a “highly productive scripting language that enables content developer to leverage blah blah …” What Sun PR means to say is that JavaFX Script is Sun’s too little and perhaps too late response to Microsoft Silverlight and Adobe Flex/Flash.

In a eat your own dog food sort of demo, Chris Oliver presented his presentation slides on a PDF viewer application he created using JFX. The PDF viewer demo had great zoom support and even thumbnails of the PDF documents with reflection. JavaFX Script have me at hello, world.

As Chris described, he started working on what eventually became JFX because he wanted to provide an answer to the following set of questions, Why does it take so long to write GUI applications? How do you avoid the “Ugly Java GUI” stereotype? Why is it easier to write a web application than a Swing application? Why don’t Swing programmers use fancy images, graphics, effects, and animations like the Web 2.0 designers?

JavaFX Script is a new programming language that runs on the Java VM. JFX is an object-oriented language with declarative syntax, data binding, and statically type with type inference. JFX allows for custom painting, transformation, grouping, transparencies, effects, clippings and animation. JFX allows you to read and write images. It seemed to me that SVG can do just about the same thing that JavaFX Script intends to do. JavaFX also reminded me of what the Processing project.

As mentioned SVG, Silverlight, OpenLazlo, and Flex provide similar functionality and effects but they introduce a mix of XML-based markup and some degenerate scripting language. SVG is declarative like JFX but Chris doesn’t like the JavaScript/DOM programming model. Chris stated that he rather use a real programming language and a programming model that software engineers understand. The folks behind JFX intend to provide full language support such as refactoring, code completion, code search, code high lighting in NetBeans. In addition to static type efficient compilation JFX provides compile time error and warnings.

Technorati Tags: , , , , , ,