Java8 launch AMIS Services by Lucas Jellema

Post on 11-Nov-2014

546 views 2 download

Tags:

description

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

transcript

Lucas Jellema

18th March 2014

Java 8 LaunchStrategic Outlook and Future

2

3

Agenda

• Java history• Java’s position• Java SE 8 • Java Embedded & ME• The future of Java SE (FX/ME)

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

12

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