SlideShare a Scribd company logo
1 of 84
Download to read offline
JavaFX Script
 From Takeoff to Cruising Altitude...



                    Matthew J. McCullough
                     Ambient Ideas, LLC
Deployments
A quick review of terms
JavaFX Script
JavaFX Script




                JavaFX Mobile
JavaFX Mobile


•Complete Mobile Phone Stack
•Think “Google Android”
JavaFX Script

• Formerly known as F3
•A new Java-like scripting language
     specifically for RIAs
• Think Silverlight, Flex, or AIR
“   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 World
  Code Demo
Competing with
other 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 All
                                                  Not Very
      Source: Java.net JavaFX Poll, August 2007   Somewhat
                                                  Very
JavaFX Interest Poll



70%                                               JavaFWhat?
                                                  Not At All
                                                  Not Very
      Source: Java.net JavaFX Poll, August 2007   Somewhat
                                                  Very
Source: TIOBE Programming Community Index for December 2007
Source: TIOBE Programming Community Index for December 2007
Mouse Events
Code Demo
Just Show Me
Something Cool
Music Pinboard
    Demo
Consumer JRE Size

   •Current JRE download is 12MB
   •Reduced Footprint
       through Java SE 6 Update N
   •Goal of 2MB
Consumer JRE Size




     Idea Source: Danny Coward, JAZOON 07, Zurich
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
Bind Operator
‣   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
Bean Binding
 Code Demo
Threads
‣ DO, DOLATER currently in interpreter
Threads


“(Working on SwingWorker
wrapper in compiler) so it is as easy
(possibly easier) to use as AJAX's
XMLHttpRequest”
                            -Tom Ball
The Compatibilty Secret


‣ Swing based rendering on PC devices

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

‣   Objectifying nodes                Composite
                                        Node



‣ Binding nodes together
‣ Adding behavior to          TextField              Box



    composite nodes
‣   Standalone Java library                Radial
                                          Gradient
                                                           SimpleLabel
JavaFX 2D Tutorial
    Code Demo
Animation
‣ Interpreted:
  picks.opacity = [0, .01..1] dur 1000 linear

‣ Compiled:
  Key frames, timeline
Animation




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


‣ Next step in JavaFX animation

‣ Advanced capabilities

‣ Currently in compiler in rough state
Bounce
Code Demo
Guitar
Code Demo
JavaFX 2D Tutorial
    Code Demo
Java3D’s Successor

“
    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...
             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 Groovy
    Code 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
ReportMill
Path 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
Resources
•James Weaver’s JavaFX Blog
  http://learnjavafx.typepad.com


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


•ReportMill JFXBuilder
  http://www.reportmill.com/jfx/


•Planet JFX
  http://jfx.wikia.com/wiki/Main_Page
Resources
•JavaFX Language Reference, Nightly Build
  http://openjfx.java.sun.com/current-build/doc/JavaFX-Language.html


•Project SceneGraph
  https://scenegraph.dev.java.net/


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


•Swinging in Groovy
  http://groovy.dzone.com/tips/swinging-groovy-fun
Quotes

•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

More Related Content

Similar to DOSUG Java FX Script From Takeoff To Cruising Altitude

Java FX Script - From Takeoff To Cruising Altitude
Java FX Script - From Takeoff To Cruising AltitudeJava FX Script - From Takeoff To Cruising Altitude
Java FX Script - From Takeoff To Cruising AltitudeMatthew McCullough
 
iPhone Web Development
iPhone Web DevelopmentiPhone Web Development
iPhone Web DevelopmentAndy Peters
 
What’s New in Flash Player 11.2 and Adobe AIR 3.2
What’s New in Flash Player 11.2 and Adobe AIR 3.2What’s New in Flash Player 11.2 and Adobe AIR 3.2
What’s New in Flash Player 11.2 and Adobe AIR 3.2Joseph Labrecque
 
Mozilla egypt community fire fox os workshop session 2
Mozilla egypt community fire fox os workshop   session 2Mozilla egypt community fire fox os workshop   session 2
Mozilla egypt community fire fox os workshop session 2mozillaegypt
 
The Evolution of the Flash Platform
The Evolution of the Flash PlatformThe Evolution of the Flash Platform
The Evolution of the Flash PlatformPeter Elst
 
AN INTRODUCTION TO APACHE FLEX
AN INTRODUCTION TO APACHE FLEXAN INTRODUCTION TO APACHE FLEX
AN INTRODUCTION TO APACHE FLEXJoseph Labrecque
 
Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Ryan Cuprak
 
