Home >
Since JavaFX was announced I've been excited about the prospect of Java re-asserting itself on the client. You may not know this but Java is the oldest of the RIA platforms. Sadly, for a number or reasons, Java did not succeed as a RIA and it wasn't until 10 years later that people became interested in RIAs again (in the form of Ajax).
Although Java, applets have remained a RIA choice for 12 years Java use as a client-side technology has been eclipsed in the RIA market by Ajax and Flex. JavaFX was announced over a year, but it doesn't seem to have taken hold. Never mind the fact that its in perpetual pre-release, developers I've spoken to in the Java community are simply not interested. It looks to me as if Java shops are opting for either Ajax or Flex and have no intention of adopting JavaFX in the future. This saddens me only because I think JavaFX could be everything we wanted Java applets to be 12 years ago.
There is an interesting case study by Sharendipitious in which they are documenting their migration from Java to Flex. So far its three posts the first of which explains why they decided to abandon Java in favor of Flex despite the fact that they prefer the Java platform. Blog entires 2 and 3 in the series provide more insights into the difference between Java and ActionScript 3 as well as a pointer to a tool that will help you convert your Java applet code to Flex. It's an interesting read.
I'm wondering what InsideRIA readers think about JavaFX and its adoption in the RIA market - I only have anecdotal information no solid data so what I see may not be what others are seeing.






















flex ftw!! i've been always pissed of by waiting for java applets to load. in addition they seem to take alot of RAM for no reason.
java does a good job at the back end though.
I'm a back-end java developer that's a fan of Flex on the front-end. Reasons for this are simple, in my opinion.
Flex is a mature technology that's been in production much longer than either Silverlight or JavaFX.
The flash player is installed on practically every machine on the planet and it's fairly efficient. Also almost all clients are kept updated with the latest and greatest without much effort on their part.
Flex (2.0) was first to market and that's what I learned. Until another platform can provide a compelling reason to migrate, I have everything I'm looking for at the moment.
G
They had ground to begin with? :)
In addition to what has been said above, I don't see JavaFX succeeded because they aren't communicating with the developer/designer community on a couple of fronts.
== Up-To-Date information ==
"What's new and changing in the language, runtime, and/or tooling?"
I can't seem to find a good JavaFX site for this purpose. I followed James Weaver's learnjavafx site and Joshua Marinacci's blog for awhile, but the posts are infrequent... I could look at fisheye code repository changelog... but that just tells me how the implementation is changing.
Flex on the other hand?...
There are an ARMY of Flash/Flex bloggers: James Ward, Kevin Hoyt, Mike Chambers, Matt Chotin, Ryan Stewart, Lee Brimelow, Ted Patrick, Chet Haase and the list goes on.
opensource.adobe.com gives me a straight line of communication for seeing what's being planned (Gumbo Specs), commenting on what is being planned, finding/opening a bug, and tracking builds.
== Examples ==
"I want to know X is possible through a working example"
"I'd like to build off of that example."
I don't see alot of JavaFX examples and the examples I do see dress up Mr. Potatohead, plays hockey, and races cars. How's is that going to help me roll out something useful for work.
And Flex?
blog.flexexamples.com, tv.adobe.com, gotoandlearn.com, and all the blogs I stated before.
... blog.flexexamples.com kicks out an example or 2 everyday.
If Sun would work on better PR with developers/designers then maybe...
Presumably that they had a better product.
But if they did... why would Chet Haase and Hans Mueller leave for Adobe right before JavaFX was going to roll out... oops :
Financial companies seem to be one of the few places on the web that still use Java applets a lot and from what I've seen a number of them are more than ready to move away from Java because of all the customer support problems. It's not just making sure that their customers have the Java VM installed but all sorts of problems having the correct version installed.
I don't know what the plan is to improve this issue with JavaFX, but I think it's going to be an uphill battle to convince a number companies who want to phase out Java on the client because of these problems.
Now that's from a client perspective, from a developers' perspective, even those interested seem to have an attitude to wait and see the technology prove itself. As no one wants to invest a lot of time into a technology that does not make it in the market place and many seem unsure of JavaFX's future.
I use Flex and used to build UIs in Java and AJAX. Flex has the most mature component library out there and Adobe is paying a lot of attention to the designer - developer workflow, which makes a huge difference. Sometimes the performance of Flex / Flash makes me cringe, and I feel that the technology under the hood isn't as mature as something like java. But how long will it take for the JavaFx component library to catch up? Can it ever catch up? Flex is not standing still. Neither is siverlight.
So unless you need something Java provides that Flash cannot, why would you use JavaFx? What possible reason is there to learn this when the Flash player is already installed everywhere and will stay that way thanks to youtube?
It is also interesting that Flex and Siverlight use an XML based UI layout language and JavaFx uses something more code like. Seems like a weird move on Sun's part.
Flex hits all the sweet spot items almost perfectly for client-tier GUI-based computing. While on the verge of being 4.0 release, it is mature, stable, and has an immense presence in consumer Internet space.
With the advent of Flex as an addition form-centric capability to the Flash player, it is now suitable for general GUI interface design, and certainly enterprise application development (where zero install is a must-have capability). Most people already have the Flash player. It is very fast and easy to install if they don't. It is available on the OS platforms that matter (and recently is improving the story for smart phones).
For Java developers, ActionScript3 is pretty comparable and supports static compilation of types ala Java. So it's quick and easy to learn. BlazeDS provides object marshalling between Flex and Java server-side. Flex apps can be built in the same IDE (Eclipse) that is popular for Java enterprise. Its .swf, .swc, and other resource files can be placed into java .jar files for deployment alongside middle-tier bean code. This makes for a single deployment unit for a vertical-stack web application. The bottom-line is Flex and Java mesh very well together.
Adobe Flex and AIR is now the unparalleled best deployment platform for client-tier applications and Java remains the best server-side enterprise development platform. They marry together very well.
JavaFX has significant disadvantages by comparison despite being Java entirel in the vertical stack.