Saturday, December 06, 2008

JavaFX vs Silverlight vs Javascript vs Flash vs Java

JavaFX 1.0 final has been released. Go check out some samples at JavaFX.com. A quick performance test reveals that JavaFX is able to reach really good performance, which I was afraid it wouldn’t even though it is using the best performing VM there is underneath.

Now if they only could get rid of that java tray icon by default too…

A simple performance test was created some time ago for Flash and Silverlight, also available as an JavaFX version. Here are some performance numbers from my laptop when increasing the input number by a factor 10:

Technology Time
JavaFX 1.0 3.963s
Silverlight 2 C# 4.257s
Flash 10 27.840s
Javascript, Internet Explorer 7 ~20times slower than Chrome *
Javascript, Chrome 22.989s
Java 6 3.948s
Java 6, interpreted 22.973s

Result above are the best out of 4-5 runs.

* = IE7 complains about slow running script. Using the default input number it takes just over 20s. Chrome does that in around 1s and JavaFX and Silverlight under 0.2s.

I think someone put it well when he/she said something along the lines of: Adobe people will continue to use flash/flex/air and dot-netters will use silverlight, but now the java-crowd has a choice that integrates better than everything else into their own environments. As java is the most widely used/popular programming platform that alone helps assure some amount of success… maybe.

JavaFX really requires the latest and greatest java version, update 10 (update 11 is also available now by the way) and with that I see JavaFX’s greatest advantage: It integrates fully with the normal java environment and provides true seamless web and desktop integration for both users AND developers. Server/Enterprise (and soon mobile) integration is also nice for the developers.

Goodbye ajax. JavaFX, Silverlight and Flash just does it better and easier… Why restrict applications to html and a browser?! ;-)

Update June 2009: JavaFX 1.2 has some great performance improvements (graphics/scene graph related I guess). See this for an example of a 3x speed up in performance: http://piliq.com/javafx/?p=1010


4 comments:

  1. Maybe it is fast but i'm rally worried about memory on stack. What about this?
    http://trimbo.blogspot.com/2007/05/javafx-vs-flash-vs-dhtml-vs-silverlight.html

    ReplyDelete
  2. Keep in mind the difference between "launched by" and "run as". Unlike a javascript app, JavaFX apps actually run under a completely separate process than the browser. So you can close the browser and have the app continue to run. So, yes, you do have the memory overhead of a standalone app, but I think the benefits of that strategy far outweigh the couple of seconds extra it takes to load (if you don't cache).

    ReplyDelete
  3. I must add that an important factor also is the objective of the project to be able to choose between one or the other technology.

    ReplyDelete