36
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Java: Create The Future SImon Ritter Head of Java Technology Evangelism Oracle Corp. Twitter: @speakjava

JJUG CCC 2014 Keynote Session by Simon Ritter

Embed Size (px)

Citation preview

Page 1: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Java: Create The FutureSImon RitterHead of Java Technology EvangelismOracle Corp.

Twitter: @speakjava

Page 2: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 2

Safe Harbor StatementThe following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.

Page 3: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

CREATE THE FUTURE

JavaOpenJDK

MOOC

Clou

d

Java

SE

Performance

SecurityJCPJava Duchess Ja

va E

E

Internet of Things

OTN

Java Embedded

Java.net

Lam

bda

Jigsa

w

Tooling

Java MagazineCommunity

Collaboration

Java

Use

r Gro

ups

Adopt-a-JSR

Java

Cha

mpi

ons

Java Card

Java

ME

Page 4: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Awareness• 2 days/65 sessions• Over 800 attendees• Organized by

22 JUGS

Learning• Java 8 & Lambdas• Driving adoption in the

community• Launching soon!

Standards• Morocco JUG joins JCP• Active member of

JSR 364• Participating in

Adopt-a-JSR

The community participation continues

4

Page 5: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 5

Page 6: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

The outreach continuesJava 8

Roadshow• Participation by over 5,200 JUG members• Over 140,000+ on-demand views 20+ Countries

Java EvangelismOutreach

• 25+ interactive hands on labs worldwide• Participating in over 1 conference per week75+ Events

NightHackingTour

• 7,000 developer participants• Over 150,000+ on-demand views40+ Visits

NewMOOC

Course

• Over 2,400 registered students• New Java 8 MOOC coming in 201580+ Locations

04/14/2023 6

VirtualJava Developer

Days

• Participation by over 3,000 viewers• New Java 8 Developer Days coming in 20153 Continents

Page 7: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

The community growth continues7

Page 8: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Java SE 8

Page 9: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 10

Java 8 buzz

Page 10: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Java 8 publications

11

Page 11: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 12

JEP 104 - Annotations on Java Types

Michael Ernst

JEP 175 – PowerPC/AIX Port

Volker Simonis

JEP 171 - Fence Intrinsics

JEP 155 - Concurrency Updates

Doug Lea

JEP 150 - Date & Time API

Stephen Colebourne

OpenJDKVital community of strong contributors

Page 12: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

JDK 8Innovation• Lambda aka Closures• Language Interop• Nashorn

Core Libraries• Parallel operations for core

collections APIs• Improvements in functionality• Improved type inference

General Goodness• JVM enhancements• No PermGen limitations• Performance improvements

Java for Everyone• Profiles for constrained devices• JSR 310-Date & Time APIs• Non-Gregorian calendars• Unicode 6.1• ResourceBundle • BCP47 locale matching• Globalization & Accessibility

Tools• Compiler control & logging• JSR 308-Annotations on Java Type• Native app bundling • App Store Bundling tools

Client• Deployment enhancements• JavaFX 8• Public UI Control API• Java SE Embedded support• Enhanced HTML5 support• 3D shapes and attributes• Printing

Security• Limited doPrivilege• NSA Suite B algorithm support• SNI Server Side support• DSA updated to FIPS186-3• AEAD JSSE CipherSuites

Enterprise• Mission Control• Flight Recorder• Usage Tracker• Advanced Management Console• MSI Enterprise JRE Installer

13

Page 13: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

LambdaModernizing Java

Big step forward in modernizing the Java Language

Big step forward in modernizing the Java Libraries

Biggest upgrade ever to the Java programming model

14

Page 14: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

StreamsModernizing Java

A new key Java Library abstraction

Convenient way to aggregate operations on sequences

Easy way to introduce Parallelism to your applications

Compatible with your existing code because of default methods

15

Page 15: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 16

Performance improvements

Fork/Join improvementsFaster atomics, concurrent librariesFaster optimizations

