Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

40
Lucas Jellema 18th March 2014 Java 8 Launch Strategic Outlook and Future

description

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.

Transcript of Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

Page 1: 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

Page 2: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

2

Page 3: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

4

The Early Days of Java

1991

OAK

Page 4: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

5

Java essentials

• Object Oriented• Robust• Multi-Threaded• Network savvy• Interpreted and Portable (WORA)• Architecture neutral (wherever it runs, it runs the same)

Page 5: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

6

2007 – Java’s heyday

Page 6: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

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

Page 7: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

8

The sky seemed the limit

Page 8: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

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?

Page 9: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

10

Sun set

Page 10: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

11

Page 11: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

13

The Future in 2009

Page 12: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

14

The Future as it happened and/or looks like today

Page 13: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

15

What happened in recent years?

• JVMs• JVM languages• JVM platforms (WOR-oqafp)• FX • Java Community

– Vendors– The rest of us– Kids

Page 14: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

16

Many JVMs

• Zing• Zulu• BEA JRockit• Sun HotSpot• Apache Harmony• IBM J9 VM• Kaffe• Jikes RVM• JamVM• Excelsior JET• IcedTea• OpenJDK

Page 15: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

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)

Page 16: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

18

JVMs on [m]any platform[s]

Page 17: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

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!

Page 18: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

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

Page 19: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

Java 8 Theme:Compact Profiles

Approximate static footprint goals

Compact1 Profile

Compact2 Profile

Compact3 Profile

Full JRE 140Mb

24Mb

17Mb

10Mb

Page 20: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

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

Page 21: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

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

Page 22: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

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

Page 23: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

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

Page 24: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

28

Many “JVM” languages

JavaClojure

Groovy

JavaScript

ScalaJRuby

Jython

Page 25: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

29

Languages that can run on the JVM

Page 26: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

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”

Page 27: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

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

Page 28: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

32

Popularity of Java

Java 6 Java 7 Java 8Java 5Java 1.4

Page 29: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

33

Page 30: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

34

228 JUGs around the world

10 Million Java Developers - worldwide

Page 31: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

35

Kids Java Programming

Page 32: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

36

Kids Java Programming

Page 33: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

37

The Launch of Java 8SE, FX, ME, JDK & JVM

Page 34: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

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– …

Page 35: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

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

Page 36: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

40

The Future as it happened and/or looks like today

Page 37: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

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

Page 38: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

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

Page 39: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes

43

Java 8 – Deep Dive

Page 40: Java 8 Launch Event - Past, Present and Future of Java and Java 8 key themes