javantura v2 - the road to java - hujak & oracle croatia - branko mihaljević, aleksander...

37
HUJAK & The Road to Java Branko Mihaljević Aleksander Radovan Duško Vukmanović

Category:

Technology


2 download

DESCRIPTION

Java news Java roadmap Java SE/EE features

TRANSCRIPT

Page 1: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

HUJAK &

The Road

to

Java

Branko Mihaljević

Aleksander Radovan

Duško Vukmanović

Page 2: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

The Road to Java

• History

• Present

• Future

www.hujak.hr 2

Page 3: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

Java history timeline

• So, 20+ years of Java

www.hujak.hr 3

1995 1998 2001 2004 2007 2010 2013 2016 2019

Java SE 11

2019/20

Java SE 10

2017/18 2016 2014-3-18

Java EE 7 2013-6-12

HUJAK

2011-12-13

2011-7-28

Java EE 6 2009-12-10

Java SE 6 Mustang

2006-12-11

Java EE 5 2006-5-11

Java 5 J2SE 5.0

Tiger

2004-9-30

J2EE 1.4 2003-11-11

Java 1.4 J2SE 1.4

Merlin

2002-2-6

J2EE 1.3 2001-9-24

Java 1.3 J2SE 1.3 Kestrel

2000-5-8

J2EE 1.2 1999-12-12

Java 1.2 J2SE 1.2

Playground

1998-12-8

JPE Java

Professional Edition

1998-5

Java 1.1 JDK 1.1

1997-2-19

Java 1 JDK 1.0

Oak

1996-1-23

Java JDK

Alpha/Beta

1995 © 2014, HUJAK

2010-1-27

Java SE 9 Java SE 7

Dolphin Java SE 8

Spider

Java EE 8 2016

Java 2012

Javantura

Javantura v2

Page 4: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

The Road to Java

• History

• Present

• Future

www.hujak.hr 4

Page 5: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

Where are we now?

Some facts for 2014

• Java SE

• JDK 8 launched

• JDK 9 under construction

• ...

• Java EE

• over 15 compatible app servers

• JSR 366 approved

• ...

• Java Embedded

• Java ME 8 release

• ports for SoCs

• …

• Community

• OpenJDK Java SE 8 RI released

• Java SE 9 project created

• 314 JUGs (37% more)

• conferences

• …

www.hujak.hr 5

Page 6: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

Java outreach 2014 in numbers

• Java 8 Roadshow – 20 countries, 5000+ JUG members, 140.000 on-demand views

• NightHacking Tour – 40 visits, 7000+ developers, 150.000 on-demand views

• Java Evangelism – 75+ events, 25+ Hands on Labs, participating over 1 conference per week

www.hujak.hr 6

Page 7: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

What's in Java 8?

• Lambdas – modernizing Java Language, biggest upgrade ever to the Java programming model

www.hujak.hr 7

Page 8: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

Java EE

• We already know Java EE 7 well

• Productivity – Annotated POJOs, less boilerplate code, integrated, tools ecosystem ..

• Scalability – multithreaded, asynchronous APIs (Servlet, EJB, JAX-RS), concurrency utilities …

• HTML5-readyness – JSON, WebSockets, JAX-RS …

• Enterprise demands – Java Message Service, Batch processing, distributed transactions …

• Community Driven Industry Standard

• But what we really use??? www.hujak.hr 8

Page 9: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

Tools in development

www.hujak.hr 9

0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%

Profiler

Code Quality Analysis

Continuous Integration

Debugger

Issue Tracker

Version Control

IDE

37%

45%

68%

71%

79%

91%

97%

• Which tools we really use and how much?

Source: Developer Productivity Report 2013, ZeroTurnaround, 2013.

Page 10: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

IDEs

www.hujak.hr

0% 10% 20% 30% 40% 50%

Other

STS

NetBeans

IntelliJ IDEA

Eclipse

5%

4%

10%

33%

48%

10

• Which IDE do we use most?

Source: Java Tools & Technologies 2014, Rebellabs, ZeroTurnaround, May 2014

Page 11: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

Tools in details code analysis, CI, build, VCS

www.hujak.hr

CVS

Mercurial

Subversion

GIT

8%

9%

57%

69%

TeamCity

Hudson

Bamboo

Jenkins

8%

8%

9%

70%

11

Other

Gradle

Ant (+Ivy)

Maven

5%

11%

17%

64%

PMD

Checkstyle

Findbugs

SonarQube

33%

45%

55%

56%

Source: Java Tools & Technologies 2014, Rebellabs, ZeroTurnaround, May 2014

Page 12: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

Application servers

• Which app servers we use?

www.hujak.hr 12 0% 10% 20% 30% 40% 50% 60% 70%

WebSphere

WebLogic

GlassFish

JBoss / WildFly

Jetty

Tomcat

9%

11%

13%

25%

49%

68%

6%

8%

10%

20%

38%

53%

4%

6%

7,50%

16%

12%

50%

Rebelabs, May

Typesafe, Oct

Typesafe, Feb

Source: Java 8 Survey, Typesafe, February 2014 & Java Tools & Technologies 2014, Rebellabs, ZeroTurnaround, May 2014