Firefox OS Perspective
Firefox OS Perspective Firefox OS Perspective
Firefox OS Perspective ankitgadgil
 
Flex multi-screen development
Flex multi-screen developmentFlex multi-screen development
Flex multi-screen developmenteaselsolutions
 
Flash platform introduction
Flash platform introductionFlash platform introduction
Flash platform introductionatomlin
 
Adobe AIR Seminar
Adobe AIR SeminarAdobe AIR Seminar
Adobe AIR SeminarYoss Cohen
 
Hybrid Mobile Applications
Hybrid Mobile ApplicationsHybrid Mobile Applications
Hybrid Mobile ApplicationsRuwan Ranganath
 
Flash/ActionScript
Flash/ActionScriptFlash/ActionScript
Flash/ActionScriptguestc0b52c5
 
Don't touch the mobile parts
Don't touch the mobile partsDon't touch the mobile parts
Don't touch the mobile partsFrancesco Fullone
 
Optaros Surf Code Camp Introduction
Optaros Surf Code Camp IntroductionOptaros Surf Code Camp Introduction
Optaros Surf Code Camp IntroductionJeff Potts
 
Os Henrikson
Os HenriksonOs Henrikson
Os Henriksonoscon2007
 

Similar to DOSUG Java FX Script From Takeoff To Cruising Altitude (20)

Java FX Script - From Takeoff To Cruising Altitude
Java FX Script - From Takeoff To Cruising AltitudeJava FX Script - From Takeoff To Cruising Altitude
Java FX Script - From Takeoff To Cruising Altitude
 
iPhone Web Development
iPhone Web DevelopmentiPhone Web Development
iPhone Web Development
 
What’s New in Flash Player 11.2 and Adobe AIR 3.2
What’s New in Flash Player 11.2 and Adobe AIR 3.2What’s New in Flash Player 11.2 and Adobe AIR 3.2
What’s New in Flash Player 11.2 and Adobe AIR 3.2
 
Mozilla egypt community fire fox os workshop session 2
Mozilla egypt community fire fox os workshop   session 2Mozilla egypt community fire fox os workshop   session 2
Mozilla egypt community fire fox os workshop session 2
 
JavaFx
JavaFxJavaFx
JavaFx
 
Firefox OS
Firefox OSFirefox OS
Firefox OS
 
The Evolution of the Flash Platform
The Evolution of the Flash PlatformThe Evolution of the Flash Platform
The Evolution of the Flash Platform
 
Firefox os
Firefox osFirefox os
Firefox os
 
AN INTRODUCTION TO APACHE FLEX
AN INTRODUCTION TO APACHE FLEXAN INTRODUCTION TO APACHE FLEX
AN INTRODUCTION TO APACHE FLEX
 
Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and
 
Firefox OS Perspective
Firefox OS Perspective Firefox OS Perspective
Firefox OS Perspective
 
Flex multi-screen development
Flex multi-screen developmentFlex multi-screen development
Flex multi-screen development
 
Adobe Flex
Adobe FlexAdobe Flex
Adobe Flex
 
Flash platform introduction
Flash platform introductionFlash platform introduction
Flash platform introduction
 
Adobe AIR Seminar
Adobe AIR SeminarAdobe AIR Seminar
Adobe AIR Seminar
 
Hybrid Mobile Applications
Hybrid Mobile ApplicationsHybrid Mobile Applications
Hybrid Mobile Applications
 
Flash/ActionScript
Flash/ActionScriptFlash/ActionScript
Flash/ActionScript
 
Don't touch the mobile parts
Don't touch the mobile partsDon't touch the mobile parts
Don't touch the mobile parts
 
Optaros Surf Code Camp Introduction
Optaros Surf Code Camp IntroductionOptaros Surf Code Camp Introduction
Optaros Surf Code Camp Introduction
 
Os Henrikson
Os HenriksonOs Henrikson
Os Henrikson
 

More from Matthew McCullough

iPhone & Java Web Services, Take 2
iPhone & Java Web Services, Take 2iPhone & Java Web Services, Take 2
iPhone & Java Web Services, Take 2Matthew McCullough
 
Git - Intro to the Basics of DVCS
Git - Intro to the Basics of DVCSGit - Intro to the Basics of DVCS
Git - Intro to the Basics of DVCSMatthew McCullough
 
