« 10 Apollo faves | Main | JavaFX big news »

May 08, 2007

Sun, JavaFX

Sun, JavaFX: Sounds interesting... Sun's rebranding and refining much of their software stack today. The link above goes to OpenJFX.org, which seems like the core info site... here's their FAQ. Sun CEO Jonathan Schwartz describes JavaFX per se as desktop software, which can communicate with a JavaFX Mobile engine on your pocket devices, apparently making it easier to coordinate among your various handhelds. There's also JavaFX Script, a rebrand of the prior F3 project, which describes UIs in script, rather than XML like Flex. Current news reporting seems all over the map -- lots of reporters are bringing up comparisons with plugins or Apollo or Ajax, for instance, but I haven't seen anything from Sun about in-browser work, or beyond-the-browser work -- I'll use the extended entry here to collect links throughout the day. My current takeway: The actual Sun documentation seems to be less interesting than many of the third-party articles might imply... seems more a way to staunch the migration to Flex among Java developers than new functionality. I still need to learn more, though....


General observation: The story isn't told as clearly and concisely as it might have been... they use words like "impactful" in the marketing materials, which is always a clue to fluff....

Historical trivia: Schwartz used the phrase "Write Once, Run Anywhere", which was descended from Macromedia Director's earlier Author Once, Play Anywhere.

Context: Mary Jo Foley had a piece yesterday with some Sun exec quotes implying a relationship to Flash, but unfortunately it seems a parallel effort, with slightly different destination, rather than a useful synergy. Don Burnette has an article this morning which mentions "conversion utilities for translating Flash and SVG files into the JavaFX format" (FLA? SWF? MXML? FLV?), but that's the only Flash connection I've seen yet.

Semantic trivia: Sun correctly describes "RIA" as Rich Internet Application, rather than Rapid Interaction API or some other attempted neologism. :)

Tooling: Some articles describe an authoring tool ("Java FX intends to allow application architects to craft online applications by dragging and dropping images, eliminating the need to manually write code. They will be able to create animated buttons, for instance, by dragging images directly from [Adobe] Photoshop."), but anecdotal reports from JavaONE show floor seem to negate this... I'll try to resolve this discrepancy later today.


JavaFX Script seems to have the clearest story so far. It's a new scripting language used to declare interfaces. It isn't high-level XML, like Flex's component-oriented MXML, or a lower-level drawing XML, like SVG or even XAML... it's script, sent down to the runtime.

From the FAQ: "JavaFX Script is a declarative, statically typed programming language. It has First-class functions, declarative syntax, list-comprehensions, and incremental dependency-based evaluation. It can make direct calls to JavaAPIs that are on the platform. Since JavaFX Script is statically typed, it has the same code structuring, reuse, and encapsulation features (such as packages, classes, inheritance, and separate compilation and deployment units) that make it possible to create and maintain very large programs using Java technology."

Apparently the advantage lies in manipulating higher-level constructs... a faster way to develop, less low-level than straight Java programming... I haven't seen any new abilities for the Sun runtimes announced here, just refinements of ways to do existing things.

Also: "JavaFX Script will be open sourced. The governance, licensing, and community models will be worked out as product release draws closer."

The Language Guide seems surprisingly short, and focuses more on language functions than on primitives or components (seems like JFX can invoke Swing UI components, but doesn't have its own).... after reading it, I'm wondering whether they gave it the name "JavaFX" because the name "JavaScript" was already taken. The Language Guide is the best "what is it?" resource I've seen so far, but seems slight to me.

What runs on the mobile devices? I'm not sure yet... it sounds like there's an additional "JavaFX Mobile" layer (750K?) which can float above the core "Java Micro Edition" runtimes installed on most phones. I'm not certain if it reduces the variance among the world's JME runtimes -- it's usually testing and single-casing which adds the cost to Java mobile work -- so far, from what I'm reading, it sounds like JFM acts as a local meta-engine for handling JFS instructions. The desktop Java client, Java Standard Edition, apparently can interpret these JFS instructions without the intermediary layer which mobiles require.

Schwartz implied some type of desktop management function for different devices, which would imply some type of server functionality, but I haven't found docs discussing this area yet.

Posted by JohnDowdell at May 8, 2007 07:44 AM

Trackback Pings

TrackBack URL for this entry:
http://weblogs.macromedia.com/mtadmin/mt-tb.cgi/8696

Comments

Actually, I probably won't be updating this entry much today... the news seems less than what is being portrayed.

David Berlind had an interesting post, though. He does the "Flash/S'light/JavaFx rumble" storyline, and I don't think he gets the featurephone/smartphone distinction in mobile, but it's one of the better reads I've had today.

One quote gnaws at me: "With no single solution provider credibly having all the bases covered yet, Adobe, Microsoft, and Sun have, within months of each other, each launched a strategy to hit the equivalent of a developer convergence grand slam."

I see Adobe's work here as part of a much longer effort, one that really started when the Allaire ColdFusion community joined the Macromedia Flash community -- this is when we all really started working to tie together server persistence and user experience, and was the start of the RIA revolution. Seeing Microsoft and Sun recently climb on board (even with competing offerings) is good. It's been a longterm effort.

Posted by: John Dowdell at May 8, 2007 03:02 PM

Sun's Chris Oliver, principal behind the F3 project, has a good quote in this article:

"The idea behind JavaFX is to offer a simple set of interfaces that would allow Web developers to harness the power of the wide range of Java libraries, particularly Java Swing and Java 2D, said Chris Oliver, one of the Sun developers behind JavaFX. By doing so, developers could create interactive buttons, sliders and special effects in far fewer number of lines than they could using Java alone."

Posted by: John Dowdell at May 9, 2007 02:35 PM

Post a comment




Remember Me?



(you may use HTML tags for style)