Sanity Will Be Restored to Internet Application Development on December 4, 2008
Yes, that's a bold statement, but I've waited 13 years to be able to say it. If you've followed this blog or have heard me speak about JavaFX, you know that I was disappointed with the browser wars in the late 90s that fragmented and slowed down the ubiquity of the Java Virtual Machine. Instead of writing rich-client Java applications, the last 13 years of software development has largely consisted of trying to make browsers do what they were never designed to do. If I may speak plainly, the result has been applications that consist of a big mess of varying flavors of JavaScript, HTML, etc. that leave developers overwhelmed and users underwhelmed.
According Danny Coward of Sun, in less than ten days from now version 1.0 of the JavaFX SDK will be released. JavaFX SDK 1.0 (with the support of Java SE 6 update 10) will make rich-client Java a reality. It is my opinion that this release will be a tipping point in software development that will play a big part in restoring sanity to rich internet application development.
If you are wondering what practical steps you can take to leverage this seismic shift, here are a few that I would suggest:
- If you are currently designing an internet application or remodeling an existing one:
- Think about how the full power of a rich client Java UI could improve the user experience.
- Engage a graphics designer to create comps of this experience, reminding him/her that UI limitations imposed by the browser are history.
- Define an interface to the application/business logic layer. Because JavaFX can instantiate and use Java classes, any interface that is implemented in Java can be used. I often use a simple HTTP-based interface that uses GET parameters to pass arguments, and returns a stream of data articulated in the JSON protocol. This approach will work well with JavaFX on all platforms (e.g. desktop and mobile phones).
- Although Swing components are available in JavaFX, there is a strong trend in JavaFX as well as in RIAs (rich internet applications) toward graphical-node-centric UIs. Users are beginning to expect (and deserve) iPhone-style applications, so think less about Swing and more about Java 2D capabilities.
- Because the JavaFX SDK will be a 1.0 release, there is a good chance that you'll want to create some of your own higher level custom controls. The JFX Custom Nodes category of this blog explains how to do this, and offers a few custom nodes that you might want to use. Also, Stephen Chin and Keith Combs, mentioned in the You Say You Want a (RIA) Revolution? post, have said that they will create custom nodes for use in JavaFX applications to augment what is released in JavaFX SDK 1.0.
- And, of course, join me in downloading the JavaFX SDK 1.0 release from JavaFX.com on December 4.
By the way, my first speaking engagement after this release will be at Jfokus in Stockholm, Sweden. I'm going to do a 3.5 hour university session as well as a conference session. If you're in the area, please do attend!
Regards,
Jim Weaver
JavaFXpert.com






Regarding "typical business application":
What about a CRUD for customers and a list of customers to choose from?
Posted by: Thomas Boerkel | December 15, 2008 at 10:30 AM
"Can you provide any links to JavaFX-based applications for data entry or anything that looks like a typical business application? Animation is nice, but I'm trying to understand how JavaFX competes with Flex and Silverlight for building databound data-entry forms, tables, graphs. Thanks."
Steve,
I couldn't agree with you more, and I think that enterprise apps that have an iPhone look and feel will be a sweet spot for JavaFX. I am in the process of designing an example like this for the blog and an upcoming book. Do you have any ideas that would fit your criteria and be fun for the reader?
Thanks,
Jim Weaver
Posted by: Jim Weaver | December 07, 2008 at 02:04 PM
Can you provide any links to JavaFX-based applications for data entry or anything that looks like a typical business application? Animation is nice, but I'm trying to understand how JavaFX competes with Flex and Silverlight for building databound data-entry forms, tables, graphs. Thanks.
Posted by: Steve Muench | December 07, 2008 at 12:51 PM
Just read the comments from the article I linked to ( http://www.psynixis.com/blog/2008/11/25/more-on-javafx-launch-linux-out-fx-mobile-in/ )and it appears that OS X will be supported. Sorry for the noise...
Posted by: airfoil | November 26, 2008 at 09:08 PM
"AFAIK, JavaFX SDK will be supported on Windows and Mac on launch."
Thanks Jim. I certainly hope this is true. Simon Brocklehurst seems to have information that says otherwise:
http://www.psynixis.com/blog/2008/11/25/more-on-javafx-launch-linux-out-fx-mobile-in/
Posted by: airfoil | November 26, 2008 at 09:06 PM
"what do use for serialising into and out of JSON?"
I use JSON to human readable data back from the server, not serialized Java objects if that what you mean.
Thanks,
Jim Weaver
Posted by: Jim Weaver | November 26, 2008 at 05:23 PM
"what do use for serialising into and out of JSON?"
I've been using JSON to carry text data back from a web service, not to serialize Java objects, if that's what you mean.
Thanks,
Jim Weaver
Posted by: Jim Weaver | November 26, 2008 at 05:20 PM
"I've read that the 1.0 release will be Windows only at launch."
AFAIK, JavaFX SDK will be supported on Windows and Mac on launch.
Thanks,
Jim Weaver
Posted by: Jim Weaver | November 26, 2008 at 05:17 PM
I've read that the 1.0 release will be Windows only at launch. That would be VERY disappointing if that were true. I can kind of understand the reasoning, but the lack of a Mac version just seems weak.
I've been investigating a fair number of options (Flex, Mono, blahblahblah) for my next project and JavaFX seemed very intriguing. Played with the Preview SDK a bit and liked what I saw. It's a nice little language. I'm not a Java guy, but I like what Sun is trying to accomplish with JavaFX.
I'd really like to know what the plans are concerning a Mac version of the SDK as that could be a major factor in deciding which way to go for my next project.
Posted by: airfoil | November 26, 2008 at 05:05 PM
Hi Jim, - what do use for serialising into and out of JSON? I've been looking at XStream but it seems that it might have some issues around unsigned Applets. I'm looking for something small and lightweight to use in unsigned Applets.
Posted by: rperfect | November 25, 2008 at 10:24 PM
I have seen the previews of the 1.0 release and can not wait to get going. Too bad Sun did not make the binding to java objects more easier the way Flex does it. But this does not deter me to start coding cool looking UI's for customers.
Posted by: Marc de Kwant | November 25, 2008 at 03:12 PM
"Please say you are taking Netbeans out of the download for JavaFX."
Hi Jason,
I believe that the JavaFX SDK will be available with or without the NetBeans IDE. The current technical preview is.
Thanks,
Jim Weaver
Posted by: Jim Weaver | November 25, 2008 at 12:26 AM
Please say you are taking Netbeans out of the download for JavaFX. I want freedom of choice on IDE's and I don't want to be stuck in the mediocrity of NetCrap!
Posted by: Jason | November 24, 2008 at 11:26 AM
Except that it won't work on my PowerPC Mac Mini, right? Maybe too old? But Firefox 3, Flash 10, and Mono 2 all work fine.
Posted by: Tom | November 24, 2008 at 11:08 AM
Should be interesting to see what happens. Although I wonder how Sun is going to treat Swing after this. They've already dropped support for SwingX and possibly other things. Even you have mentioned that JavaFX prefers node-based UI's, and we should "think less about Swing", I have the sense Sun is thinking this way to.
Hopefully they don't abandon Swing completely, as there are countless developers who have spent hours and hours working with Swing and committing themselves to it. On the other hand, I am looking forward to a 1.0 release and hopefully some good reading material to follow so I can check out the party ( as right now I am in the Flex camp ).
Thanks!
Posted by: codecraig | November 24, 2008 at 06:08 AM