Software Stacks Market Share: August 2014, Jelastic.com

0% 20% 40% 60% 80%

Tomcat 7

Tomcat 6

GlassFish

Jetty

TomEE

86%

6%

4%

3%

1%

Jelastic

Page 13: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

JVM & JDK

• Which JVM vendor? • Which JDK(s)?

www.hujak.hr 13 Source: Java 8 Survey, Typesafe, February 2014

0% 50% 100%

Oracle

Dalvik

IBM

Other

Azul

96%

20%

7%

2%

1%

0% 50% 100%

Oracle Java SDK

OpenJDK

IBM JDK

88%

36%

5%

Page 14: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

What we use mostly?

www.hujak.hr 14

Java SE 7

65%

SE version

Source: Java Tools & Technologies 2014, Rebellabs, ZeroTurnaround, May 2014

Java EE 6

49%

EE version

Eclipse

48%

IDE

Hibernate

67%

ORM

Tomcat

50%

App server

Spring MVC

40%

Web fw

Jenkins

70%

CI

Git

69%

VCS

FindBugs

55%

CA

Maven

64%

Build

MySQL

65%

SQL DB

MongoDB

56%

NoSQL DB

Page 15: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

Java 6 26%

Java 7 69%

Java 8 3%

Other 2%

Present & future

• Which Java platform are you using (Typesafe, Oct 2014)?

• Which Java platform are you using (Rebelabs, May 2014)?

www.hujak.hr 15 Source: Java 8 Survey, Typesafe, October 2014 & Java Tools & Technologies 2014, Rebellabs, ZeroTurnaround, May 2014

Java 5 2%

Java 6 26%

Java 7 65%

Java 8 7%

68% is using

Java SE + Java EE!

Page 16: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

J2EE 5% Java EE 5

11%

Java EE 6 49%

Java EE 7 35%

Present & future #2

• Which Java EE platform are you using?

• If you are using Java 6 what is your plan?

www.hujak.hr 16 Source: Java Tools & Technologies 2014, Rebellabs, ZeroTurnaround, May 2014 & Java 8 Survey, Typesafe, February 2014

Java 6 23%

Java 7 41%

Java 8 33%

Java 9 3%

Page 17: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

Java 8 – when & how?

• If you plan to upgrade to Java 8 – when?

• How do you now use Java 8?

www.hujak.hr 17

0-6 mo. 29%

6-12 mo. 25%

12+ mo. 13%

Not yet 33%

On Java 8 27%

0-6 mo. 21%

6-12 mo. 15%

12+ mo. 10%

Not yet 26%

Pilot/ testing

40%

Staging/ planning produ-ction 36%

In produ-ction 21%

Other 3%

Source: Java 8 Survey, Typesafe, February & October 2014

Feb 2014

Oct 2014

Page 18: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

How to learn Java 8?

• New Java 8 MOOC course coming in 2015

• Books?

www.hujak.hr 18

Page 19: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

Java 8 – features

• Which features do you find most interesting?

www.hujak.hr 19 0% 10% 20% 30% 40% 50% 60% 70% 80% 90%

Other

JDBC 4.2

Enhance javac to Improve Build Speed

Nashorn JavaScript Engine

Remove the Permanent Generation

Date & Time API

Concurency Updates

Bulk Data Operation for Collections

Enhance Core Libraries with Lambda

Lambda Expressions & Virtual Extension Methods

2%

2%

8%

9%

10%

15%

16%

17%

30%

83%

Source: Java 8 Survey, Typesafe, February 2014

Page 20: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

Java 8 – Lambdas?

• Do you use Lambdas? • Opinion after use of Lambdas?

www.hujak.hr 20

Using Lambdas

45%

Exploring Lambdas

51%

What are Lambdas?

4%

More interested

68%

Less interested

9%

No opinion / not using

23%

Source: Java 8 Survey, Typesafe, February & October 2014

Page 21: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

Functional Programming & Scala

• Interested in Functional Programming?

• Impact of Lambdas on Scala adoption?

www.hujak.hr 21

Using FP 47%

Exploring FP 49%

What is FP? 4%

Positive 60%

Negative 22%

No opinion

16%

What are Lambdas

? 2%

Source: Java 8 Survey, Typesafe, February & October 2014

Page 22: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

Java Embedded

• 500.000 downloads

• 20+ platforms ports

• PowerPC, Intel x86, MIPS, ARM, Freescale, Qualcomm …

• Industry Wide Collaboration

• Java Embedded MOOC

• Java SE Embedded 8 • Compact profiles,

performance, optimized, rich graphics

• 8u6 – smaller footprint, performance …

• Java ME Embedded 8 • ME->SE alignment, 128+

KB RAM, connectivity, security, tooling

• 8.1 EA – ARM, Arduino, Gobi, Raspberry Pi support

www.hujak.hr 22

Page 23: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

Mobile Innovation

• Java Card • 3B Java Cards deployed / year, SIM, security, NFC …

• RoboVM • Native iOS apps in Java, open source

• Oracle Mobile Application Framework • Cross platform mobile application development, simple

