JavaFX: I'm Still Not Impressed

by Robert Cooper

To provide a little counterpoint to Tim's post on JavaFX Script (Formerly F3), I still am not too excited.

JFX/F3 is pretty cool. It is something the Java world has needed for a long time. However, I am just not sure the whole JavaFX™ branding effort is really warranted here. While F3 is a great start, it doesn't put Java(FX) anywhere in the neighborhood of Flex. First, while F3 is cool, there is still a great deal of engineering work left to be done. There isn't a compiler. There isn't a really application framework for it -- though this seems to be a shortcoming of the UI guys in the Java world; how long did we wait for JSR-295..6? Most importantly, though, there is no tooling.

Flash hasn't kicked Java's butt for so long because it is sooo technically superior. Indeed, until just recently the Flash runtime itself was horrible, and it still has a long way to go, especially being sold as a real application runtime in Apollo. The reason Macromedia/Adobe have done so well is tooling, and there isn't even the beginnings of this for Java FX. Until JavaFX has a tool that a graphic designer can use with somewhere approaching the fit and finish of the Adobe product suite, it just doesn't matter. It won't go anywhere.

The second big problem with offering up JavaFX as the savior of Java in the RIA space is the quality of the Java runtime. I know a lot of people talk about the DL size, and startup times. These are valid concerns. Until LiveConnect works right in every browser, it just doesn't matter if there is an awesome declarative markup language on top of it. One of the more impressive tech demos this year is Iris, and while it works and looks cool, those guys did a yeoman's job working around the problems with making Java talk to anything else in the browser. While it is still a relatively new thing, Flash's ExternalInterface system introduced with Flash 8 works.... right... the same... in all 4 major browser engines.

I don't mean to downplay what Oliver has built. I know he has spent about 3 years working on this, and it is a really great DSL for UIs. The problem is, that DSL doesn't make a "platform" and certainly not an "environment". The whole JavaFX hypecycle seems like it came a year early. If Sun manages to break the habit of hyping somethign then walking away from it, buckles down with some resources, and delivers a great tooling option for JFX, JavaOne 2008 might be something to get excited about.

17 Comments

Jeremy
2007-05-10 16:06:46
I just really hope that in addition to what you mention that they truly separate the concerns of UI and programming.


With Google's AJAX stuff and JSF, there is really not a separation of UI and programming, which makes it really tough to have a designer do something and a developer plug in the dynamic stuff. If Sun can do that well and let the designer do what they do best and the programmer plug in functionality and dynamic data, then I think that would be a major step forward.


2007-05-10 18:23:09
The kind explanation is that the JavaFX announcements were rushed out to try and take some momentum out of Flex and Silverlight. The less kind explanation is that Sun's internal Java wars are flaring up again, and that the JavaFX announcements were rushed out to try to take the momentum out of Project Flair.
Marc
2007-05-10 19:19:10
A year from now the RIA space will be owned by Flex/SilverLight. JavaFX is DOA. Move along everyone, there's nothing to see here.
Jeff
2007-05-10 19:36:10
I think JavaFX or (JFX) for short, It's a great project. Its opensource, Integrated on the Java stack, I can use a great declarative language (F3) for design the GUI and using Java or the combination of JRuby on the backend I can create really cool stuff for the Desktop, Web or Embeeded.
I'm looking forward to use JavaFX in the near future. I think Java is a huge momentum right now and use it everywhere. I have trying Adobe Flex, it is ok but little bit messy to work with Java and really I dont care anymore Microsoft products as Paul Graham said on his last essay Microshaft is dead period.


One more thing ISV's or Sun or Eclipse fundation can create cool Swing or JavaFX GUI designer tools using on the background F3 language instead of using xml or another declarative form. I belive XML is just for document message transport not for another thing, I dont like to design GUI and stuff with XML as other tools does.

klausstake
2007-05-11 00:24:12
In general I agree with your blog. If you're asking for tools. I'm pretty sure that they are coming very soon. Did you know that there are early stage IDE JavaFX plugins for Netbeans and Eclipse? Look here https://openjfx.dev.java.net and here https://openjfx.dev.java.net/javafx-nb60-plugin-install.html


Cheers

Simon Brocklehurst
2007-05-11 01:07:50
Robert,


The first thing Sun has to get right is the second problem you allude to - the new Consumer Java runtime. If they do that, there is amazing tooling already available for serious software developers to build really compelling browser-based Java applets (no JavaFX required).


When JavaFX has great tools, and compiles to bytecode, that will be a big boost, for sure. Especially, it will allow graphic designers and "web developers" to get involved with Java. But, the point is - it's the browser JRE that's really holding applets back. JavaFX is the catalyst that's led to some resources being put in place to develope a consumer JRE.


Tim
2007-05-11 08:24:34
Sun had no choice than to announce JavaFX this year ready or not. They couldn't afford to wait another year while Flex and Silverlight build mindshare.

Flash's success depends on the "ecosystem" you are talking about. In the enterprise, it was the tools. In the internet at large it was the small download size that allowed dial-up users to get the plugin.

