views:

445

answers:

4

I know there is already a question about the performance of Flex, JavaFX, and Silverlight. My question is a bit more broad:

We are evaluating the merits of JavaFX and Silverlight to serve as the GUI technology that controls/configures our back-end service (currently written in Java). The service and GUI are usually on the same machine, but remote management (via browser) must also be supported. We are currently split into 2 teams: one .Net and one Java, although the Java developers also have some .Net experience.

As I see it, the pros & cons are currently the following:

Silverlight 4:

  • Pros:
    • Excellent IDE integration
    • Good developer-designer workflow
    • Performance
    • Extensive 3rd-party support (tools, controls, etc)
    • Lots of momentum and drive from Microsoft
    • Very good out-of-browser integration
  • Cons:
    • Only supported on Mac & Windows (Moonlight support is not up to standard)

JavaFX 1.2:

  • Pros:
    • Wide platform support
  • Cons:
    • Only supports Latin character sets (at this time)
    • Fewer designer tools
    • Little or no out-of-browser integration. Update: apparently there is out-of-browser support.
    • Performance (at least on the demos I viewed at www.javafx.com)
    • Maturity

Please let me know if I'm missing anything or mistaken about something, and what else I haven't considered. We also looked at Adobe AIR, but ruled it out because all our developers already have experience in Java and/or .Net.

Please don't start any flame wars here. This is not a religious question, and I really would like some practical advice and facts.

+3  A: 

I've been developing some materials in JavaFX recently.

The performance of JavaFX has improved markedly over the last 6 months (between 1.0 and 1.2), and is supposed to improve yet again with the 1.3 release.

"Out of browser integration" is essentially JNLP (ie, Web-start). It's perfectly reasonable from what I can tell. For instance, WidgetFX have written a Vista/7-like desktop sidebar entirely in JavaFX http://widgetfx.org/

There is supposedly "momentum and drive" from Oracle -- Larry Ellison has been publicly enthusing about it -- but that of course is held up by the EU's investigation of the Oracle-Sun merger.

Note that JavaFX does not use Java syntax. It is, however, a very concise and quick language to write a GUI in, but does have a (relatively short) learning curve of its own. It can however include any Swing components (and there are quite a few libraries of them out there), and can use Java classes.

William Billingsley
+4  A: 

I have been playing around with JavaFX the last months and i would not recommend anyone to start using it unless the limitations (like lack of Linux support) are too harsh. The IDE support for JavaFX is ridiculous at the moment. You have no refactoring help, no autoformat and not even help with indentaion.

I like JavaFX and will continue to play around with it, but for 2 equally good languages, the huge IDE different is hard to overcome.

Silverlight has got Expression Blend as well, for (kind of) WYSIWYG.

I think a solution in JavaFX would be better, but creating it will probably be alot more difficult.

Vargen
+3  A: 

I wanted to expand a bit on your point about the IDE and dev/designer workflow - I've been working with Silverlight for a year and half now, and I have to say the key to my success has been the tooling. On the dev side the ability to step through code in the debugger from client side to server side across a web service call is very helpful. We've hired designers with experience in the Adobe toolset and seen them become immediately productive in Blend (animating UIs, transitioning screens, hiding/showing elements, etc). Couple that with the fact that both Visual Studio and Blend can share the same source control system and you've got a great ecosystem for rapidly pulling together good looking web apps.

One other pro for Silverlight is the language independence. If you choose C# you also get LINQ, lambda expression and (soon) parallel foreach loops.

James Cadd
+3  A: 

Several thinks about JavaFX.

  • Only supports Latin character sets (at this time) (false) JavaFx uses standard Java string representation and also rendering is fully capable to handle non Latin characters.
  • Fewer designer tools (true) but take a look at newest NetBeans (more @ link text)
  • Little or no out-of-browser integration (false) JavaFX runs in web/desktop, mobile and new platforms are planned.
  • Performance is improving with each release.
  • Maturity has same as Silverlight, but with better market share based on installed JVMs.

Your evaluation of JavaFX is kind of wrong.

Rastislav Komara
Thanks for your input Rastislav. I found the Latin character set limitation on the [JavaFX FAQ page](http://www.javafx.com/faq/) (section 1.4, third bullet point).I've scratched out the incorrect information regarding out-of-browser.I still think JavaFX is not as mature as Silverlight, which is already (almost) at its 4th release, with each one bringing lots of improvements.
Theodor Kleynhans
I understand your point of view. We are intensively working on JavaFX to bring all new features with maximum quality.
Rastislav Komara
Today we released JavaFX Composer for NetBeans. The RAD tool for application developers using JavaFX. For more information: http://wiki.netbeans.org/JavaFXComposer
Rastislav Komara