It’s just data

JavaFX Script

Don Park: As you can see, JavaFX script (*.fx) is basically JSON-like version of XAML which can be either compiled into Java bytecode or run as is using a java-based JavaFX player. Since JavaFX is just java, it can run as applets in browsers, midlets on mobiles, and applications on WebStart

Superficially, while JavaFX does appear JSON-like (with bits of LINQ tossed in), the underlying Canvas object model (“a 2D vector graphics scene-graph model with a declarative API similar to SVG”) is a somewhat clunky.  Compare intertwingly.fx against the original intertwingly.svg.  This verbosity will inhibit the growth of Inkscape like tools that are vital to the ecosystem.

While Silverlight can be directly embedded in an HTML page, JavaFX can only indirectly be embedded via an applet.  Additionally, JavaFX can embed HTML as a String.  This isn’t as limiting as it might sound as JavaFX Strings not only support interpolation, but also support incremental and lazy evaluation:

Attributes initialized with bind are akin to cells in a spreadsheet that contain formulas rather than literal values. During the lifetime of the object containg the attribute, whenever any of the objects referenced by the right hand side of the initializer expression changes the left hand side (the attribute’s value) is automatically updated.

In my opinion, such dynamic behavior is the true sleeper feature in JavaFX that others will incorporate over time.