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
                                                  Somewhat
      Source: Java.net JavaFX Poll, August 2007

                                                  Very
JavaFX Interest Poll



70%                                               JavaFWhat?
                                                  Not At All
                                                  Not Very
                                                  Somewhat
      Source: Java.net JavaFX Poll, August 2007

                                                  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
‣                                          Radial
    Standalone Java library                                SimpleLabel
                                          Gradient
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

What's hot (6)

Development Workshop on ET1, Android and Motorola RhoElements
Development Workshop on ET1, Android and Motorola RhoElementsDevelopment Workshop on ET1, Android and Motorola RhoElements
Development Workshop on ET1, Android and Motorola RhoElements
 
Entando datasheet
Entando datasheetEntando datasheet
Entando datasheet
 
01 asp.net session01
01 asp.net session0101 asp.net session01
01 asp.net session01
 
13 asp.net session19
13 asp.net session1913 asp.net session19
13 asp.net session19
 
Flex and Java
Flex and JavaFlex and Java
Flex and Java
 
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
 

Similar to Java FX Script - From Takeoff To Cruising Altitude

The Evolution of the Flash Platform
The Evolution of the Flash PlatformThe Evolution of the Flash Platform
The Evolution of the Flash Platform
Peter Elst
 
Максим Ткаченко "Flash platform: Tools, Frameworks, Clients"
Максим Ткаченко "Flash platform: Tools, Frameworks, Clients"Максим Ткаченко "Flash platform: Tools, Frameworks, Clients"
Максим Ткаченко "Flash platform: Tools, Frameworks, Clients"
Lviv Startup Club
 
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
mozillaegypt
 
Flash/ActionScript
Flash/ActionScriptFlash/ActionScript
Flash/ActionScript
guestc0b52c5
 
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
Joseph Labrecque
 
Flash platform introduction
Flash platform introductionFlash platform introduction
Flash platform introduction
atomlin
 

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

The Evolution of the Flash Platform
The Evolution of the Flash PlatformThe Evolution of the Flash Platform
The Evolution of the Flash Platform
 
AN INTRODUCTION TO APACHE FLEX
AN INTRODUCTION TO APACHE FLEXAN INTRODUCTION TO APACHE FLEX
AN INTRODUCTION TO APACHE FLEX
 
Adobe flex
Adobe flexAdobe flex
Adobe flex
 
Максим Ткаченко "Flash platform: Tools, Frameworks, Clients"
Максим Ткаченко "Flash platform: Tools, Frameworks, Clients"Максим Ткаченко "Flash platform: Tools, Frameworks, Clients"
Максим Ткаченко "Flash platform: Tools, Frameworks, Clients"
 
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
 
Flex multi-screen development
Flex multi-screen developmentFlex multi-screen development
Flex multi-screen development
 
Adobe AIR Seminar
Adobe AIR SeminarAdobe AIR Seminar
Adobe AIR Seminar
 
Flash/ActionScript
Flash/ActionScriptFlash/ActionScript
Flash/ActionScript
 
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
 
Flash platform introduction
Flash platform introductionFlash platform introduction
Flash platform introduction
 
Adobe flex an overview
Adobe flex  an overviewAdobe flex  an overview
Adobe flex an overview
 
Adobe Flex: Creating Widgets for the Desktop and Web
Adobe Flex: Creating Widgets for the Desktop and WebAdobe Flex: Creating Widgets for the Desktop and Web
Adobe Flex: Creating Widgets for the Desktop and Web
 
Flex Air Intro
Flex Air IntroFlex Air Intro
Flex Air Intro
 
Adobe AIR Programming to Desktop and Mobile
Adobe AIR Programming to Desktop and MobileAdobe AIR Programming to Desktop and Mobile
Adobe AIR Programming to Desktop and Mobile
 
Flex Introduction
Flex Introduction Flex Introduction
Flex Introduction
 
Firefox OS
Firefox OSFirefox OS
Firefox OS
 
Making Money with Adobe AIR
Making Money with Adobe AIRMaking Money with Adobe AIR
Making Money with Adobe AIR
 
