Skip to main content

Too Much Time On My Hands

Posted by editor on February 24, 2009 at 8:29 AM PST

How much catch-up does JavaFX have to do?

O'Reilly Inside RIA blogger Yakov Fain wonders if JavaFX can replace Flex for him, and tries it out in Pet Store with JavaFX 1.0. Part 1.

We decided to contribute to Java community and invest some time and resources to figure out what JavaFX 1.0 is capable of. Most of the Java developers know what Pet Store application is. For many years this reference implementation has been used by Sun Microsystems as a part of Java BluePrints program for Java EE platform. [...] We re-used the existing back end of the Pet store, but performed a little facelift by replacing the UI developed with AJAX/JSP/JavaServer Faces with JavaFX 1.0.

So what's the verdict? Mixed. Here's the good news.

For example, ActionScript doesn’t support multi-threading. This is not an issue when it comes to communication with remote sites - all remote calls are asynchronous and use callbacks for server-to-client data flows. But if you’d need to write or use an existing Java library that performs some CPU-intensive calculations on the client, I’m sure Java will beat ActionScript. The syntax of both languages is pretty similar though (see
JavaFX supports eval() function that allows to compile and execute a piece of code on the fly. Flex doesn’t support this useful feature.

Two-way binding already exists in JavaFX but in Flex will get it only in version 4.

And here's the bad:

The biggest issue is that JavaFX 1.0 doesn’t include any UI component library that a Web developer needs. I’m not talking about data grids or tree views. Even such simple things as a hyperlink component aren’t there. I can’t think of any other reason but a trivial lack of time and limited human resources allocated by Sun for development of this new UI set.

Which leads to the ugly:

I understand that this is not a good time to ask for some serious cash injections, but if executives of Sun Microsystems won’t find a way to double the size of the team working on the future version of JavaFX, entire Adobe Flex team can safely go on sabbatical for a year. If the money is tight, the sooner JavaFX will go open source, the better.

Yakov leaves his review concluding that JavaFX is "promising"... but wouldn't commit to it for a project that has to launch this year. Ouch. Granted, his analysis was done with JavaFX 1.0, but the new 1.1 is mostly about JavaFX Mobile and probably wouldn't have affected the desktop assessment much.

So what's it take to move from promising to viable? More components? Even without open-sourcing, people are stepping up to contribute new components, layouts, and tutorials on the JFXStudio site, introduced by Josh Marinacci just a few weeks ago, so maybe that site will give rise to the community that fills in the blanks.

Speaking of Josh, he's the featured guest on the RIA Weekly #44 podcast. With hosts Michael Cot&eacut; and Ryan Stewart, Josh discusses JavaFX 1.1 and its mobile support, partnerships with handset makers, what developers are already doing with JavaFX, download statistics, designer-oriented tools for JavaOne, and some of what we'll see from JavaFX at JavaOne.

Dalibor Topić reports on the appearance of OpenJDK 6 in FreeBSD Ports collection. "As of today, there is an OpenJDK 6 package in the FreeBSD Ports collection. The port was created by Brian Gardner, who backported the changes from the BSD porting Project of OpenJDK 7 to the latest OpenJDK 6 build. Brian is looking for testers."

In today's Weblogs, Sergey Malenkov looks at the handling of a Square tile map. ""Many games use graphical maps based in iterative tiles. There are only three regular polygons that can be used as tiles: triangles, squares, and hexagons. Consider the square tiling first. Such tiles are most often used in games because of their ease of processing. Sometimes game developers enable diagonal movement, however, this feature makes calculating distance between two tiles more complicated."

In Developing MEP Client Applications - Part 2, Ryan Shoemaker writes, "Part 1 of this series focused on the core features of the MCBO API. In Part 2, we will see how to take advantage of many of the client security features provided in the API, using the MusicDB sample app as a framework for the discussion."

Hey, let's bring up the command line and Telnet to GlassFish v3. Sahoo writes, "Did you know you can telnet to GlassFish v3 runtime and manage it? Well, try the following: "telnet localhost 6666" and then type help..."

In today's Forums, Sahoo spells out GlassFish management features in Re: GF Deployment and OSGi Management (RFC-139). "GlassFish supports JSR-77. In addition to those management functions, GlassFish has a rich management API implemented using JMX. It is called AppServer Management Extension (AMX). We have not thought about integration of RFC-139 with GlassFish. My thinking is when the underlying OSGi platform supports it, it will be automatocally exposed to end user. There are some JMX mbeans implemented in Felix, but I don't think they have been released yet and I don't know how long it will take for Felix to implement RFC-139."

godpig asks
I want use lwuit in commercial, must I open source too? "I think LWUIT proves many features to improve my app's user experience, It looks very good. so I want to use it in my program, but LWUIT accords with GPLv2 protocal so that, I am not sure whether or not to open source ( of course, the leaders In company must not let me open the source ). I will use LWUIT If it needn't open source, thank you!"

Finally, saturon reports on LWUIT font performance in
RE: Performance system fonts vs. Bitmap fonts. "I now did some experiments with replacing some system fonts: The performance impact of using bitmap fonts is defenetly not neglectable. in my test devices: S60 3rd ed and a jp-7 se table component scrolling slowed down about 50%, label ticker in a custom component was more stop-and-go than smooth and menu scrolling also slows down some bit. Some other components were fine though. So i finally decided to stay with the hybrid approach, using bitmap fonts only where really needed."

Current and upcoming Java

Registered users can submit event listings for the href=""> Events Page using our href="">events submission form.
All submissions go through an editorial review before being posted to the

Archives and Subscriptions: This blog is delivered weekdays as
the Java
Today RSS feed
. Also, once this page is no longer featured as the
front page of it will be
archived along with other past issues in the href=""> Archive.

How much catch-up does JavaFX have to do?


Well this guy doesn't get the point of releasing JavaFX without a certain set of components already in place. That's not much of a criticism. Sun could have waited until what he expected was there, but how does that advantage us? How does that advantage Sun? This way, Sun gets feedback and we can experiment, which makes the toolkit better. The alternative is just to wait until a larger number of things were ready, but why? So guys like him won't say the things he said? It's not like anyone is going to deduct anything from his bank account for being short-sighted; he's pretty much free to say anything without much consequence. Sun on the other hand has an imperative to act in the way which will maximize the goodness of their product offering. So they did. So he got to say that. So what. It's very highly usable and essentially completely done for some real things. Others will have to wait. So it is with all things. We have to wait, but at least we're not waiting in the dark. That's better than th alternative.

Hmmmm. Components will be nice but I think they will come. The largest pain point is still installation. If I take a fresh install of firefox and visit youtube I get a nice "install missing plugins" option which searches and installs for me and then reloads the page with the new plugin fully working . You're never going to get near flash for the end user experience until you can do that. And it's not just me - every developer in my office who would like an RIA java based platform agrees.