6. 7
2007 Heyday of Java
• JavaOne biggest developer event in the world
• Java both Hot and Cool!
• Java headed for dominance on any device
– Mobile options open
• FX revolution started (=> TV, Blu-Ray, designers)
• Gaming and Virtual Worlds (Wonderland)
• Java to become open source (OpenJDK)
• JAVA was the Nasdaq Stock Symbol for Sun
8. 9
Dark clouds were gathering
took forever…
Smartphone and
Tablet revolution –
closed platforms
Android
(Dalvik VM) left
Java fold
New Kids on the Block -
scripting languages,
anything new/hot
How do you make
money with Java tm?
13. 15
What happened in recent
years?
• JVMs
• JVM languages
• JVM platforms (WOR-oqafp)
• FX
• Java Community
– Vendors
– The rest of us
– Kids
14. 16
Many JVMs
• Zing
• Zulu
• BEA JRockit
• Sun HotSpot
• Apache Harmony
• IBM J9 VM
• Kaffe
• Jikes RVM
• JamVM
• Excelsior JET
• IcedTea
• OpenJDK
15. 17
Oracle’s Converged JVM
roadmap
• Merge Sun HotSpot & BEA JRockit => Oracle HotSpot JVM
– Use HotSpot as the basis for the future JVM
– Cherry-pick features and port
– Same JVM for everything from embedded all the way up to
enterprise
• Make JRockit tooling available with unified
HotSpot JVM
– Mission Control & Flight Recorder (7u40)
17. 19
Oracle’s platform roadmap
• Target platforms are
– Desktop Client
– Enterprise Server
– Mobile (feature phones) and Embedded devices
• No [plans for] JVM on iOS or other tablets or smart phones
– However: Embedded JVM in iOS and Android Apps
• No Java Applet browser plugin
– [please] No more Applets!
18. Java 7 on OS X and
Linux/ARM
Ethernet
USB
SD
Card
Audio RCA
Video
General
Purpose I/O
Power
HDMI
Image source: Boston Ltd., UK
20. Java SE 8 Compact Profiles
SE Full JRE
Hotspot VM
Lang & Util Base Libraries
Other Base Libraries
Integration Libraries
UI & Toolkits
Optional Components
Hotspot VM
Base Compact1 Classes
SE 8 Compact
Profiles
Compact2 Class libraries
Compact3 Class libraries
1
2
3
21. 23
Use cases for Compact Profiles
• Kiosk
• Hand held device
• Home Gateway
• Electronic Tollbooth
• Oracle Mobile Application Framework
– Generic app for iOS & Android with embedded JVM for
deploying custom Java/Apache Cordova apps
• App Store deployment of Java Client applications
– Windows 8, Apple OSX
22. Java ME 8 Focus
Platform
Footprint
Device
CPU/
GPU/I-O
ARM 7 Cortex M ARM9/11 MIPS32 - ARM Cortex A – PPC - Intel Atom
50KB-1MB
1MB-10MB
10MB-100MB Java ME
Java SE
Java
Card
23. Java SE 8
• Description
- CLDC 8 is an long-anticipated, evolutionary update for CLDC 1.1.1 to bring
the VM, Java language and core API libraries in alignment with Java SE 8
• Key Features
- Synchronize Java SE 8 language features into Java ME
- CLDC 8 is an extended strict subset of Java SE 8
- Introduce developer-friendly Java SE APIs
- Includes updated Generic Connection Framework (GCF) 8
- Virtual Machine update to align with Java SE developer tools
- Remain small and enable footprint optimizations
- Backward binary compatible
- Enable 9+ Million Java developers to develop for Java Embedded
CLDC 8 High-Level Overview
CLDC 8
Bringing The World of Java SE to Java ME
26. 30
Java 8 ‘theme’:
Interoperability on JVM or The Polyglot JVM
• Easier interoperability between Java and other JVM languages
• Project Nashorn: very fast JavaScript engine embedded in JVM
– Available from Java code to execute JavaScript
– Allows JavaScript to invoke Java as well
– “Oracle is in the process of developing node.jar, a java implementation of node.js to
also run on the JVM via Nashorn”
27. 31
Story of FX
• Started as F3 by Chris Oliver
• Announced at JavaOne 2007
– And every JavaOne since
• Java FX Script 1.0 December 2008
• 2.0 release October 2011
– (no more FX Script)
• FX 8 – March 2014
– Included in OpenJDK
– To replace Swing
– On desktop & embedded
34. 38
Java 8
• Java 8 - Statements/directions/themes
– Converged JVM
– JavaFX merged into JDK (deprecate Swing)
– Abandon Java Applets
– Java Client: desktop, embedded (ARM devices); touch screen support (Windows 8)
– Bring SE [Embedded] and ME closer together (CLDC 8 and profiles)
– Interoperability between JVM languages (Nashorn)
• Language Innovation
– Lambda (“closures”) ,
– Collections with Streams API
– Concurrency
– …
35. Java SE - recent timeline
20152013 2014 2016
JDK 8 (Q1 2014)
•Lambda
•JVM Convergence
•JavaScript Interop
•JavaFX 8
•3D API
•Java SE Embedded
support
•Enhanced HTML5 support
7u40
• Java Flight Recorder
• Java Mission Control 5.2
• Java Discovery Protocol
• Native memory tracking
• Local Security Policy
NetBeans IDE 7.3
• New hints and refactoring
• Scene Builder Support NetBeans IDE 8
•JDK 8 support
•Scene Builder 2.0 support
Scene Builder 2.0
•JavaFX 8 support
•Enhanced Java IDE support
7u21
• Java Client Security Enhancements
• App Store Packaging tools
Scene Builder 1.1
• Linux support
37. 41
Beyond Java 8
• Installer/Embedded JVM
• Further language evolution
• JigSaw (Modularity)
• Java on GPU (Graphics Processing Units)
• Cloud
• Interoperability
• No backward compatibility
beyond three versions
for source & target
(7,8,9 – no more Java 5,6)
– Note: Java 8 does not accept
Java 1.4 as a target
38. Java SE/ME/FX Roadmap
20152014 2016
JDK 8 (Q1 2014)
•Lambda
•JVM Convergence
•JavaScript Interop
•JavaFX 8
•3D API
•Java SE Embedded
support
•Enhanced HTML5 support
7u40
• Java Flight Recorder
• Java Mission Control 5.2
• Java Discovery Protocol
• Native memory tracking
• Local Security Policy
JDK 9
•Modularity – Jigsaw
•Interoperability
•Cloud
•Ease of Use
•JavaFX JSR
•Optimizations
IDE 7.3
d refactoring
r Support
NetBeans IDE 8
• JDK 8 support
• Scene Builder 2.0 support
Scene Builder 2.0
• JavaFX 8 support
• Enhanced Java IDE support
NetBeans IDE 9
• JDK 9 support
• Scene Builder 3.0 support
Scene Builder 3.0
• JavaFX 9 support
ecurity Enhancements
ckaging tools
JDK 8u20
• Deterministic G1
• Java Mission Control 6.0
• Improved JRE installer
• App bundling
enhancements
JDK 8u40
Scene Builder 1.1
• Linux support