On March 18th 2014, Java 8 was officially released. AMIS and First8 joined forces for this occasion , organizing a launch event for the Dutch Java Community. This presentation provides a strategic overview of where Java is currently at. It discusses the history of Java, developments in recent years and resulting key themes for Java 8. It also briefly touches upon the near future, beyond Java 8.
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