Javafx 2.0 Dr
Total Page:16
File Type:pdf, Size:1020Kb
1 <Insert Picture Here> JavaFX 2.0 Dr. Stefan Schneider Chief Technologist ISV Engineering The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. 3 JavaFX 2.0 Agenda • Overview <Insert Picture Here> • Details • Architecture • Roadmap 4 What is JavaFX? 5 JavaFX is the evolution of the Java rich client platform, designed to address the needs of today’s and tomorrow’s customers. 6 Who is JavaFX for? 7 Target Developers • Current Java Developers • Former Java Developers • Web Developers • New Developers 8 What makes JavaFX special? 9 JavaFX defines itself as being a well designed, cross platform application development platform. It is fast. It is flexible. It delivers exceptional value to developers and end users. It is competitive. Most importantly, it leverages the massive existing Java eco system. Nobody else offers the complete package – exceptional developer experience, user experience, cross platform development and massive ecosystem. 10 TIOBE Index Popularity of a Language 11 The Java Eco System • Over 9 million Java developers • Java is taught in universities around the globe • Every major company uses Java 12 Value Proposition for Client Java • Leverage existing Java investment • Easier to find and train developers • Reduce risk by reducing complexity 13 Why is JavaFX important? 14 JavaFX encourages companies to use Java on the client and the server. A strong and vibrant client platform retards the growth of competing technologies in enterprise server rooms. JavaFX provides a compelling end-to-end Java solution for enterprises and competes well with other technologies. 15 How about some examples? 16 Demo: Graphics 17 18 19 Details 20 Programming Languages • Java is our primary programming language – Release Java APIs for all of JavaFX – Expose JavaFX Binding, Sequences as Java APIs • Embrace all JVM languages – JRuby, Jython, Scala, Groovy, … – JavaScript • JavaFX Script compiler will not be updated to work with JavaFX 2.0 APIs – Existing JavaFX Script based applications will continue to run 21 APIs and Programming Model • Continuation from JavaFX 1.X product line – We are quite pleased with the scene graph and event model – Most APIs will simply be ported directly to Java – Some APIs will be revisited (e.g. layout) – Existing Controls will all be ported • Embrace more web technology – Update JavaFX CSS to include more from CSS 3 (eventually to be fully spec compliant) – * Use WAI-ARIA for accessibility API – * Make HTML available for rich text in all Text nodes 22 API Design • Hire the best – We’re actively hiring, visit the booth, see me for more info – We have a very good team, good environment, good development methodology, building a great platform! • API Usability Studies – Inflict our APIs on unsuspecting volunteers – Observe their reactions • Release Early Access, Beta builds to partners – Join the JavaFX Partner Program for access to builds • Build blueprints, samples, demos in parallel – Nothing vets an API like building applications 23 Workflows • Developer oriented workflow – Developers write application, produce UI – Use a RAD tool to produce forms apps quickly – Import graphics from Illustrator & Photoshop – Designers style UI using CSS • Designer oriented workflow – Designer produces graphics using professional tools – Developers produce modules (e.g. access web services) – Designer aggregates graphics & code modules & scripts it together using JavaScript or another dynamic language 24 Web Integration • Embed HTML in JavaFX – WebView node in the scene graph is embedded browser – Allow all Text nodes to have HTML content – Seamless DOM integration • Embed JavaFX in HTML – Using traditional plugin technology – Seamless DOM integration – Adapt to use HTML 5 local storage, browser history, etc • Adopt more web standard – CSS, Accessibility, HTML for rich text, … 25 Graphics • 2D and 3D scene graph • Hardware accelerated pipeline – DirectX 9 on Windows XP, Windows Vista – DirectX 11 on Windows 7 – OpenGL on Mac, Linux, Embedded – Software (Java2D) when necessary • Embed in Swing – c.f. Java3D, JOGL – Allows Swing applications to add JavaFX scenes, charts, media, and controls • High Definition Media 26 Controls • Simple, Rich, Useful • High customizable via CSS • Visually appealing • Complete out-of-the-box • Work well with data binding • Work well with tools 27 Performance • Small & fast – Measure static & dynamic footprint, and reduce both – Measure startup time & reduce it – Measure FPS, CPU, GPU for many graphics scenarios – Aggressively refactor making things small and fast • Measure, measure, measure – Engineers write performance tests – Measured on multiple platforms & configurations continuously – Write competitive performance benchmarks for everything we find. You write a blog with a benchmark, we try to compete. 28 Architecture 29 Basic Architecture Developers program to Java & JavaFX APIs the JavaFX APIs. Toolkit Operating system / hardware specific implementations of the platform. Most of this code Graphics is reusable between Pipeline operating systems, but portions of it must be Windowing ported. Target the OS and Hotspot. Plugin based HotSpot / Operating System usage also includes talking to a Browser. 30 Major JavaFX Scene Graph APIs Full set of rich UI controls for a productive Customizable, easy to out of the box Controls Charts use charts. experience. Scenegraph provides convenient programming model for graphical and Scene Graph business applications Super flexible timeline Scenegraph has built-in based animations, support for drag & drop Drag & Drop Animations animating along a path, and simple transitions Support for mouse, Colors, linear and radial keyboard, touch, and Input Events Paints gradients, texture paints input method events Full 2D and 3D Blurs, reflections, drop transforms such as shadows, glows, inner Effects Transforms rotations, translations, shadows, and more and scaling 31 Major JavaFX APIs Local storage for storing Local Storage user data offline, both for desktop and web apps Simple yet powerful threading libraries built on a single reusable Tasks (threading) Task API Web services, database Data Services services, file services, etc 32 Prism Toolkit • Next-generation hardware accelerated graphics – Support OpenGL ES 2, DirectX 9, DirectX 11 – DirectX used on Windows due to superiority of drivers – Falls back to Java2D for software rendering as needed • Full 3D supported for OpenGL and DirectX – Some 3D such as transforms supported with software pipe • Uses next-generation “Glass” library for windowing 33 Prism Toolkit Architecture Diagram Java & JavaFX APIs Prism Toolkit Prism Render Tree Java2D DirectX OGL Glass 34 Deployment Scenarios Ad-hoc Native WebStart Applet Application Application Application Application Jars Jars Jars Jars Launch with Turn into shell script or native Create JNLP Create JNLP executable Jar executable Launch OS Deliver over Embed in web specific WebStart page executable 35 Roadmap 36 JavaFX 2.0 Product Timeline CYQ1 2011 CYQ2 2011 CYQ3 2011 JavaFX 2.0 EA JavaFX 2.0 Beta JavaFX 2.0 GA (Early Access) (General Availability) 37 JavaFX 2.0 Roadmap See http://javafx.com/roadmap for the latest up-to-date roadmap Targets of Opportunity Early Access Beta General Availability • Port JavaFX Script APIs to Java • Multithreading Improvements • Dynamic Footprint Improvements • JavaFX Binding APIs • Focus Management • Static Footprint Improvements • Sequence, Observable List • 3D Transitions • Improved Startup Performance • Hardware Accelerated Graphics • 3D Transforms for 2D Systems • Updated Public Benchmarks • High Performance Transitions • 3D Vector Math • Blueprints & Samples • Triangle • Redesigned Layout Container API • Synch’d Media & Animations • Texture Paint • Grid Layout Container • Prism Capable Plugin • High-def Media • HTML DOM • Rich Text • WebView • CSS Animations • WebEngine & WebSource • TableView Control • Low Latency Audio • SplitView Control • Full Screen Video • TabView Control • Programmatic Media Markers • MediaPlayer Control 38 Q & A 39 40 41.