|
|
Optimize with a SATA RAID Storage Solution
Range of capacities as low as $1250 per TB. Ideal if you currently rely on servers/disks/JBODs
Page 4 of 6
Third was the release of the official first version -- JavaFX SDK 1.0 -- on December 4. It included an updated JavaFX plugin for NetBeans 6.5, with refinements to JavaFX Script and new/improved APIs. We were also treated to the JavaFX Production Suite, an updated successor to Project Nile.
Many developers are now using JavaFX SDK 1.0 to create exciting applications. I spoke with JavaFX pioneer Jim Weaver (who teaches JavaFX via his book, JavaFX Script: Dynamic Java Scripting for Rich Internet/Client-side Applications and via his JavaFX blog) about the SDK:
Q: What are your favorite JavaFX features?
Jim Weaver: One is the graphical node-centric approach, where any user interface element (button, video, image, layout, and so on) is a node in a 2D scenegraph and can be graphically transformed/animated/etc. This ability is conducive to creating the iPhone-esque/Web 2.0++ rich Internet applications that users are coming to expect. Another favorite feature is its ability to instantiate and use the millions of Java classes that already exist. JavaFX is rich-client Java, which is a huge advantage.
Q: Are there any language features or APIs that you would like to see introduced into a future version of JavaFX Script?
Jim Weaver: Because JavaFX is currently a 1.0 release, of course there are additional features and fleshing out of some current features that I'd like to see! For example, a couple of the packages in the 1.0 release are a little short of classes:
- The
javafx.scene.layoutpackage needs more layout classes in future releases. JavaFX has a graphical node-centric user interface (think more Java 2D and less Swing), so the future layout strategies and classes need to be designed accordingly.- The
javafx.scene.controlpackage contains classes that provide the ability to have CSS-styled and skinnable user interface controls, but there is only one user interface control (TextBox) in that package. For other user interface controls, JavaFX uses Swing under the covers. Dean Iverson wrote an excellent article about these classes in the JavaFXpert blog, in which he builds upon a very helpful article and example by Simon Morris.
There are other features, such as a unit-testing mechanism, an easier-to-use asynchronous threading model, charting/graphing classes, and so on that are being addressed by the JavaFX teams at Sun, and by the JavaFX community. For example, an open source project named JFXtras, led by Stephen Chin, was created to address the gaps in the 1.0 release of JavaFX.
Intrigued by Weaver's comments, and by what I'd heard after the release of JavaFX 1.0, I checked in with Chin about this JavaFX release and his JFXtras project.
Q: What is your favorite part of JavaFX? What improvements to JavaFX Script, JavaFX APIs, or anything else specific to this technology would you like to see in future JavaFX SDK releases?
Stephen Chin: I would have to say that JavaFX has turned me into a bind-a-holic. I use bind for everything from user interface/model synchronization to GUI layout to inversion of control (IoC) patterns. I don't think I can go back to the old way of doing things with event listeners and getter/setter methods anymore.
In terms of improvements, I tend to look at things from a different perspective. Rather than thinking "why can't JavaFX do this for me?", I instead find myself struggling with "there has to be a way I can build XYZ." That said, here is my wish list for Sun:
- JavaFX API source code: Reading through all the user interface bits in the JavaFX Preview Release was not only enlightening (they have some really high-caliber engineers), but also a necessary survival trait to live on the bleeding edge. Since then, I have been entertaining myself with decompiled JavaFX code, but deciphering compiler internals is getting old.
- Embedding JavaFX in Java: For a lot of real-world applications, rewriting everything in JavaFX upfront is just not an option. It would be great to be able to pop JavaFX scenes in legacy Java applications to ease migration and handle some advanced requirements.
- Web 2.0 integration: There are a wealth of services and technologies that would greatly accelerate the adoption of JavaFX. Some examples of this are integration with mapping services, such as Google Maps, and embedding of Flex/Flash applications. The more all-inclusive JavaFX becomes with its integration strategy, the wider the developer community Sun will be able to reach.
Q: Could you describe your JFXtras project for the benefit of those not familiar with it?
Stephen Chin: JFXtras is a project for the JavaFX community written by the JavaFX community. Sun has been doing an excellent job of stewarding the JavaFX technology stack by maintaining a robust set of APIs that they can maintain and support going forward. On the JFXtras project, we are focused on filling in all the little holes and gaps that are needed to build real-world applications in JavaFX today.
If you think of JavaFX Script as the foundation of Java RIA applications, JFXtras provides the tool chest of components and add-ons that developers need to build full-featured products. All of the components in JFXtras are fully documented and tested, and released under a commercial friendly open source license that allows them to be used and extended by the community.
Q: What new features are planned for JFXtras?
Stephen Chin: Since the JavaFX 1.0 release is barely a month old, everything we are doing is new and exciting. The first 0.1 release of JFXtras featured a flexible Grid Layout, Java Dialog support, an Asynchronous Worker class, a declarative unit-testing framework, and lots of small enhancements. Basically, anytime someone on the mailing lists asked a question to the JavaFX team about "how can I do this?" or "is there support for XYZ?", I was busy hacking together a code solution in the background that could be leveraged by the entire JavaFX community.
While the 0.2 release content is not finalized, we are planning to make a big splash with a new vector shape library built on top of jSilhouette. Andres Almiray has joined the JFXtras teams as a full contributor and is in the process of building the JavaFX layer, which will provide everything from traditional Crosses and Stars to Astroid and ReuleauxTriangle shapes.
Some other exciting things we have in the pipeline include:And, of course, we are planning to branch a mobile distribution so that the JFXtras components that are not dependent on Java desktop technologies can be deployed on the upcoming JavaFX mobile platform.
- Graphing and charting support
- JavaFX menus
- Custom components galore!
Note: According to a recent blog post by Jim Weaver, JFXtras 0.2 is now available for download.
Mobile device developers celebrated the arrival of the LWUIT. This successor to Limited Capability Device User Interface (LCDUI ) provides a more sophisticated API that lets you take advantage of Swing-like capabilities (without having to put up with Swing's complexity) for creating the UIs for mobile applications. More specifically, LWUIT targets Java MIDP and Swing developers who want to enhance the UIs of new or existing Java ME applications on MIDP 2.0 devices. It offers a wide range of widgets, theming, animated transitions, and more.
Many users of Sun's NetBeans IDE regard each new release as a significant event. The arrival of NetBeans 6.1 in April, which included many new and noteworthy features, was widely anticipated. Sun later used version 6.1 to host the Preview SDK's JavaFX plugin. Around mid-November, Sun released NetBeans 6.5. Among its new and noteworthy features is the first-ever support for Groovy. You can now easily and more rapidly create client-side applications that are 100% pure Groovy or a mix of Groovy and Java. Sun has also integrated JavaFX 1.0 into NetBeans 6.5.