InfoWorld review: JavaFX fights Flash
Sun's JavaFX is a crisp, simple way to leverage existing Java code, Java 2D, and Java Web Start technology for more Web-savvy interfacesFollow @peterwayner
It's a good thing we got rid of those curly brackets from Java's if-then syntax because then we could use them for something else in the middle of a string.
The artists out there don't need to confront such fun at the beginning because there's plenty that can be done with the simpler syntax. They don't need to wonder about such wormholes in the string definition until later.
Param Singh, the senior marketing manager for JavaFX, told me that Sun expects the early adopters will be largely Java developers and some very savvy designers.
“The tools are clearly in an IDE so you need to be familiar with an IDE,” Singh said, before explaining that visual tools for designers were coming later, along with tools for developing JavaFX applications for mobile handsets.
I’m wondering whether these tools will also be free or at least much more inexpensive than Adobe’s tools. Programmers have reaped the rewards of the open source revolution and there’s a wide array of free tools. JavaFX could make inroads with young developers if the designer tools are significantly cheaper than Adobe’s.
I don't know if this is enough to capture much market share from Flash, AIR, or any of the tools. Programmers love their ruts. But it will empower Java programmers to take on new tasks, and this may let the language colonize more of the screen. Java programmers with a serious pile of code will be able to distribute it with greater ease.
The old guard
This is why I think the most common users of JavaFX will probably be scientific and financial programmers who need to put a prettier face on their sophisticated systems. Any Java library can be integrated into a JavaFX application, and this makes it possible to put a very smart, fat, computation-rich back end behind the tweening graphics. I can't imagine writing such programs in something like Flash's ActionScript. The tools for developers aren't as ready to handle big projects. It's nice to be able to call upon the multithreaded world with profiling tools.
Perhaps the real leverage will come as the hard-core Java folks push for better deployment options. One programmer, for instance, showed how to integrate JavaFX code with the drag-and-drop model for the desktop. This code will deploy directly through Java's Web Start, making it possible for someone with the latest version of Java to just click on an application that will accept files from the local computer. It's a pretty nice deployment model for a corporation, a free open source project, or anyone that's not planning on charging directly. JavaFX could end up being a good replacement for Swing by giving Java developers a chance to build up their UI out of HTML-like components instead of the Swing versions. JavaFX is not just a way to make a Web page dance; it has all of the right mechanisms for deploying desktop applications.
I think many designers will also enjoy building upon the hard work that’s gone into Java over the years. The JVM is very fast these days, thanks to the demands of the server-side installations that can’t hide behind a cursor that turns into an hourglass. The libraries are numerous and generally well-vetted for security holes. Plus, the latest JVM is installed on 80 million desktops already. These are now capable of handling JavaFX.
The rest of the artistic world may be a harder sell. Adobe makes nice tools for using Flash and AIR, but it charges a pretty penny for them. It may be possible for JavaFX to attract some of the younger, poorer designers who don't have the money to buy into the Adobe stack.
Handicapping the overall success of JavaFX is a bit more difficult. Will it displace Flash, Silverlight, or the others? Not immediately, especially when Microsoft is willing to work so hard on such big-budget extravaganzas like the 2008 Olympics. But I think it has enough meat on the bones to earn some real fans and win a solid niche wherever there's Java code that needs a prettier face and better distribution method. It gives Java another chance to gain some ground on the desktop.