collection.parallelStream().filter(Objects::nonNull).forEach(item -> {

//benefit from Fork/Join});

JDK 7u17 JDK 7u40 JDK 865000

85000

105000

125000SPECjbb2013 Improvement

Max

-jOPS

40%

Oracle JDK 7u17 – Oracle SPARC T5-2 – 75658 SPECjbb2013-MultiJVM Max-jOPS, 23334 SPECjbb2013-MultiJVM Critical-jOPSOracle JDK 7u40 – Oracle SPARC T5-2 – 81084 SPECjbb2013-MultiJVM Max-jOPS, 39129 SPECjbb2013-MultiJVM Critical-jOPSOracle JDK 8 – Oracle SPARC T5-2 – 114492 SPECjbb2013-MultiJVM Max-jOPS, 43963 SPECjbb2013-MultiJVM Critical-jOPSSource: www.spec.org as of March 10 th 2014SPEC and the benchmark name SPECjbb are registered trademarks of Standard Performance Evaluation Corporation (SPEC)

Page 16: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

JDK 8 security updatesProtocols and Standards• SNI server-side support• DSA updated to FIPS186-3• AEAD JSSE CipherSuites• TLS 1.2 as default• TLS SNI extension• Implement SHA-224 in

FIPS 180-3• 64-bit PKCS11 for Windows• Overhaul JKS-JCEKS-PKCS12

KeyStores• MS-SFU Kerberos 5

extensions• Restrict Use Certs with

RSA keys < 1024 bits

Application Developers• JDEPS tools• High entropy random

number generation• NSA Suite B algorithm

support• Stronger algorithm

support to password based encryption

• Blacklist performance enhancements

• DNS rebinding and SocketPermission Improvements

• Type annotations

Plug-in and Web Start• Security slider• Disable via

Java Control Panel• Expiration date• Code signing for

sandboxed apps• Exception site list• Standardized revocation

SysAdmins • Deployment Rulesets• Exception site list• Locked Jars

17

Page 17: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 18

Java in the enterpriseJava SE Advanced

Mission ControlDiagnose complex issuesLow overhead Flight RecorderBack-in-time analysisPlugins for many systems

Advanced Management ConsoleTrack and manage clients at scaleUsage tracking and Deployment Rule Sets

Support & UpdatesSupport of complex issues & changesUpdates to old versions like JDK 6

Page 18: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Java SE roadmap

JDK 8• Lambda• JSR 310: New Date and Time API• Nashorn: JavaScript

Interoperability• JavaFX Enhancements

8u40• Performance Improvements• Density and Resource Management• Multi-Language Support Improvements• Accessibility Enhancements• Continued Java SE Advanced Features

JDK 9• Modularity – Jigsaw• HTTP 2.0• Lightweight JSON• Cloud optimized JVM• Continued Java SE Advanced Features• Ahead of Time Compilation

8u20• G1 Performance Improvement• JVM Performance Improvements• Java Mission Control 5.4• Advanced Management Console 1.0• MSI Enterprise JRE Installer

8u60• Bug Fixes• Continued Java SE Advanced Features

20162014 2015 2017

19

Page 19: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 20

Continue to participate

Use Java SE 8Test drive Java SE 9 Early Access builds

Download JDK 9 Early Access release today!jdk9.java.net

Page 20: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Java ME 8

Page 21: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Java SE 7

Last YearAPIs Language

Java SE 7

CDC 1.1

CDC 1.1(based on SE 1.4.2)

CLDC 1.1(based on SE 1.3)

CLDC 1.1

22

Page 22: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Java SE 8Java SE 8

Java ME 8

This Year

Java ME 8

APIs Language

23

Page 23: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 24

Java Embedded adoption

2400+ Registrations83 CountriesJava Embedded MOOC

Industry Wide CollaborationEmbedded SoCs, OEMs/ODMs, Semiconductors

Raspberry Pi

~500,000Downloads

Aug-13

Sep-13

Oct-13

Nov-13

Dec-13

Jan-14

Feb-14

Mar-14

Apr-14

May-14

Jun-14Jul-1

4

Aug-14

-

50,000

100,000

150,000

200,000

250,000

300,000

350,000

400,000

450,000

500,000

20+ Platform PortsPowerPC, Intel x86, MIPS

Page 24: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 25

Oracle Mobile Application Framework RoboVM

Java Card Java for Trusted Execution Environments

Mobile innovation with Java

• Cross platform mobile application development

• Simple Extensible UI• Java for Business Logic

• 3B Java Card deployed / yr• SIM cards and embedded

secure elements • Securing NFC payment

• Native iOS apps in Java• Leverage Java language and tools• Open Source project

• Security Services within smartphone processors

• Extends Java Card platform• Mobile enterprise, mobile banking,

and IOT security

Page 25: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Java Embedded roadmap

2016

Java SE Embedded 8 (Mar 2014) • Complete JVM convergence• New Compact Profiles• Significantly smaller base runtime• Embedded JRE customization tool• Support for ARM, Power PC & x86• Java Flight Recorder/Mission Control• Simple migration of ME CDC headless

applications

Java SE Embedded 8u6 (Q3 2014)• More footprint reductions• Performance improvements• G1 support on JDK for ARM

(experimental)• Headful (AWT/Swing) support on

ARM v5 Soft Float

Java SE Embedded 8uX• ARM v8 64-bit support• Improved monitoring & serviceability• Application performance improvements

Java ME Embedded 8 (Apr 2014)• Java ME CLDC 8 & ME Embedded Profile 8• “Little sibling” of Java SE 8• New & enhanced embedded features• Scalable, portable architecture• Qualcomm 6270T and Raspberry Pi

Java ME SDK 8• New developer tooling & enhancements

Java ME Embedded 8.1 (Q4 2014)• Footprint optimizations• Improved tooling support• Additional ports on commercial embedded

platforms

Java ME Embedded 8.2• Simplified integration with

enterprise services • Tooling improvements

Java SE Embedded 9Java ME Embedded 9• Increased alignment between

Java ME and Java SE • Modularity based on Jigsaw• Developer productivity

improvements• Improved cloud deployment support

2014 2015

26

Page 26: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 27

Continue to participate

Play with Java Embedded productsTest drive on popular embedded development boardsContact the Java Embedded Team about support on your target embedded platforms

Download Java Embedded today!oracle.com/java

Page 27: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Java EE 7

Page 28: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

The vibrant Java EE community

Compatible Application Servers User Groups

Java EE Developers Career OpportunityPublications

29

Page 29: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 30

Vital community of strong contributorsJava EE

JCP contributions

Weld (CDI), Bean Validation

Community contributions

Adopt-a-JSR: WebSockets

Individual contributions

Multiple expert groups, Airhacks

Page 30: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 31

Java EE 7HTML5-Ready• JSON• WebSockets• JAX-RS

Industry Standard• Lowers risk• Vendor choice• Implementation choice• Operating system choice• Portable applications

Scalable• Multi-threaded• Asynchronous APIs

(Servlet, EJB, JAX-RS)• Concurrency utilities

for Java EE

Productivity• Annotated POJOs• Less boilerplate code• Integrated• Excellent tool ecosystem

Meets Enterprise Demands• Java Message Service• Batch processing• Distributed transactions

Community Driven• Java Community Process• Adopt-a-JSR• Open Source RI

(GlassFish)

Page 31: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 32

GlassFish Server Open Source Edition 4.1

Updated Platform Support• Java 8• CDI 1.2• WebSocket 1.1

Jersey (JAX-RS)• New diagnostics API • SSE client reconnect

Tyrus (WebSocket)• Session limits• Proxy support• Client reconnect

Stability and Quality• Feature enhancements• 1000+ bugs fixes

And More …• Updated Java EE 7 SDK• JMS over WebSockets

Page 32: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Java EE 8 Community Survey

https://java.net/downloads/javaee-spec/JavaEE8_Community_Survey_Results.pdf

https://blogs.oracle.com/ldemichiel/entry/results_from_the_java_ee

JSON-B

Security Simplification

JCache

Security Interceptors

MVC

PruningEJB TimerLogging

Cloud

SSE

Embedded

Mgt Monitoring APIConfig

Page 33: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Current StatusAlready There Java EE 8 (JSR 366) CDI 2 (JSR 365) JSON-B (JSR 367) JMS 2.1 (JSR 368) Servlet 4 (JSR 369) JAX-RS 2.1 (JSR 370) MVC (JSR 371) JSF 2.3 (JSR 372)

Coming SoonSecurityManagement and MonitoringJCache 1.1JSON-P 1.1

Page 34: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Java EE roadmap

Java EE 7• HTML 5: WebSockets, JSON

Processing, REST, Servlet NIO• Productivity: More annotated

POJOs, less boilerplate code, cohesive platform

• Meet Enterprise Demands: Batch, Concurrency

Java EE 8 JSR 366 Begins• Approved unanimously• HTML5 and web enhancements• Ease of development and CDI alignment• Running in the cloud

GlassFish 5• Java EE 8 RI• Java EE 8 SDK

Java EE 8 Community Survey• Three part survey• Prioritized features• 4500+ responses• Shared results

Java EE 8 GA• JSON Binding, JAX-RS 2.1• JMS 2.1, Servlet 4.0• Model-View-Controller 1.0, JSF 2.3• Java EE Security 1.0, Java EE

Management 2.0, JSON-P 1.1

20152013 2014 2017

35

2016

Page 35: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 36

Continue to participate

Participate with us!glassfish.org/contribute

Java EE 714 adopted JSRs19 Java User Groups

Thank You!

Java EE 8New JSRsNew Opportunities

Get Involved!

Page 36: JJUG CCC 2014 Keynote Session by Simon Ritter

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

CREATE THE FUTURE

Java