Terracotta Java Scalability - Stateless Versus Stateful Apps
Terracotta Java Scalability - Stateless Versus Stateful AppsTerracotta Java Scalability - Stateless Versus Stateful Apps
Terracotta Java Scalability - Stateless Versus Stateful AppsMatthew McCullough
 
DOSUG GridGain Java Grid Computing Made Simple
DOSUG GridGain Java Grid Computing Made SimpleDOSUG GridGain Java Grid Computing Made Simple
DOSUG GridGain Java Grid Computing Made SimpleMatthew McCullough
 
DOSUG Taking Apache Camel For A Ride
DOSUG Taking Apache Camel For A RideDOSUG Taking Apache Camel For A Ride
DOSUG Taking Apache Camel For A RideMatthew McCullough
 
DOSUG Intro to JQuery JavaScript Framework
DOSUG Intro to JQuery JavaScript FrameworkDOSUG Intro to JQuery JavaScript Framework
DOSUG Intro to JQuery JavaScript FrameworkMatthew McCullough
 
DOSUG XML Beans overview by Om Sivanesian
DOSUG XML Beans overview by Om SivanesianDOSUG XML Beans overview by Om Sivanesian
DOSUG XML Beans overview by Om SivanesianMatthew McCullough
 

More from Matthew McCullough (11)

iPhone & Java Web Services, Take 2
iPhone & Java Web Services, Take 2iPhone & Java Web Services, Take 2
iPhone & Java Web Services, Take 2
 
iPhone & Java Web Services
iPhone & Java Web ServicesiPhone & Java Web Services
iPhone & Java Web Services
 
Git - Intro to the Basics of DVCS
Git - Intro to the Basics of DVCSGit - Intro to the Basics of DVCS
Git - Intro to the Basics of DVCS
 
Terracotta Java Scalability - Stateless Versus Stateful Apps
Terracotta Java Scalability - Stateless Versus Stateful AppsTerracotta Java Scalability - Stateless Versus Stateful Apps
Terracotta Java Scalability - Stateless Versus Stateful Apps
 
DOSUG GridGain Java Grid Computing Made Simple
DOSUG GridGain Java Grid Computing Made SimpleDOSUG GridGain Java Grid Computing Made Simple
DOSUG GridGain Java Grid Computing Made Simple
 
DOSUG Taking Apache Camel For A Ride
DOSUG Taking Apache Camel For A RideDOSUG Taking Apache Camel For A Ride
DOSUG Taking Apache Camel For A Ride
 
DOSUG Intro to JQuery JavaScript Framework
DOSUG Intro to JQuery JavaScript FrameworkDOSUG Intro to JQuery JavaScript Framework
DOSUG Intro to JQuery JavaScript Framework
 
DOSUG Wicket 101
DOSUG Wicket 101DOSUG Wicket 101
DOSUG Wicket 101
 
EasyMock 101
EasyMock 101EasyMock 101
EasyMock 101
 
DOSUG XML Beans overview by Om Sivanesian
DOSUG XML Beans overview by Om SivanesianDOSUG XML Beans overview by Om Sivanesian
DOSUG XML Beans overview by Om Sivanesian
 
DOSUG Tech Overview of XAware
DOSUG Tech Overview of XAwareDOSUG Tech Overview of XAware
DOSUG Tech Overview of XAware
 

Recently uploaded

Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 

Recently uploaded (20)

Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 

