Java FX Script - From Takeoff To Cruising Altitude

Post on 24-May-2015

2.095 views 0 download

Tags:

description

Matthew McCullough's presentation to the Boulder Java Users Group on JavaFX Script

Transcript of Java FX Script - From Takeoff To Cruising Altitude

JavaFX ScriptFrom Takeoff to Cruising Altitude...

Matthew J. McCulloughAmbient Ideas, LLC

Deployments

A quick review of terms

JavaFX Script

JavaFX Mobile

JavaFX Script

•Complete Mobile Phone Stack

•Think “Google Android”

JavaFX Mobile

•Formerly known as F3

•A new Java-like scripting language specifically for RIAs

•Think Silverlight, Flex, or AIR

JavaFX Script

The write once, run anywhere portability of Java technology has helped make it the world's most widely deployed application platform. Now, Sun is introducing JavaFX Script, a highly productive scripting language that enables content developers to leverage the enormous popularity of Java to create rich applications and services for deployment on the widest range of platforms - from mobile devices to set-top boxes and Blu-ray Discs to desktops.

Hello RIA WorldCode Demo

Competing withother Runtimes

*Ajax has behavior issues on browsers other than Firefox, Safari, & Internet Explorer*AIR to support Linux at a later date

Product Browser Desktop Platforms

*Ajax has behavior issues on browsers other than Firefox, Safari, & Internet Explorer*AIR to support Linux at a later date

Product Browser Desktop Platforms

Ajax ✔ 3*

*Ajax has behavior issues on browsers other than Firefox, Safari, & Internet Explorer*AIR to support Linux at a later date

Product Browser Desktop Platforms

Ajax ✔ 3*

Adobe Flash ✔ 4

*Ajax has behavior issues on browsers other than Firefox, Safari, & Internet Explorer*AIR to support Linux at a later date

Product Browser Desktop Platforms

Ajax ✔ 3*

Adobe Flash ✔ 4

Adobe Flex ✔ 4

*Ajax has behavior issues on browsers other than Firefox, Safari, & Internet Explorer*AIR to support Linux at a later date

Product Browser Desktop Platforms

Ajax ✔ 3*

Adobe Flash ✔ 4

Adobe Flex ✔ 4

Adobe AIR ✔ 2*

*Ajax has behavior issues on browsers other than Firefox, Safari, & Internet Explorer*AIR to support Linux at a later date

Product Browser Desktop Platforms

Ajax ✔ 3*

Adobe Flash ✔ 4

Adobe Flex ✔ 4

Adobe AIR ✔ 2*

Microsoft Silverlight ✔ 2

*Ajax has behavior issues on browsers other than Firefox, Safari, & Internet Explorer*AIR to support Linux at a later date

Product Browser Desktop Platforms

Ajax ✔ 3*

Adobe Flash ✔ 4

Adobe Flex ✔ 4

Adobe AIR ✔ 2*

Microsoft Silverlight ✔ 2

Sun JavaFX Script ✔ ✔ 4+

*Ajax has behavior issues on browsers other than Firefox, Safari, & Internet Explorer*AIR to support Linux at a later date

Applets are Back&

WebStart is Hot

JavaFX Interest Poll

JavaFWhat?Not At AllNot VerySomewhatVery

Source: Java.net JavaFX Poll, August 2007

JavaFX Interest Poll

JavaFWhat?Not At AllNot VerySomewhatVery

Source: Java.net JavaFX Poll, August 2007

70%

Source: TIOBE Programming Community Index for December 2007

Source: TIOBE Programming Community Index for December 2007

Mouse EventsCode Demo

Just Show MeSomething Cool

Music PinboardDemo

Consumer JRE Size

•Current JRE download is 12MB

•Reduced Footprint through Java SE 6 Update N

•Goal of 2MB

Idea Source: Danny Coward, JAZOON 07, Zurich

Consumer JRE Size

Consumer JRE Micro Bundles

•Back-to-Basics JRE

•Starts with hello world support

•Downloads additional parts as needed

Source: Java SE 6 Update N Early Access Program & Jim Weaver’s JavaFX Blog

Consumer JRE Performance

•Quick Starter for cold starts

•Prefetches portions of JRE into memory

•Graphics rendering hardware acceleration

Source: Java SE 6 Update N Early Access Program

The Language

Interpreted vs. Compiled

Interpreted

‣ Starting point for language

‣ Proof of Concept only

‣ In process of deprecation

‣ But has current IDE Support

Compiled

‣Official language tool, javafxc

‣Built on top of javac

‣Open Source

‣Work In Progress, but very usable

‣Automatic binding of form element to data model

‣Core JDK has no equivalent

‣Libraries such as Swinglabs only partially accomplish this for Swing

