With rich Internet applications becoming a key trend in Web and application development, it’s not surprising that more development platform vendors are looking to grab a piece of the rapidly growing space.
In recent years, the RIA space has been dominated by Adobe Systems’ Flash, Flex and AIR platforms, with Microsoft making a strong push with its Silverlight offering.
That said, for many developers, RIAs are nothing new. In fact, those developers can point to a platform that has been providing RIA capabilities for many years now-Sun Microsystems’ Java.
Click here for the eWEEK Labs walk-through of JavaFX.
After all, Java has always made it possible to deliver Web-aware applications for both the browser and the desktop. Java also has all of the GUI features that one would find in any development platform.
The problem has been that Java is pretty much for developers only. While systems such as Flash can be easily learned by talented graphics and Web professionals, Java has always required a developer skill set.
However, with the release of JavaFX 1.0, Sun hopes to change all of this. JavaFX is designed to bring Java fully into the modern world of RIAs and also includes features meant to entice Web and graphics professionals to give it a try.
For images of Microsoft’s Silverlight in action, click here.
Sun’s move in this area makes sense. The advantage of RIAs is that they tend to offer the best of both Web and desktop applications. They can seamlessly use data and content from the Internet, but also have interactive interfaces that tend to be more advanced than those found in browsers. In addition, the most recent RIA platforms can even run on desktops independently of Web browsers.
It’s an area Sun wants to exploit, and right out of the gate, JavaFX has some important advantages. First, it is based on the standard Java run-time, which means that-unlike Microsoft’s Silverlight-it doesn’t require users to download a special dedicated run-time, which gives it a chance to approach the large installed base that Flash has.
It also can take good advantage of the underlying Java code, meaning that it can do more data-intensive work than other RIA platforms. In addition, the strong presence that Java has among those developing mobile applications could give JavaFX a leg up in the all-important mobile development space, an area where other RIA platforms are still struggling to gain ground.
But this 1.0 release has more than its fair share of typical first-version problems and shortcomings. The biggest issue is that despite the promise of mobile deployment, JavaFX does not currently support mobile platforms. The only feature in this area is a beta mobile emulator for developers who want to test mobile JavaFX applications. In addition, despite Java and Sun’s traditional Linux and Unix offerings, the JavaFX development tools run only on Windows and Intel-based Macs.
JavaFX Platform Compares Well to Rivals
The JavaFX platform shows promise of being a very important player in the burgeoning RIA category, and it compares very well with the 1.0 releases of Adobe’s and Microsoft’s RIA platforms. However, both of those platforms are much more mature, and Sun will have to move quickly to keep JavaFX from constantly being behind the other RIA platforms in terms of features and capabilities.
To get started developing with JavaFX, I went to www.javafx.com and downloaded all of the different free tools for building JavaFX applications. These tools include NetBeans IDE 6.5 for JavaFX 1.0, the JavaFX 1.0 Production Suite and, of course, the JavaFX 1.0 SDK.
The JavaFX 1.0 Production Suite basically consists of plug-ins for Adobe’s Photoshop and Illustrator that mainly just let graphics workers save their work for use in JavaFX applications. For classic developer types, Sun also offers a JavaFX plug-in for the Eclipse development environment.
The closest thing to a pure JavaFX tool that Sun provides is the NetBeans IDE 6.5 for JavaFX 1.0. Anyone planning on using the tutorials and samples to become familiar with building JavaFX applications will need to get and install this application.
In general, I found NetBeans IDE 6.5 for JavaFX 1.0 to be a handy tool for learning how to build and edit JavaFX applications. Working hand in hand with the included sample code and the tutorials available at www.javafx.com, I was able to build several simple JavaFX applications.
The JavaFX script code itself is a fairly clean declarative syntax that should be familiar to any developer who has worked in other RIA platforms, who develops AJAX Web code or who works with other advanced Web development systems. The broad set of tools also makes it easier for graphics-oriented developers to work in conjunction with classic Java developers.
JavaFX includes features for using and integrating media such as video and audio into applications, but these capabilities are very basic when compared with the much more robust and flexible media capabilities in the Adobe platforms. Basically, it lets developers add and play media, but those developers can’t work with it in any truly customizable way.
Despite the promise of mobile application development with JavaFX, for now developers are limited to what-if scenarios with the Sun platform. The mobile emulator built into the NetBeans IDE let me build sample JavaFX applications and get a very simple idea of how they would work, but not much more than that. The emulator itself is very basic and doesn’t allow for much device-specific testing. Sun officials have said that mobile support will be released sometime in the spring of 2009.
Right now, JavaFX 1.0 is just getting started, and one could argue that this is really more of a beta release. However, given the potential of the platform, it is worth evaluating for developers interested in additional ways to build and deploy RIAs, especially in areas where the more robust capabilities of Java itself will pay off.
Those interested in downloading the tools and finding tutorials and information on JavaFX should go to www.javafx.com.
Chief Technology Analyst Jim Rapoza can be reached at firstname.lastname@example.org.