The RIA "battle" is Flash/Flex's battle to lose. It's the smallest download, better cross-platform than Silverlight, and a head start.
Chris
2007-05-11 08:54:50
I have to agree...Flex/Flash is the world champion in the event, with Silverlight being the brash, fit, well-funded newcomer. F3 seems to be the 98lb weakling with tape on his glasses running after them shouting "Look at me, I can do it too!"
Tim O'Brien
2007-05-11 09:15:51
I'm impressed with some of the things Oliver demo'd.


From a technology perspective I think there is a lot of potential, but from a business perspective, I think this is more fantasy than fact at the moment. For example, in the JavaTV press conference they were talking about JavaFX running on set top boxes - all seems really premature.


On Adobe products, I'm using Flex right now. It's definitely a great improvement over the Flash IDE. I think they got a lot right with Flex. I'm impressed with Flex as a product that is shipping now. I'm excited by JavaFX as a possibility, and I think that Sun is the kind of company that could pour millions into the idea right away.

Tim O'Brien
2007-05-11 09:19:48
@Robert, one more thing. You wrote: "The second big problem with offering up JavaFX as the savior of Java in the RIA space is the quality of the Java runtime. I know a lot of people talk about the DL size, and startup times. These are valid concerns. Until LiveConnect works right in every browser, it just doesn't matter if there is an awesome declarative markup language on top of it."


I spoke to Danny Coward and Jean Elliot about this stuff yesterday. Point blank, "Startup times for Applets are a non-starter" There is a lot of work going into future releases of the Java runtime to get startup time closer to zero. Coward mentioned that there was a great deal of work going into this, and Jean also said that this was part of Sun's focus on making the end-user experience excellent. We'll see. Generally positive about Sun after this conference, and (you probably know) I'm a prett reactionary skeptic. :-)

cooper
2007-05-11 17:14:42
Tim:"On Adobe products, I'm using Flex right now. It's definitely a great improvement over the Flash IDE. I think they got a lot right with Flex. I'm impressed with Flex as a product that is shipping now. I'm excited by JavaFX as a possibility, and I think that Sun is the kind of company that could pour millions into the idea right away."


I think you are missing my point on that one. For *you* the Flex IDE is a big step up. However, we need a crossover.


A Netbeans plugin for JFX gets us nowhere


We need a tool that Graphic Designers will want to use for creating these beautiful UIs. If that can deliver F3 code to programmers that is workable in the generated state that would be all the better. However, until we have something akin to Flash and Expression, all these other points are secondary, including the applet runtime.

Bharath R
2007-05-11 21:32:51
More importantly, I'd like to see atleast basic media (MP3, video format) support added to the platform, and have F3 add constucts (of course with supporting tools) to leverage these capabilities. I'm told that though flash's codec support is very basic, it still does the job. And that's all that matters for a youtube or a google video. Until that is fixed, there's no need to get excited about Java's prospects in the RIA space. Good 2D capabilities alone won't cut it.
Fatty
2007-05-12 06:44:05
I am still to understand what this is all about. What is wrong with C++. STL and boost rulez!
Jean Lazarou
2007-05-14 04:11:54
Do we need a new programming language? Why don't use JRuby and implement something like a DSL using the Ruby approach? Doing so is possible, I wrote a JRuby version based on the F3 tutorial.


If Java wants more people, from Flash community, I agree that the tools make the difference, not beeing Java centric but GUI centric. Starting Netbeans, installing plug-ins, trying to understand the project concepts... too complex to create an image-rich application. And, of course, that installs and works everytime.

mc1392
2007-05-18 07:01:12
Wouldn't it be nice to have UI lang/script that was good for programmers too? Maybe programmers are the audience. I sure like the idea of getting web 2.0 functionality without using javascript and explicitly checking for IE or Firefox. I guess it's still early to wonder of what problems will can be addressed, however, the anticipation is there.


mc1392

witches_hammer
2007-05-20 13:18:03
JavaFX is for swing programmers. the rest of you take a hike.
Andrew
2007-05-30 12:23:10
I never understand why everyone thinks a graphical designer is required for a product to be good. I have been in this space for many years, and one of the large lessons I have learned is that if the language and tool are too easy the code is bad, period. VisualBasic was horrendous and Microsoft lost the war to Java, having to write its own language (.NET) to try to make up the ground.


As for the RIA space, there are two main camps, (1) the casual web site developers and those that want a small amount of additional functionality beyond HTML and (2) the application developer writing thick-client powered applications. As for type (1), Flash will probably win out easily for the short term as it is easy to use. For type (2) people, JFX has the upper hand IMO. Us application developers need a real language to work with and frankly I don't trust Microsoft with web based security and applications (remember ActiveX --> do you want to run this application or not, that is all the security there was).


As for visual designers, please keep them away, HTML editors have always written bad code and the same went for Swing IDEs. Writing HTML and Swing was always better by hand IMO.


I only wish IE hadn't one out and wish the w3c had more influence as HTML could have kept growing to the point where applications could have been feasible on the web with only one code base for all browsers. It is a shame to have to resort to plug-ins.