SlideShare uma empresa Scribd logo
1 de 19
Evolution of the Java Client
Nandini Ramani
Community Leader OpenJFX
Co-Chair W3C SVG WG
Sun Microsystems., Inc.
Rich Integrated Internet Clients

          Terminal    Client/Server      Web       Rich Internet          Integrated
         Applications Applications    Applications Applications          Rich Clients
                                                               Local Services & Data
                                                               Richness / Interactivity
Client                                                         Client Integration
                                                               Client / Browser Applicability




                                                         Web as a Platform


Server                                              Complexity Management
                                                    Security / Reliability
                                                    Management
                                                    Consolidation



                                                                                    TIME


                                                                                                2
In 2010 ...
• 3G Advanced Phone Devices surpass PCs as the dominant
  connection to the Internet (Forrester 2006)
• Global Media and Entertainment Market reaches
  $1.83 Trillion driven by online / digital revolution (PWC 2006)
• China will be the largest market for PCs (Forrester 2005)
• Digital Music Sales account for 40% of
  Recording Industry (iSuppli 2006)
• 12% of the global handset population will be TV
  capable with over 100 Million new Subscribers (iSuppli 2006)
• Content comes from ISVs and SPs, not operators' portals
• Nearly all applications “phone home” for updates
                                                                    3
We've Done it Before...




                JavaFX


     ...And We're Doing it Again
                                   4
Designing for Content Authoring
The Big Picture

              Home          JavaFX
 Devices                               Desktop




                                                               Content Authoring Tools
           Entertainment     Mobile




                                                                    JavaFX Script
                                                 Interactive
                                                  Content

                                                   JavaFX
                                                 Framework
                                      2D/3D
                           AGUI
           PBP
SVG/MSA

CLDC       CDC             CDC        SE
                                                                                     5
Before JavaFX
• Why does it take a long time to write GUI
  programs?
• How can we avoid the “Ugly Java technology GUI”
  stereotype?
• And how can I avoid having an enormous mass of
  listener patterns?
• Gridbag anyone ?



                                                    6
What problem does it solve?
• How can we make GUI development more
  efficient ?
• GUI development is a collaboration between
  content designers, graphic artists, and programmers
• The main bottleneck in this process appears to be
  us—the programmers—and not the content
  designers or graphic artists
• But what exactly is making us inefficient?


                                                        7
The “Ugly” Java GUI

• Part of the problem is Swing
  > AWT/Swing container/component hierarchy is a tree of rectangular
     (mostly gray) boxes
  > If all you do is compose Swing components together
       – the result is typically the Ugly Java technology GUI
  > Same problem exists with other toolkits, e.g., GTK, VB
• UI Designers and Swing programmers are using different building
  blocks
  > UI Designers compose designs in tools like Photoshop and
     Illustrator
  > The building blocks they use have direct analogs in Java 2D API,
     but not necessarily in Swing
                                                                       8
Java2D++

• To match the designs of UI designers requires using Java 2D API
• But Java 2D API doesn't have compositional behavior
   > The barrier to entry for many Java code programmers is too high
      (i.e., other than Romain Guy)
• In addition to Swing Components, JavaFX includes SVG-like
  interfaces to Java 2D API as first-class elements which can be
  composed together into higher-level components.
   > JavaFX allows declarative expression of this composition




                                                                       9
JavaFX Script
Programming Language for the Java platform
  > Object-oriented
  > Declarative Syntax
  > Statically-typed + type-inference
  > Automatic data binding
  > Extensive Widget library encompassing Swing
  > and Java 2D™ API
  > Development tools including NetBeans™ and
    Eclipse IDE plugins


                                                  10
JavaFX Script
• Procedural update language with Java-like control
  structures and the update syntax (insert/delete) from
  XQuery
• For UI designers convenience:
  > Cryptic Java operators (!=, !, &&, ||, ?:) were replaced
    with more well-known equivalents (<>, not, and, or,
    if/then/else)
  > Balance between having type declarations for readability
    and having the option of omitting them without hurting
    ability to understand the code


                                                               11