Adobe Flex builder by elmagnif
Adobe Flex builder  by elmagnifAdobe Flex builder  by elmagnif
Adobe Flex builder by elmagnif
 
iPhone Web Development
iPhone Web DevelopmentiPhone Web Development
iPhone Web Development
 
Apache Flex: Overview
Apache Flex: OverviewApache Flex: Overview
Apache Flex: Overview
 

More from Matthew McCullough

More from Matthew McCullough (20)

Using Git and GitHub Effectively at Emerge Interactive
Using Git and GitHub Effectively at Emerge InteractiveUsing Git and GitHub Effectively at Emerge Interactive
Using Git and GitHub Effectively at Emerge Interactive
 
All About GitHub Pull Requests
All About GitHub Pull RequestsAll About GitHub Pull Requests
All About GitHub Pull Requests
 
Adam Smith Builds an App
Adam Smith Builds an AppAdam Smith Builds an App
Adam Smith Builds an App
 
Git's Filter Branch Command
Git's Filter Branch CommandGit's Filter Branch Command
Git's Filter Branch Command
 
Git Graphs, Hashes, and Compression, Oh My
Git Graphs, Hashes, and Compression, Oh MyGit Graphs, Hashes, and Compression, Oh My
Git Graphs, Hashes, and Compression, Oh My
 
Git and GitHub at the San Francisco JUG
 Git and GitHub at the San Francisco JUG Git and GitHub at the San Francisco JUG
Git and GitHub at the San Francisco JUG
 
Finding Things in Git
Finding Things in GitFinding Things in Git
Finding Things in Git
 
Git and GitHub for RallyOn
Git and GitHub for RallyOnGit and GitHub for RallyOn
Git and GitHub for RallyOn
 
Migrating from Subversion to Git and GitHub
Migrating from Subversion to Git and GitHubMigrating from Subversion to Git and GitHub
Migrating from Subversion to Git and GitHub
 
Git Notes and GitHub
Git Notes and GitHubGit Notes and GitHub
Git Notes and GitHub
 
Intro to Git and GitHub
Intro to Git and GitHubIntro to Git and GitHub
Intro to Git and GitHub
 
Build Lifecycle Craftsmanship for the Transylvania JUG
Build Lifecycle Craftsmanship for the Transylvania JUGBuild Lifecycle Craftsmanship for the Transylvania JUG
Build Lifecycle Craftsmanship for the Transylvania JUG
 
Git Going for the Transylvania JUG
Git Going for the Transylvania JUGGit Going for the Transylvania JUG
Git Going for the Transylvania JUG
 
Transylvania JUG Pre-Meeting Announcements
Transylvania JUG Pre-Meeting AnnouncementsTransylvania JUG Pre-Meeting Announcements
Transylvania JUG Pre-Meeting Announcements
 
Game Theory for Software Developers at the Boulder JUG
Game Theory for Software Developers at the Boulder JUGGame Theory for Software Developers at the Boulder JUG
Game Theory for Software Developers at the Boulder JUG
 
Cascading Through Hadoop for the Boulder JUG
Cascading Through Hadoop for the Boulder JUGCascading Through Hadoop for the Boulder JUG
Cascading Through Hadoop for the Boulder JUG
 
JQuery Mobile
JQuery MobileJQuery Mobile
JQuery Mobile
 
R Data Analysis Software
R Data Analysis SoftwareR Data Analysis Software
R Data Analysis Software
 
Please, Stop Using Git
Please, Stop Using GitPlease, Stop Using Git
Please, Stop Using Git
 
Dr. Strangedev
Dr. StrangedevDr. Strangedev
Dr. Strangedev
 

Recently uploaded

Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
KarakKing
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
ciinovamais
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
AnaAcapella
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
QucHHunhnh
 

Recently uploaded (20)

ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 

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 Somewhat Source: Java.net JavaFX Poll, August 2007 Very
  • 26. JavaFX Interest Poll 70% JavaFWhat? Not At All Not Very Somewhat Source: Java.net JavaFX Poll, August 2007 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 ‣ Radial Standalone Java library SimpleLabel Gradient
  • 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