extensible UI, Business Logic in Java

• Java for Trusted Execution Environments • Security services in processors (smartphone), mobile

apps and IoT security

www.hujak.hr 23

Page 24: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

IoT Demo Car @JavaOne

www.hujak.hr 24

Page 25: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

Duke Delorean

www.hujak.hr 25

Page 26: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

The Road to Java

• History

• Present

• Future

www.hujak.hr 26

Page 27: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

Java roadmap

www.hujak.hr 27

1995 1998 2001 2004 2007 2010 2013 2016 2019

Java SE 12

2021

Java SE 11

2019/20

Java SE 10

2017/18 2016 2014-3-18

Java EE 7 2013-6-12

HUJAK 2011-12-13

2011-7-28

Java EE 6 2009-12-10

Java SE 6 Mustang

2006-12-11

Java EE 5 2006-5-11

Java 5 J2SE 5.0

Tiger

2004-9-30

J2EE 1.4 2003-11-11

Java 1.4 J2SE 1.4

Merlin

2002-2-6

J2EE 1.3 2001-9-24

Java 1.3 J2SE 1.3 Kestrel

2000-5-8

J2EE 1.2 1999-12-12

Java 1.2 J2SE 1.2

Playground

1998-12-8

JPE Java

Professional Edition

1998-5

Java 1.1 JDK 1.1

1997-2-19

Java 1 JDK 1.0

Oak

1996-1-23

Java JDK

Alpha/Beta

1995 © 2014, HUJAK

2010-1-27

Java SE 8u40 2015-03

Perfomance Improvements Density & Resource Management

Multi-Language Support Impr. Accessibility Enhancements Java SE Advanced Features

Java SE 8u60 2015-Q3

Java EE 8 GA 2016

JSON Binding, JAX-RS 2.1, JMS 2.1, Servlet 4.0, MVC 1.0, JSF 2.3, JSON-P 1.1

Security 1.0, Management 2.0,

Java SE 9 Java SE 7

Dolphin Java SE 8

Spider

Java EE 8 2016

Java EE 8 start 2014-9-22

JSR 366 begins …

Java SE 9 2016

Modularity (Jigsaw) HTTP 2.0

Lighweight JSON Cloud Optimized JVM

Java SE Advanced Features Cont'd Ahead of Time Compilation

Page 28: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

Java 9 – interest & features

• Interest in Java 9? • Which Java 9 features?

www.hujak.hr 28

Zero 8%

Mild 32%

Average 32%

Strong 28%

Source: Java 8 Survey, Typesafe, October & October 2014

0% 10% 20% 30% 40% 50%

Nothing

Other

Declaration-Site Variance

Specialization

ClassDynamic

Project Jigsaw

Value Types

23%

5%

16%

18%

19%

43%

48%

Page 29: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

What do we want in Java EE 8?

• Which API (JSR) should be included in Java EE 8?

www.hujak.hr 29 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%

State Management API

Data Grid API

Identity API

Java EE Configuration

JCache

Java API for JSON Binding

37%

42%

47%

64%

68%

79%

51%

44%

43%

29%

26%

16%

12%

14%

10%

7%

6%

5%

YES NOT SURE NO

Source: Java EE 8 Community Survey, Oracle, 2014

Page 30: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

Java EE 8 features

• Which features should be on Java EE 8?

www.hujak.hr 30 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%

Facelets as standard template engine

JavaScript API on the server (Avatar)

Templating framework

Client API fo Thin Server Architecture

MVC support (alongside JSF)

Java API for Server-sent events

37%

42%

44%

52%

61%

76%

35%

27%

25%

31%

20%

17%

28%

31%

31%

17%

19%

7%

YES NOT SURE NO

Source: Java EE 8 Community Survey, Oracle, 2014

Page 31: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

The Road to Java EE 8

• Unanimously approved

www.hujak.hr 31

Page 32: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

What are we now really interested in?

• Which other JVM language would be most interesting to learn?

• Scala 47%

• What IDE would you rather use?

• IntelliJ IDEA Ultimate 49%

• What build tool would you like to learn?

• Gradle 58%

• What is your highest priority until 2015?

• Getting familiar with Java 8 35% www.hujak.hr 32 Source: Java Tools & Technologies 2014, Rebellabs, ZeroTurnaround, May 2014

Page 33: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

Other JVM languages

• How about other JVM languages?

www.hujak.hr 33

0% 10% 20% 30% 40% 50%

All others

Clojure

Groovy

Scala

10%

12%

31%

47%

Including: Kotlin, Ceylon, Xtend …

Source: Java Tools & Technologies 2014, Rebellabs, ZeroTurnaround, May 2014

Page 34: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

The Road to Java

• History

• Present

• Future

• Something nice for the end

www.hujak.hr 34

Page 35: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

The Kids

www.hujak.hr 35

Page 36: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

Kids Day at JavaOne

www.hujak.hr 36

Page 37: Javantura v2 - The Road to Java - HUJAK & Oracle Croatia - Branko Mihaljević, Aleksander Radovan, Duško Vukmanović

Questions?

www.hujak.hr 37