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

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
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
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
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
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
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 

Recently uploaded (20)

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!
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
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!
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
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
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 

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