Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes
-
Upload
lucas-jellema -
Category
Technology
-
view
2.193 -
download
1
description
Transcript of Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes
Lucas Jellema
18th March 2014
Java 8 LaunchStrategic Outlook and Future
2
4
The Early Days of Java
1991
OAK
5
Java essentials
• Object Oriented• Robust• Multi-Threaded• Network savvy• Interpreted and Portable (WORA)• Architecture neutral (wherever it runs, it runs the same)
6
2007 – Java’s heyday
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
The sky seemed the limit
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?
10
Sun set
11
13
The Future in 2009
14
The Future as it happened and/or looks like today
15
What happened in recent years?
• JVMs• JVM languages• JVM platforms (WOR-oqafp)• FX • Java Community
– Vendors– The rest of us– Kids
16
Many JVMs
• Zing• Zulu• BEA JRockit• Sun HotSpot• Apache Harmony• IBM J9 VM• Kaffe• Jikes RVM• JamVM• Excelsior JET• IcedTea• OpenJDK
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)
18
JVMs on [m]any platform[s]
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!
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
Java 8 Theme:Compact Profiles
Approximate static footprint goals
Compact1 Profile
Compact2 Profile
Compact3 Profile
Full JRE 140Mb
24Mb
17Mb
10Mb
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
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 fordeploying custom Java/Apache Cordova apps
• App Store deployment of Java Client applications– Windows 8, Apple OSX
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
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
28
Many “JVM” languages
JavaClojure
Groovy
JavaScript
ScalaJRuby
Jython
29
Languages that can run on the JVM
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”
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
32
Popularity of Java
Java 6 Java 7 Java 8Java 5Java 1.4
33
34
228 JUGs around the world
10 Million Java Developers - worldwide
35
Kids Java Programming
36
Kids Java Programming
37
The Launch of Java 8SE, FX, ME, JDK & JVM
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– …
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
40
The Future as it happened and/or looks like today
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
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
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
NetBeans IDE 9• JDK 9 support• Scene Builder 3.0 support
Scene Builder 3.0• JavaFX 9 support
7u21• Java Client Security Enhancements• App Store Packaging tools
JDK 8u20• Deterministic G1• Java Mission Control 6.0 • Improved JRE installer • App bundling enhancements
JDK 8u40
Scene Builder 1.1• Linux support
43
Java 8 – Deep Dive