‣Built on Beans Binding JSR 295 library

Bind Operator

Bean BindingCode Demo

‣ DO, DOLATER currently in interpreter

Threads

Threads

“(Working on SwingWorker wrapper in compiler) so it is as easy (possibly easier) to use as AJAX's XMLHttpRequest”

-Tom Ball

‣Swing based rendering on PC devices

‣Other rendering engine for smaller devices such as Blu-Ray

The Compatibilty Secret

Effect

‣Objectifying nodes

‣Binding nodes together

‣Adding behavior to composite nodes

‣Standalone Java library

SceneGraph

Composite Node

TextField Box

Radial Gradient SimpleLabel

JavaFX 2D TutorialCode Demo

Animation

‣ Interpreted:picks.opacity = [0, .01..1] dur 1000 linear

‣ Compiled:Key frames, timeline

As many as 500 lines of Swing code equivalent to 10 of JavaFX

Animation

‣Next step in JavaFX animation

‣Advanced capabilities

‣Currently in compiler in rough state

Keyframe Animation

BounceCode Demo

GuitarCode Demo

JavaFX 2D TutorialCode Demo

Specifically, we are working on a new 3D scene graph, as part of the JavaFX player, that will complement the 2D Scenario scene graph. Its initial focus will be 3D effects, casual games, and simple 3D viewing applications...

Java3D’s Successor

Source: http://forums.java.net/jive/thread.jspa?threadID=36022&tstart=0

Mix & Match

The Perfect Blend

•Leverages all existing Java libraries

•Retro-capable back to JRE 1.5

•Browser, Desktop, and Phone

•Groovy, JRuby, Scala, Jaskell, Jython

Mix & Match GroovyCode Demo

IDEs

‣ NetBeans

‣ Eclipse

‣ IntelliJ

‣ ReportMill

NetBeans JavaFX Plugin

Previewing Results

‣ Live preview of code changes

‣ No compile cycle delay for testing

‣ But uses Interpreter...

NetBeans Demo

ReportMill JFXBuilder

•Most advanced demos

•Representative of future tools from Sun

ReportMillPath Animation Demo

Designers vs. Coders

Sun’s JavaFX Tools are turning the workflow sideways

James Gosling

Source: http://www.regdeveloper.co.uk/2008/01/24/javafx_tools_adobe/

“”

Our architecture is more like the coder does this part and the artist does this part, and then the artist can do the plugging in [of the design] themselves. They can update the artwork and the [developer] guy can update the code, and they are talking to the tool together. It's not conditional on the other.

James Gosling

Source: http://www.regdeveloper.co.uk/2008/01/24/javafx_tools_adobe/

Sun Microsystems is working on interoperability between design tools from Adobe Systems and its upcoming JavaFX tools for application developers building rich application interfaces and rich-internet applications (RIAs).

James Gosling, Sun vice president and fellow, told Register Developer that Sun is working to ensure interoperability - rather than provide its own design tools.

We are putting a lot of effort into interoperability with the Adobe tools - a lot of the Adobe tools are wired into the neurons of the artists of the world. We are not trying to be a completely isolated island that has all the tools for everybody.

James Gosling

Source: http://www.regdeveloper.co.uk/2008/01/24/javafx_tools_adobe/

“”

Q&A

Q&A

Email questions to:MatthewM@AmbientIdeas.com

Slides & Source Code at:www.AmbientIdeas.com/engineering/engineering-training.html

•James Weaver’s JavaFX Bloghttp://learnjavafx.typepad.com

•Sun JavaFX Script Homepagehttp://www.sun.com/software/javafx/script/index.jsp

•ReportMill JFXBuilderhttp://www.reportmill.com/jfx/

•Planet JFXhttp://jfx.wikia.com/wiki/Main_Page

Resources

•JavaFX Language Reference, Nightly Buildhttp://openjfx.java.sun.com/current-build/doc/JavaFX-Language.html

•Project SceneGraphhttps://scenegraph.dev.java.net/

•Comparing Flex and Ajax Dev Modelshttp://www.adobe.com/newsletters/edge/february2008/articles/article4/

•Swinging in Groovyhttp://groovy.dzone.com/tips/swinging-groovy-fun

Resources

•Rich Green @ Java One San Fran

•“Meant for building Rich Internet Applications (RIAs)”

•“For content professionals”

•“All based on Swing and Java 2D”

Quotes

• Danny Coward, JAZOON 07, Zurich

• Visual Tools, Visual Developers

• Only occasionally dropping down to script level coding

• Meant for animated, simple, client apps that are highly branded

• Not used much by technical java developers

Quotes

•Chris Oliver, creator of JavaFX Script

• Created Motorola equivalent site in 3 days

Quotes