DOSUG Java FX Script From Takeoff To Cruising Altitude

  • 1. JavaFX Script From Takeoff to Cruising Altitude... Matthew J. McCullough Ambient Ideas, LLC
  • 3.
  • 4.
  • 5. A quick review of terms
  • 6.
  • 8. JavaFX Script JavaFX Mobile
  • 9. JavaFX Mobile •Complete Mobile Phone Stack •Think “Google Android”
  • 10. JavaFX Script • Formerly known as F3 •A new Java-like scripting language specifically for RIAs • Think Silverlight, Flex, or AIR
  • 11. 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. ”
  • 12. Hello RIA World Code Demo
  • 13.
  • 15. *Ajax has behavior issues on browsers other than Firefox, Safari, & Internet Explorer *AIR to support Linux at a later date
  • 16. Product Browser Desktop Platforms *Ajax has behavior issues on browsers other than Firefox, Safari, & Internet Explorer *AIR to support Linux at a later date
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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
  • 23.
  • 24. Applets are Back & WebStart is Hot
  • 25. JavaFX Interest Poll JavaFWhat? Not At All Not Very Source: Java.net JavaFX Poll, August 2007 Somewhat Very
  • 26. JavaFX Interest Poll 70% JavaFWhat? Not At All Not Very Source: Java.net JavaFX Poll, August 2007 Somewhat Very
  • 27.
  • 28. Source: TIOBE Programming Community Index for December 2007
  • 29. Source: TIOBE Programming Community Index for December 2007
  • 30.
  • 34.
  • 35. Consumer JRE Size •Current JRE download is 12MB •Reduced Footprint through Java SE 6 Update N •Goal of 2MB
  • 36. Consumer JRE Size Idea Source: Danny Coward, JAZOON 07, Zurich
  • 37. 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
  • 38. 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
  • 39.
  • 42. Interpreted ‣ Starting point for language ‣ Proof of Concept only ‣ In process of deprecation ‣ But has current IDE Support
  • 43. Compiled ‣ Official language tool, javafxc ‣ Built on top of javac ‣ Open Source ‣ Work In Progress, but very usable
  • 44. Bind Operator ‣ 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
  • 45.
  • 47. Threads ‣ DO, DOLATER currently in interpreter
  • 48. Threads “(Working on SwingWorker wrapper in compiler) so it is as easy (possibly easier) to use as AJAX's XMLHttpRequest” -Tom Ball
  • 49. The Compatibilty Secret ‣ Swing based rendering on PC devices ‣ Other rendering engine for smaller devices such as Blu-Ray
  • 50. SceneGraph Effect ‣ Objectifying nodes Composite Node ‣ Binding nodes together ‣ Adding behavior to TextField Box composite nodes ‣ Standalone Java library Radial Gradient SimpleLabel
  • 51. JavaFX 2D Tutorial Code Demo
  • 52. Animation ‣ Interpreted: picks.opacity = [0, .01..1] dur 1000 linear ‣ Compiled: Key frames, timeline
  • 53. Animation As many as 500 lines of Swing code equivalent to 10 of JavaFX
  • 54. Keyframe Animation ‣ Next step in JavaFX animation ‣ Advanced capabilities ‣ Currently in compiler in rough state
  • 57. JavaFX 2D Tutorial Code Demo
  • 58. Java3D’s Successor “ 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... Source: http://forums.java.net/jive/thread.jspa?threadID=36022&tstart=0
  • 59.
  • 61. The Perfect Blend •Leverages all existing Java libraries •Retro-capable back to JRE 1.5 •Browser, Desktop, and Phone •Groovy, JRuby, Scala, Jaskell, Jython
  • 62. Mix & Match Groovy Code Demo
  • 63.
  • 64. IDEs ‣ NetBeans ‣ Eclipse ‣ IntelliJ ‣ ReportMill
  • 66. Previewing Results ‣ Live preview of code changes ‣ No compile cycle delay for testing ‣ But uses Interpreter...
  • 68. ReportMill JFXBuilder •Most advanced demos •Representative of future tools from Sun
  • 69.
  • 71.
  • 73. “ Sun’s JavaFX Tools are turning the workflow sideways ” James Gosling Source: http://www.regdeveloper.co.uk/2008/01/24/javafx_tools_adobe/
  • 74. 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/
  • 75. 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/
  • 76.
  • 77. Q&A
  • 78. Q&A Email questions to: MatthewM@AmbientIdeas.com Slides & Source Code at: www.AmbientIdeas.com/engineering/engineering-training.html
  • 79.
  • 80. Resources •James Weaver’s JavaFX Blog http://learnjavafx.typepad.com •Sun JavaFX Script Homepage http://www.sun.com/software/javafx/script/index.jsp •ReportMill JFXBuilder http://www.reportmill.com/jfx/ •Planet JFX http://jfx.wikia.com/wiki/Main_Page
  • 81. Resources •JavaFX Language Reference, Nightly Build http://openjfx.java.sun.com/current-build/doc/JavaFX-Language.html •Project SceneGraph https://scenegraph.dev.java.net/ •Comparing Flex and Ajax Dev Models http://www.adobe.com/newsletters/edge/february2008/articles/article4/ •Swinging in Groovy http://groovy.dzone.com/tips/swinging-groovy-fun
  • 82. Quotes •Rich Green @ Java One San Fran •“Meant for building Rich Internet Applications (RIAs)” •“For content professionals” •“All based on Swing and Java 2D”
  • 83. 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
  • 84. Quotes •Chris Oliver, creator of JavaFX Script • Created Motorola equivalent site in 3 days