JavaFX Script – A Simple Comparison
In JavaFX Script                                    In Java
                                                      Main guitar class 
   picks.opacity = [0, .01 .. 1 ] dur 1000 linear
                                                             guitarAnimationThread = new StringOpThread();
                                                             ......
                                                             ......
                                                             if (guitarAnimationThread != null) {
                                                                guitarAnimationThread.run();
                                                             }
In Java                                                      .........

(SwingLabs Timing Framework)                          StringOpThread class
                                                             ...........
                                                          public void run() {
                                                                 opacityBegin = 0.01;
 public void class Guitar {
                                                             opacityEnd = 1.0;
     private GuitarPick pick = ...;
                                                                 opacityIncreStep = 0.02;
     public Guitar() {                                           opacitySleep = 2;
         pick.setOpacity(.5f);
         Animator a =                                         for(currOpacity = opacityBegin; 
           PropertySetter.createAnimator(                           currOpacity < opacityEnd;   
                                                                      currOpacity+=opacityIncreStep) {
             300, pick, quot;opacityquot;, .5f, 1.0f);
                                                                setPickOpacity();
         MouseTrigger.addTrigger(pick, a,
                                                                repaint();
             MouseTriggerEvent.ENTER, true);
                                                                try {
     }                                                            thread.sleep(opacitySleep);
 }                                                              } catch (InterruptedException e) { }


                                                                                                             12
Data Binding in JavaFX
• Cause and Effect—Responding to change
• The JavaFX bind operator—Allows dynamic
  content to be expressed declaratively
• Dependency-based evaluation of any
  expression
• Automated by the system—Rather than
  manually wired by the programmer
• You just declare dependencies and the
  JavaFX runtime takes care of performing
  updates when things change
• Eliminates listener patterns
                                            13
Benefits of static-typing

• High-quality, compile-time error reporting
• High-quality IDE support
  > Code-completion
  > Searching
  > Refactoring
• Efficient compilation



                                               14
Consumer JRE
• Quickstarter: Radically reduce the startup time for Java applications
  and applets.
• Java Kernel: Reduce the time-to-install-and-launch when the user
  needs to install the JRE in order to run an application.
• Deployment Toolkit: Enable easy detection and installation of the
  JRE.
• Installer Improvements: Improve the user experience of installation.
• Windows Graphics Performance: Enable default graphics
  acceleration for simple and advanced 2D rendering.
• Nimbus Look & Feel : Release a new cross-platform look & feel
  based on Synth.
• http://weblogs.java.net/blog/chet/archive/2007/05/consumer_jre_le.html

                                                                           15
Java Plug-In
• Today
 > Robust mechanism to support Java content in the browser
 > Java <-> JavaScript Communication on all browsers
 > Access to the DOM
    – http://iris.dev.java.net/ : AJAX-like web app built with Java
 > Easy to deploy 3D content as Applets
    – JNLPAppletLauncher: http://applet-launcher.dev.java.net
• Tomorrow
 > Will enable deployment of more sophisticated Applets
 > Control over heap size and low-level JVM command line
   arguments
 > Unification between Java Web Start and Java Plug-In
    – Using JNLP as standard deployment mechanism
                                                                      16
Summary
    JavaFX is a family of products and technologies
•
    JavaFX Compiler development on openjfx.org
•
    JavaFX Script simplifies GUI programming
•
    More coming, watch this space
•
        Ease of deployment
    >
        Consumer, modular JRE
    >
        JavaFX Mobile
    >
        JavaFX Tools
    >



                                                      17
Further Information

 http://openjfx.org
 http://www.sun.com/javafx
 http://blogs.sun.com/chrisoliver
 http://blogs.sun.com/brewin
 http://iris.dev.java.net
 http://weblogs.java.net/blog/chet
 http://jfx.wikia.com

                                     18
JavaFX
Nandini.Ramani@sun.com

Mais conteúdo relacionado

Mais procurados

Jruby synergy-of-ruby-and-java
Jruby synergy-of-ruby-and-javaJruby synergy-of-ruby-and-java
Jruby synergy-of-ruby-and-javaKeith Bennett
 
Performance Improvements in Browsers
Performance Improvements in BrowsersPerformance Improvements in Browsers
Performance Improvements in Browsersjeresig
 
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?Julian Robichaux
 
DNUG Webcast: IBM Notes V10 Performance Boost
DNUG Webcast: IBM Notes V10 Performance BoostDNUG Webcast: IBM Notes V10 Performance Boost
DNUG Webcast: IBM Notes V10 Performance BoostChristoph Adler
 
PipelineAI Optimizes Your Enterprise AI Pipeline from Distributed Training to...
PipelineAI Optimizes Your Enterprise AI Pipeline from Distributed Training to...PipelineAI Optimizes Your Enterprise AI Pipeline from Distributed Training to...
PipelineAI Optimizes Your Enterprise AI Pipeline from Distributed Training to...Chris Fregly
 
From Ant to Maven to Gradle a tale of CI tools for JVM
From Ant to Maven to Gradle a tale of CI tools for JVMFrom Ant to Maven to Gradle a tale of CI tools for JVM
From Ant to Maven to Gradle a tale of CI tools for JVMBucharest Java User Group
 
High Performance TensorFlow in Production -- Sydney ML / AI Train Workshop @ ...
High Performance TensorFlow in Production -- Sydney ML / AI Train Workshop @ ...High Performance TensorFlow in Production -- Sydney ML / AI Train Workshop @ ...
High Performance TensorFlow in Production -- Sydney ML / AI Train Workshop @ ...Chris Fregly
 
PipelineAI + TensorFlow AI + Spark ML + Kuberenetes + Istio + AWS SageMaker +...
PipelineAI + TensorFlow AI + Spark ML + Kuberenetes + Istio + AWS SageMaker +...PipelineAI + TensorFlow AI + Spark ML + Kuberenetes + Istio + AWS SageMaker +...
PipelineAI + TensorFlow AI + Spark ML + Kuberenetes + Istio + AWS SageMaker +...Chris Fregly
 
Optimizing, Profiling, and Deploying TensorFlow AI Models with GPUs - San Fra...
Optimizing, Profiling, and Deploying TensorFlow AI Models with GPUs - San Fra...Optimizing, Profiling, and Deploying TensorFlow AI Models with GPUs - San Fra...
Optimizing, Profiling, and Deploying TensorFlow AI Models with GPUs - San Fra...Chris Fregly
 
Java ppts unit1
Java ppts unit1Java ppts unit1
Java ppts unit1Priya11Tcs
 
Performance tips for Symfony2 & PHP
Performance tips for Symfony2 & PHPPerformance tips for Symfony2 & PHP
Performance tips for Symfony2 & PHPMax Romanovsky
 
Play Framework: The Basics
Play Framework: The BasicsPlay Framework: The Basics
Play Framework: The BasicsPhilip Langer
 
Zendcon magento101
Zendcon magento101Zendcon magento101
Zendcon magento101Mathew Beane
 
Introduction to Play Framework
Introduction to Play FrameworkIntroduction to Play Framework
Introduction to Play FrameworkWarren Zhou
 
Capistrano deploy Magento project in an efficient way
Capistrano deploy Magento project in an efficient wayCapistrano deploy Magento project in an efficient way
Capistrano deploy Magento project in an efficient waySylvain Rayé
 

Mais procurados (20)

Jruby synergy-of-ruby-and-java
Jruby synergy-of-ruby-and-javaJruby synergy-of-ruby-and-java
Jruby synergy-of-ruby-and-java
 
Performance Improvements in Browsers
Performance Improvements in BrowsersPerformance Improvements in Browsers
Performance Improvements in Browsers
 
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
 
Fastlane - ATC 2016
Fastlane - ATC 2016Fastlane - ATC 2016
Fastlane - ATC 2016
 
DNUG Webcast: IBM Notes V10 Performance Boost
DNUG Webcast: IBM Notes V10 Performance BoostDNUG Webcast: IBM Notes V10 Performance Boost
DNUG Webcast: IBM Notes V10 Performance Boost
 
PipelineAI Optimizes Your Enterprise AI Pipeline from Distributed Training to...
PipelineAI Optimizes Your Enterprise AI Pipeline from Distributed Training to...PipelineAI Optimizes Your Enterprise AI Pipeline from Distributed Training to...
PipelineAI Optimizes Your Enterprise AI Pipeline from Distributed Training to...
 
From Ant to Maven to Gradle a tale of CI tools for JVM
From Ant to Maven to Gradle a tale of CI tools for JVMFrom Ant to Maven to Gradle a tale of CI tools for JVM
From Ant to Maven to Gradle a tale of CI tools for JVM
 
High Performance TensorFlow in Production -- Sydney ML / AI Train Workshop @ ...
High Performance TensorFlow in Production -- Sydney ML / AI Train Workshop @ ...High Performance TensorFlow in Production -- Sydney ML / AI Train Workshop @ ...
High Performance TensorFlow in Production -- Sydney ML / AI Train Workshop @ ...
 
PipelineAI + TensorFlow AI + Spark ML + Kuberenetes + Istio + AWS SageMaker +...
PipelineAI + TensorFlow AI + Spark ML + Kuberenetes + Istio + AWS SageMaker +...PipelineAI + TensorFlow AI + Spark ML + Kuberenetes + Istio + AWS SageMaker +...
PipelineAI + TensorFlow AI + Spark ML + Kuberenetes + Istio + AWS SageMaker +...
 
Optimizing, Profiling, and Deploying TensorFlow AI Models with GPUs - San Fra...
Optimizing, Profiling, and Deploying TensorFlow AI Models with GPUs - San Fra...Optimizing, Profiling, and Deploying TensorFlow AI Models with GPUs - San Fra...
Optimizing, Profiling, and Deploying TensorFlow AI Models with GPUs - San Fra...
 
Swoole Love PHP
Swoole Love PHPSwoole Love PHP
Swoole Love PHP
 
Java ppts unit1
Java ppts unit1Java ppts unit1
Java ppts unit1
 
Performance tips for Symfony2 & PHP
Performance tips for Symfony2 & PHPPerformance tips for Symfony2 & PHP
Performance tips for Symfony2 & PHP
 
Introduction to java programming part 1
Introduction to java programming   part 1Introduction to java programming   part 1
Introduction to java programming part 1
 
Play Framework: The Basics
Play Framework: The BasicsPlay Framework: The Basics
Play Framework: The Basics
 
Zendcon magento101
Zendcon magento101Zendcon magento101
Zendcon magento101
 
Apache Maven In 10 Slides
Apache Maven In 10 SlidesApache Maven In 10 Slides
Apache Maven In 10 Slides
 
Maven tutorial
Maven tutorialMaven tutorial
Maven tutorial
 
Introduction to Play Framework
Introduction to Play FrameworkIntroduction to Play Framework
Introduction to Play Framework
 
Capistrano deploy Magento project in an efficient way
Capistrano deploy Magento project in an efficient wayCapistrano deploy Magento project in an efficient way
Capistrano deploy Magento project in an efficient way
 

Semelhante a Os Ramani

Java Fx Ajaxworld Rags V1
Java Fx Ajaxworld Rags V1Java Fx Ajaxworld Rags V1
Java Fx Ajaxworld Rags V1rajivmordani
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13Fred Sauer
 
Scripting Oracle Develop 2007
Scripting Oracle Develop 2007Scripting Oracle Develop 2007
Scripting Oracle Develop 2007Tugdual Grall
 
Wicket Deliver Your Webapp On Time
Wicket Deliver Your Webapp On TimeWicket Deliver Your Webapp On Time
Wicket Deliver Your Webapp On TimeWill Hoover
 
Programming with JavaFX
Programming with JavaFXProgramming with JavaFX
Programming with JavaFXFulvio Corno
 
Samuel Asher Rivello - PureMVC Hands On Part 2
Samuel Asher Rivello - PureMVC Hands On Part 2Samuel Asher Rivello - PureMVC Hands On Part 2
Samuel Asher Rivello - PureMVC Hands On Part 2360|Conferences
 
IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009Christopher Judd
 
JSUG - Filthy Flex by Christoph Pickl
JSUG - Filthy Flex by Christoph PicklJSUG - Filthy Flex by Christoph Pickl
JSUG - Filthy Flex by Christoph PicklChristoph Pickl
 
Micronaut: A new way to build microservices
Micronaut: A new way to build microservicesMicronaut: A new way to build microservices
Micronaut: A new way to build microservicesLuram Archanjo
 
Applications use in Java GUIThe Java GUI consists of a separate, .pdf
Applications use in Java GUIThe Java GUI consists of a separate, .pdfApplications use in Java GUIThe Java GUI consists of a separate, .pdf
Applications use in Java GUIThe Java GUI consists of a separate, .pdfakshay1213
 
Java vs. Java Script for enterprise web applications - Chris Bailey
Java vs. Java Script for enterprise web applications - Chris BaileyJava vs. Java Script for enterprise web applications - Chris Bailey
Java vs. Java Script for enterprise web applications - Chris BaileyJAXLondon_Conference
 
Core java over view basics introduction by quontra solutions
Core java over view basics introduction by quontra solutionsCore java over view basics introduction by quontra solutions
Core java over view basics introduction by quontra solutionsQUONTRASOLUTIONS
 
What's new in DWR version 3
What's new in DWR version 3What's new in DWR version 3
What's new in DWR version 3Joe Walker
 
Web polyglot programming
Web polyglot programmingWeb polyglot programming
Web polyglot programmingDmitry Buzdin
 
CommunityOneEast 09 - Dynamic Languages: the next big thing for the JVM or an...
CommunityOneEast 09 - Dynamic Languages: the next big thing for the JVM or an...CommunityOneEast 09 - Dynamic Languages: the next big thing for the JVM or an...
CommunityOneEast 09 - Dynamic Languages: the next big thing for the JVM or an...Chris Richardson
 

Semelhante a Os Ramani (20)

Java Fx Ajaxworld Rags V1
Java Fx Ajaxworld Rags V1Java Fx Ajaxworld Rags V1
Java Fx Ajaxworld Rags V1
 
GlassFish v3 Prelude Aquarium Paris
GlassFish v3 Prelude Aquarium ParisGlassFish v3 Prelude Aquarium Paris
GlassFish v3 Prelude Aquarium Paris
 
GlassFish v3 : En Route Java EE 6
GlassFish v3 : En Route Java EE 6GlassFish v3 : En Route Java EE 6
GlassFish v3 : En Route Java EE 6
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
 
Scripting Oracle Develop 2007
Scripting Oracle Develop 2007Scripting Oracle Develop 2007
Scripting Oracle Develop 2007
 
Wicket Deliver Your Webapp On Time
Wicket Deliver Your Webapp On TimeWicket Deliver Your Webapp On Time
Wicket Deliver Your Webapp On Time
 
Resthub lyonjug
Resthub lyonjugResthub lyonjug
Resthub lyonjug
 
Programming with JavaFX
Programming with JavaFXProgramming with JavaFX
Programming with JavaFX
 
Samuel Asher Rivello - PureMVC Hands On Part 2
Samuel Asher Rivello - PureMVC Hands On Part 2Samuel Asher Rivello - PureMVC Hands On Part 2
Samuel Asher Rivello - PureMVC Hands On Part 2
 
IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009
 
JSUG - Filthy Flex by Christoph Pickl
JSUG - Filthy Flex by Christoph PicklJSUG - Filthy Flex by Christoph Pickl
JSUG - Filthy Flex by Christoph Pickl
 
Micronaut: A new way to build microservices
Micronaut: A new way to build microservicesMicronaut: A new way to build microservices
Micronaut: A new way to build microservices
 
Mlocjs buzdin
Mlocjs buzdinMlocjs buzdin
Mlocjs buzdin
 
Applications use in Java GUIThe Java GUI consists of a separate, .pdf
Applications use in Java GUIThe Java GUI consists of a separate, .pdfApplications use in Java GUIThe Java GUI consists of a separate, .pdf
Applications use in Java GUIThe Java GUI consists of a separate, .pdf
 
Java vs. Java Script for enterprise web applications - Chris Bailey
Java vs. Java Script for enterprise web applications - Chris BaileyJava vs. Java Script for enterprise web applications - Chris Bailey
Java vs. Java Script for enterprise web applications - Chris Bailey
 
Core java over view basics introduction by quontra solutions
Core java over view basics introduction by quontra solutionsCore java over view basics introduction by quontra solutions
Core java over view basics introduction by quontra solutions
 
What's new in DWR version 3
What's new in DWR version 3What's new in DWR version 3
What's new in DWR version 3
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Web polyglot programming
Web polyglot programmingWeb polyglot programming
Web polyglot programming
 
CommunityOneEast 09 - Dynamic Languages: the next big thing for the JVM or an...
CommunityOneEast 09 - Dynamic Languages: the next big thing for the JVM or an...CommunityOneEast 09 - Dynamic Languages: the next big thing for the JVM or an...
CommunityOneEast 09 - Dynamic Languages: the next big thing for the JVM or an...
 

Mais de oscon2007

J Ruby Whirlwind Tour
J Ruby Whirlwind TourJ Ruby Whirlwind Tour
J Ruby Whirlwind Touroscon2007
 
Solr Presentation5
Solr Presentation5Solr Presentation5
Solr Presentation5oscon2007
 
Os Fitzpatrick Sussman Wiifm
Os Fitzpatrick Sussman WiifmOs Fitzpatrick Sussman Wiifm
Os Fitzpatrick Sussman Wiifmoscon2007
 
Performance Whack A Mole
Performance Whack A MolePerformance Whack A Mole
Performance Whack A Moleoscon2007
 
Os Lanphier Brashears
Os Lanphier BrashearsOs Lanphier Brashears
Os Lanphier Brashearsoscon2007
 
Os Fitzpatrick Sussman Swp
Os Fitzpatrick Sussman SwpOs Fitzpatrick Sussman Swp
Os Fitzpatrick Sussman Swposcon2007
 
Os Berlin Dispelling Myths
Os Berlin Dispelling MythsOs Berlin Dispelling Myths
Os Berlin Dispelling Mythsoscon2007
 
Os Keysholistic
Os KeysholisticOs Keysholistic
Os Keysholisticoscon2007
 
Os Jonphillips
Os JonphillipsOs Jonphillips
Os Jonphillipsoscon2007
 
Os Urnerupdated
Os UrnerupdatedOs Urnerupdated
Os Urnerupdatedoscon2007
 

Mais de oscon2007 (20)

J Ruby Whirlwind Tour
J Ruby Whirlwind TourJ Ruby Whirlwind Tour
J Ruby Whirlwind Tour
 
Solr Presentation5
Solr Presentation5Solr Presentation5
Solr Presentation5
 
Os Borger
Os BorgerOs Borger
Os Borger
 
Os Harkins
Os HarkinsOs Harkins
Os Harkins
 
Os Fitzpatrick Sussman Wiifm
Os Fitzpatrick Sussman WiifmOs Fitzpatrick Sussman Wiifm
Os Fitzpatrick Sussman Wiifm
 
Os Bunce
Os BunceOs Bunce
Os Bunce
 
Yuicss R7
Yuicss R7Yuicss R7
Yuicss R7
 
Performance Whack A Mole
Performance Whack A MolePerformance Whack A Mole
Performance Whack A Mole
 
Os Fogel
Os FogelOs Fogel
Os Fogel
 
Os Lanphier Brashears
Os Lanphier BrashearsOs Lanphier Brashears
Os Lanphier Brashears
 
Os Tucker
Os TuckerOs Tucker
Os Tucker
 
Os Fitzpatrick Sussman Swp
Os Fitzpatrick Sussman SwpOs Fitzpatrick Sussman Swp
Os Fitzpatrick Sussman Swp
 
Os Furlong
Os FurlongOs Furlong
Os Furlong
 
Os Berlin Dispelling Myths
Os Berlin Dispelling MythsOs Berlin Dispelling Myths
Os Berlin Dispelling Myths
 
Os Kimsal
Os KimsalOs Kimsal
Os Kimsal
 
Os Pruett
Os PruettOs Pruett
Os Pruett
 
Os Alrubaie
Os AlrubaieOs Alrubaie
Os Alrubaie
 
Os Keysholistic
Os KeysholisticOs Keysholistic
Os Keysholistic
 
Os Jonphillips
Os JonphillipsOs Jonphillips
Os Jonphillips
 
Os Urnerupdated
Os UrnerupdatedOs Urnerupdated
Os Urnerupdated
 

Último

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 

Último (20)

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 

Os Ramani

  • 1. Evolution of the Java Client Nandini Ramani Community Leader OpenJFX Co-Chair W3C SVG WG Sun Microsystems., Inc.
  • 2. Rich Integrated Internet Clients Terminal Client/Server Web Rich Internet Integrated Applications Applications Applications Applications Rich Clients Local Services & Data Richness / Interactivity Client Client Integration Client / Browser Applicability Web as a Platform Server Complexity Management Security / Reliability Management Consolidation TIME 2
  • 3. In 2010 ... • 3G Advanced Phone Devices surpass PCs as the dominant connection to the Internet (Forrester 2006) • Global Media and Entertainment Market reaches $1.83 Trillion driven by online / digital revolution (PWC 2006) • China will be the largest market for PCs (Forrester 2005) • Digital Music Sales account for 40% of Recording Industry (iSuppli 2006) • 12% of the global handset population will be TV capable with over 100 Million new Subscribers (iSuppli 2006) • Content comes from ISVs and SPs, not operators' portals • Nearly all applications “phone home” for updates 3
  • 4. We've Done it Before... JavaFX ...And We're Doing it Again 4
  • 5. Designing for Content Authoring The Big Picture Home JavaFX Devices Desktop Content Authoring Tools Entertainment Mobile JavaFX Script Interactive Content JavaFX Framework 2D/3D AGUI PBP SVG/MSA CLDC CDC CDC SE 5
  • 6. Before JavaFX • Why does it take a long time to write GUI programs? • How can we avoid the “Ugly Java technology GUI” stereotype? • And how can I avoid having an enormous mass of listener patterns? • Gridbag anyone ? 6
  • 7. What problem does it solve? • How can we make GUI development more efficient ? • GUI development is a collaboration between content designers, graphic artists, and programmers • The main bottleneck in this process appears to be us—the programmers—and not the content designers or graphic artists • But what exactly is making us inefficient? 7
  • 8. The “Ugly” Java GUI • Part of the problem is Swing > AWT/Swing container/component hierarchy is a tree of rectangular (mostly gray) boxes > If all you do is compose Swing components together – the result is typically the Ugly Java technology GUI > Same problem exists with other toolkits, e.g., GTK, VB • UI Designers and Swing programmers are using different building blocks > UI Designers compose designs in tools like Photoshop and Illustrator > The building blocks they use have direct analogs in Java 2D API, but not necessarily in Swing 8
  • 9. Java2D++ • To match the designs of UI designers requires using Java 2D API • But Java 2D API doesn't have compositional behavior > The barrier to entry for many Java code programmers is too high (i.e., other than Romain Guy) • In addition to Swing Components, JavaFX includes SVG-like interfaces to Java 2D API as first-class elements which can be composed together into higher-level components. > JavaFX allows declarative expression of this composition 9
  • 10. JavaFX Script Programming Language for the Java platform > Object-oriented > Declarative Syntax > Statically-typed + type-inference > Automatic data binding > Extensive Widget library encompassing Swing > and Java 2D™ API > Development tools including NetBeans™ and Eclipse IDE plugins 10
  • 11. JavaFX Script • Procedural update language with Java-like control structures and the update syntax (insert/delete) from XQuery • For UI designers convenience: > Cryptic Java operators (!=, !, &&, ||, ?:) were replaced with more well-known equivalents (<>, not, and, or, if/then/else) > Balance between having type declarations for readability and having the option of omitting them without hurting ability to understand the code 11
  • 12. JavaFX Script – A Simple Comparison In JavaFX Script In Java Main guitar class  picks.opacity = [0, .01 .. 1 ] dur 1000 linear        guitarAnimationThread = new StringOpThread();        ......        ......        if (guitarAnimationThread != null) {           guitarAnimationThread.run();        } In Java        ......... (SwingLabs Timing Framework) StringOpThread class        ...........     public void run() {            opacityBegin = 0.01; public void class Guitar {        opacityEnd = 1.0;     private GuitarPick pick = ...;            opacityIncreStep = 0.02;     public Guitar() {            opacitySleep = 2;         pick.setOpacity(.5f);         Animator a =         for(currOpacity = opacityBegin;   PropertySetter.createAnimator(               currOpacity < opacityEnd;                   currOpacity+=opacityIncreStep) { 300, pick, quot;opacityquot;, .5f, 1.0f);           setPickOpacity();         MouseTrigger.addTrigger(pick, a,           repaint(); MouseTriggerEvent.ENTER, true);           try {     }             thread.sleep(opacitySleep); }           } catch (InterruptedException e) { } 12
  • 13. Data Binding in JavaFX • Cause and Effect—Responding to change • The JavaFX bind operator—Allows dynamic content to be expressed declaratively • Dependency-based evaluation of any expression • Automated by the system—Rather than manually wired by the programmer • You just declare dependencies and the JavaFX runtime takes care of performing updates when things change • Eliminates listener patterns 13
  • 14. Benefits of static-typing • High-quality, compile-time error reporting • High-quality IDE support > Code-completion > Searching > Refactoring • Efficient compilation 14
  • 15. Consumer JRE • Quickstarter: Radically reduce the startup time for Java applications and applets. • Java Kernel: Reduce the time-to-install-and-launch when the user needs to install the JRE in order to run an application. • Deployment Toolkit: Enable easy detection and installation of the JRE. • Installer Improvements: Improve the user experience of installation. • Windows Graphics Performance: Enable default graphics acceleration for simple and advanced 2D rendering. • Nimbus Look & Feel : Release a new cross-platform look & feel based on Synth. • http://weblogs.java.net/blog/chet/archive/2007/05/consumer_jre_le.html 15
  • 16. Java Plug-In • Today > Robust mechanism to support Java content in the browser > Java <-> JavaScript Communication on all browsers > Access to the DOM – http://iris.dev.java.net/ : AJAX-like web app built with Java > Easy to deploy 3D content as Applets – JNLPAppletLauncher: http://applet-launcher.dev.java.net • Tomorrow > Will enable deployment of more sophisticated Applets > Control over heap size and low-level JVM command line arguments > Unification between Java Web Start and Java Plug-In – Using JNLP as standard deployment mechanism 16
  • 17. Summary JavaFX is a family of products and technologies • JavaFX Compiler development on openjfx.org • JavaFX Script simplifies GUI programming • More coming, watch this space • Ease of deployment > Consumer, modular JRE > JavaFX Mobile > JavaFX Tools > 17
  • 18. Further Information http://openjfx.org http://www.sun.com/javafx http://blogs.sun.com/chrisoliver http://blogs.sun.com/brewin http://iris.dev.java.net http://weblogs.java.net/blog/chet http://jfx.wikia.com 18